diff --git a/skywalking-collector/pom.xml b/skywalking-collector/pom.xml index de6aae3b7..62daf9c04 100644 --- a/skywalking-collector/pom.xml +++ b/skywalking-collector/pom.xml @@ -19,11 +19,6 @@ - - com.a.eye - skywalking-sniffer-mock - ${project.version} - com.typesafe.akka akka-cluster_2.11 @@ -49,5 +44,12 @@ leveldb 0.9 + + + com.a.eye + skywalking-sniffer-mock + ${project.version} + test + diff --git a/skywalking-collector/skywalking-collector-cluster/pom.xml b/skywalking-collector/skywalking-collector-cluster/pom.xml index 2c2fcd2a7..c47b1d868 100644 --- a/skywalking-collector/skywalking-collector-cluster/pom.xml +++ b/skywalking-collector/skywalking-collector-cluster/pom.xml @@ -27,5 +27,10 @@ spring-context-support ${project.spring.version} + + com.a.eye + skywalking-api + ${project.version} + \ No newline at end of file diff --git a/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/base/AbstractUntypedActor.java b/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/base/AbstractUntypedActor.java new file mode 100644 index 000000000..256b2ff83 --- /dev/null +++ b/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/base/AbstractUntypedActor.java @@ -0,0 +1,10 @@ +package com.a.eye.skywalking.collector.cluster.base; + +import akka.actor.ActorSystem; +import akka.actor.UntypedActor; + +/** + * @author pengys5 + */ +public abstract class AbstractUntypedActor extends UntypedActor { +} diff --git a/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/base/IActorProvider.java b/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/base/IActorProvider.java new file mode 100644 index 000000000..279b5a9bd --- /dev/null +++ b/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/base/IActorProvider.java @@ -0,0 +1,15 @@ +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); +} diff --git a/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/config/CollectorConfig.java b/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/config/CollectorConfig.java index 54d9b3f0e..92c311e04 100644 --- a/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/config/CollectorConfig.java +++ b/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/config/CollectorConfig.java @@ -11,5 +11,9 @@ public class CollectorConfig { public static String hostname = "127.0.0.1"; public static String port = "2551"; public static String cluster = "127.0.0.1:2551"; + + public static class Actor { + public static int ActorManagerActor_Num = 2; + } } } diff --git a/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/config/CollectorConfigInitializer.java b/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/config/CollectorConfigInitializer.java index 73c0dad75..c47dddc80 100644 --- a/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/config/CollectorConfigInitializer.java +++ b/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/config/CollectorConfigInitializer.java @@ -1,6 +1,5 @@ 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.LogManager; import com.a.eye.skywalking.api.util.ConfigInitializer; diff --git a/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/manager/ActorCreator.java b/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/manager/ActorCreator.java new file mode 100644 index 000000000..9ea63ceb6 --- /dev/null +++ b/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/manager/ActorCreator.java @@ -0,0 +1,20 @@ +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 serviceLoader = ServiceLoader.load(IActorProvider.class); + for (IActorProvider service : serviceLoader) { + service.createActor(system); + } + } +} diff --git a/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/manager/ActorManagerActor.java b/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/manager/ActorManagerActor.java index cc16d5a24..0047d9f84 100644 --- a/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/manager/ActorManagerActor.java +++ b/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/manager/ActorManagerActor.java @@ -1,13 +1,14 @@ package com.a.eye.skywalking.collector.cluster.manager; 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; /** * Created by Administrator on 2017/2/21 0021. */ -public class ActorManagerActor extends UntypedActor { +public class ActorManagerActor extends AbstractUntypedActor { @Override public void onReceive(Object message) throws Throwable { diff --git a/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/manager/ActorManagerActorFactory.java b/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/manager/ActorManagerActorFactory.java new file mode 100644 index 000000000..a3d46e32b --- /dev/null +++ b/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/manager/ActorManagerActorFactory.java @@ -0,0 +1,29 @@ +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); + } +} diff --git a/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/producer/TraceProducerApp.java b/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/producer/TraceProducerApp.java index 86be204ca..f996b43f3 100644 --- a/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/producer/TraceProducerApp.java +++ b/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/producer/TraceProducerApp.java @@ -22,7 +22,7 @@ import java.util.concurrent.atomic.AtomicInteger; 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}. *

* Created by pengys5 on 2017/2/17. */ diff --git a/skywalking-collector/skywalking-collector-cluster/src/main/resources/META-INF/services/com.a.eye.skywalking.collector.cluster.base.IActorProvider b/skywalking-collector/skywalking-collector-cluster/src/main/resources/META-INF/services/com.a.eye.skywalking.collector.cluster.base.IActorProvider new file mode 100644 index 000000000..4a49d7b57 --- /dev/null +++ b/skywalking-collector/skywalking-collector-cluster/src/main/resources/META-INF/services/com.a.eye.skywalking.collector.cluster.base.IActorProvider @@ -0,0 +1 @@ +com.a.eye.skywalking.collector.cluster.manager.ActorManagerActorFactory \ No newline at end of file diff --git a/skywalking-collector/skywalking-collector-cluster/src/test/java/com/a/eye/skywalking/collector/cluster/ActorCreatorTestCase.java b/skywalking-collector/skywalking-collector-cluster/src/test/java/com/a/eye/skywalking/collector/cluster/ActorCreatorTestCase.java new file mode 100644 index 000000000..aa2658c36 --- /dev/null +++ b/skywalking-collector/skywalking-collector-cluster/src/test/java/com/a/eye/skywalking/collector/cluster/ActorCreatorTestCase.java @@ -0,0 +1,22 @@ +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"); + } +} diff --git a/skywalking-collector/skywalking-collector-cluster/src/test/java/com/a/eye/skywalking/collector/cluster/ActorProviderTestCase.java b/skywalking-collector/skywalking-collector-cluster/src/test/java/com/a/eye/skywalking/collector/cluster/ActorProviderTestCase.java new file mode 100644 index 000000000..8516fce44 --- /dev/null +++ b/skywalking-collector/skywalking-collector-cluster/src/test/java/com/a/eye/skywalking/collector/cluster/ActorProviderTestCase.java @@ -0,0 +1,27 @@ +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); + } +} diff --git a/skywalking-collector/skywalking-collector-cluster/src/test/java/com/a/eye/skywalking/collector/cluster/CollectorConfigTestCase.java b/skywalking-collector/skywalking-collector-cluster/src/test/java/com/a/eye/skywalking/collector/cluster/CollectorConfigTestCase.java index dfd8be8f4..560bb76f1 100644 --- a/skywalking-collector/skywalking-collector-cluster/src/test/java/com/a/eye/skywalking/collector/cluster/CollectorConfigTestCase.java +++ b/skywalking-collector/skywalking-collector-cluster/src/test/java/com/a/eye/skywalking/collector/cluster/CollectorConfigTestCase.java @@ -7,8 +7,6 @@ import com.typesafe.config.Config; import org.junit.Assert; import org.junit.Test; -import java.util.ArrayList; - /** * Created by pengys5 on 2017/2/22 0022. */ diff --git a/skywalking-collector/skywalking-collector-worker/pom.xml b/skywalking-collector/skywalking-collector-worker/pom.xml index fff11e262..0f03e8852 100644 --- a/skywalking-collector/skywalking-collector-worker/pom.xml +++ b/skywalking-collector/skywalking-collector-worker/pom.xml @@ -11,5 +11,11 @@ skywalking-collector-worker - + + + com.a.eye + skywalking-collector-cluster + ${project.version} + + \ No newline at end of file diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/CollectorBootStartUp.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/CollectorBootStartUp.java new file mode 100644 index 000000000..59920b3bc --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/CollectorBootStartUp.java @@ -0,0 +1,17 @@ +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); + } +} diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/indicator/ApplicationDiscoverActor.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/indicator/ApplicationDiscoverActor.java new file mode 100644 index 000000000..51eef9cef --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/indicator/ApplicationDiscoverActor.java @@ -0,0 +1,22 @@ +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 { + + } +} diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/indicator/TraceSegmentRelationActor.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/indicator/TraceSegmentRelationActor.java new file mode 100644 index 000000000..dd93fe222 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/indicator/TraceSegmentRelationActor.java @@ -0,0 +1,13 @@ +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 { + + } +}