提交 dd5ce743 编写于 作者: P pengys5

actor provider

上级 c82ad286
...@@ -19,11 +19,6 @@ ...@@ -19,11 +19,6 @@
</properties> </properties>
<dependencies> <dependencies>
<dependency>
<groupId>com.a.eye</groupId>
<artifactId>skywalking-sniffer-mock</artifactId>
<version>${project.version}</version>
</dependency>
<dependency> <dependency>
<groupId>com.typesafe.akka</groupId> <groupId>com.typesafe.akka</groupId>
<artifactId>akka-cluster_2.11</artifactId> <artifactId>akka-cluster_2.11</artifactId>
...@@ -49,5 +44,12 @@ ...@@ -49,5 +44,12 @@
<artifactId>leveldb</artifactId> <artifactId>leveldb</artifactId>
<version>0.9</version> <version>0.9</version>
</dependency> </dependency>
<dependency>
<groupId>com.a.eye</groupId>
<artifactId>skywalking-sniffer-mock</artifactId>
<version>${project.version}</version>
<scope>test</scope>
</dependency>
</dependencies> </dependencies>
</project> </project>
...@@ -27,5 +27,10 @@ ...@@ -27,5 +27,10 @@
<artifactId>spring-context-support</artifactId> <artifactId>spring-context-support</artifactId>
<version>${project.spring.version}</version> <version>${project.spring.version}</version>
</dependency> </dependency>
<dependency>
<groupId>com.a.eye</groupId>
<artifactId>skywalking-api</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies> </dependencies>
</project> </project>
\ No newline at end of file
package com.a.eye.skywalking.collector.cluster.base;
import akka.actor.ActorSystem;
import akka.actor.UntypedActor;
/**
* @author pengys5
*/
public abstract class AbstractUntypedActor extends UntypedActor {
}
package com.a.eye.skywalking.collector.cluster.base;
import akka.actor.ActorSystem;
import com.a.eye.skywalking.collector.cluster.config.CollectorConfig;
/**
* @author pengys5
*/
public interface IActorProvider {
public String actorName();
public void createActor(ActorSystem system);
public void actorOf(ActorSystem system, String actorInClusterName);
}
...@@ -11,5 +11,9 @@ public class CollectorConfig { ...@@ -11,5 +11,9 @@ public class CollectorConfig {
public static String hostname = "127.0.0.1"; public static String hostname = "127.0.0.1";
public static String port = "2551"; public static String port = "2551";
public static String cluster = "127.0.0.1:2551"; public static String cluster = "127.0.0.1:2551";
public static class Actor {
public static int ActorManagerActor_Num = 2;
}
} }
} }
package com.a.eye.skywalking.collector.cluster.config; package com.a.eye.skywalking.collector.cluster.config;
import com.a.eye.skywalking.api.conf.Config;
import com.a.eye.skywalking.api.logging.api.ILog; import com.a.eye.skywalking.api.logging.api.ILog;
import com.a.eye.skywalking.api.logging.api.LogManager; import com.a.eye.skywalking.api.logging.api.LogManager;
import com.a.eye.skywalking.api.util.ConfigInitializer; import com.a.eye.skywalking.api.util.ConfigInitializer;
......
package com.a.eye.skywalking.collector.cluster.manager;
import akka.actor.ActorSystem;
import com.a.eye.skywalking.collector.cluster.base.IActorProvider;
import java.util.ServiceLoader;
/**
* @author pengys5
*/
public enum ActorCreator {
INSTANCE;
public void create(ActorSystem system) {
ServiceLoader<IActorProvider> serviceLoader = ServiceLoader.load(IActorProvider.class);
for (IActorProvider service : serviceLoader) {
service.createActor(system);
}
}
}
package com.a.eye.skywalking.collector.cluster.manager; package com.a.eye.skywalking.collector.cluster.manager;
import akka.actor.Terminated; import akka.actor.Terminated;
import akka.actor.UntypedActor; import com.a.eye.skywalking.collector.cluster.base.AbstractUntypedActor;
import com.a.eye.skywalking.collector.cluster.base.IActorProvider;
import com.a.eye.skywalking.collector.cluster.message.ActorRegisterMessage; import com.a.eye.skywalking.collector.cluster.message.ActorRegisterMessage;
/** /**
* Created by Administrator on 2017/2/21 0021. * Created by Administrator on 2017/2/21 0021.
*/ */
public class ActorManagerActor extends UntypedActor { public class ActorManagerActor extends AbstractUntypedActor {
@Override @Override
public void onReceive(Object message) throws Throwable { public void onReceive(Object message) throws Throwable {
......
package com.a.eye.skywalking.collector.cluster.manager;
import akka.actor.ActorSystem;
import akka.actor.Props;
import com.a.eye.skywalking.collector.cluster.base.IActorProvider;
import com.a.eye.skywalking.collector.cluster.config.CollectorConfig;
/**
* @author pengys5
*/
public class ActorManagerActorFactory implements IActorProvider {
@Override
public String actorName() {
return "ActorManagerActor";
}
@Override
public void createActor(ActorSystem system) {
for (int i = 1; i <= CollectorConfig.Collector.Actor.ActorManagerActor_Num; i++) {
actorOf(system, actorName() + "_" + i);
}
}
@Override
public void actorOf(ActorSystem system, String actorInClusterName) {
system.actorOf(Props.create(ActorManagerActor.class), actorInClusterName);
}
}
...@@ -22,7 +22,7 @@ import java.util.concurrent.atomic.AtomicInteger; ...@@ -22,7 +22,7 @@ import java.util.concurrent.atomic.AtomicInteger;
import static akka.pattern.Patterns.ask; import static akka.pattern.Patterns.ask;
/** /**
* {@link TraceProducerApp} is a producer for trace agent to send @link TraceSegment. * {@link TraceProducerApp} is a producer for trace agent to send {@link TraceSegment}.
* <p> * <p>
* Created by pengys5 on 2017/2/17. * Created by pengys5 on 2017/2/17.
*/ */
......
package com.a.eye.skywalking.collector.cluster;
import akka.actor.ActorSystem;
import akka.actor.Props;
import com.a.eye.skywalking.collector.cluster.manager.ActorCreator;
import com.a.eye.skywalking.collector.cluster.manager.ActorManagerActor;
import org.junit.Test;
import static org.mockito.Mockito.*;
/**
* @author pengys5
*/
public class ActorCreatorTestCase {
@Test
public void testCreate() {
ActorSystem system = mock(ActorSystem.class);
// ActorCreator.INSTANCE.create(system, ActorManagerActor.class, 1);
// verify(system).actorOf(Props.create(ActorManagerActor.class), "ActorManagerActor");
}
}
package com.a.eye.skywalking.collector.cluster;
import akka.actor.ActorSystem;
import com.a.eye.skywalking.collector.cluster.manager.ActorManagerActorFactory;
import org.junit.Assert;
import org.junit.Test;
import org.mockito.Mockito;
/**
* @author pengys5
*/
public class ActorProviderTestCase {
@Test
public void testActorName() {
ActorManagerActorFactory factory = new ActorManagerActorFactory();
String actorName = factory.actorName();
Assert.assertEquals("ActorManagerActor", actorName);
}
@Test
public void testCreateActor() {
ActorSystem system = Mockito.mock(ActorSystem.class);
ActorManagerActorFactory factory = new ActorManagerActorFactory();
factory.createActor(system);
}
}
...@@ -7,8 +7,6 @@ import com.typesafe.config.Config; ...@@ -7,8 +7,6 @@ import com.typesafe.config.Config;
import org.junit.Assert; import org.junit.Assert;
import org.junit.Test; import org.junit.Test;
import java.util.ArrayList;
/** /**
* Created by pengys5 on 2017/2/22 0022. * Created by pengys5 on 2017/2/22 0022.
*/ */
......
...@@ -11,5 +11,11 @@ ...@@ -11,5 +11,11 @@
<artifactId>skywalking-collector-worker</artifactId> <artifactId>skywalking-collector-worker</artifactId>
<dependencies>
<dependency>
<groupId>com.a.eye</groupId>
<artifactId>skywalking-collector-cluster</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</project> </project>
\ No newline at end of file
package com.a.eye.skywalking.collector.worker;
import akka.actor.ActorSystem;
import akka.actor.Props;
import com.a.eye.skywalking.collector.cluster.Const;
import com.a.eye.skywalking.collector.cluster.consumer.TraceConsumerActor;
/**
* @author pengys5
*/
public class CollectorBootStartUp {
public static void main(String[] args) {
// ActorSystem system = ActorSystem.create("ClusterSystem", config);
// system.actorOf(Props.create(TraceConsumerActor.class), Const.Trace_Consumer_Role);
}
}
package com.a.eye.skywalking.collector.worker.indicator;
import akka.actor.UntypedActor;
import com.a.eye.skywalking.collector.cluster.base.AbstractUntypedActor;
/**
* @author pengys5
*/
public class ApplicationDiscoverActor extends AbstractUntypedActor {
public static final String ActorName = "ApplicationDiscoverActor";
@Override
public String actorName() {
return ActorName;
}
@Override
public void onReceive(Object message) throws Throwable {
}
}
package com.a.eye.skywalking.collector.worker.indicator;
import akka.actor.UntypedActor;
/**
* @author pengys5
*/
public class TraceSegmentRelationActor extends UntypedActor{
@Override
public void onReceive(Object message) throws Throwable {
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册