Loading pom.xml +48 −48 Original line number Diff line number Diff line <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> Loading Loading @@ -31,6 +30,7 @@ <module>skywalking-commons</module> <module>skywalking-sniffer</module> <module>skywalking-application-toolkit</module> <module>skywalking-collector</module> </modules> <packaging>pom</packaging> Loading @@ -50,6 +50,7 @@ <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <compiler.version>1.8</compiler.version> <scala.compiler.version>2.11.7</scala.compiler.version> <powermock.version>1.6.4</powermock.version> <docker.plugin.version>0.4.13</docker.plugin.version> <skywalking.version>2.1-2017</skywalking.version> Loading Loading @@ -161,5 +162,4 @@ </plugin> </plugins> </build> </project> skywalking-collector/pom.xml 0 → 100644 +70 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <modules> <module>skywalking-collector-cluster</module> <module>skywalking-collector-worker</module> </modules> <parent> <artifactId>skywalking</artifactId> <groupId>com.a.eye</groupId> <version>3.0-2017</version> </parent> <artifactId>skywalking-collector</artifactId> <packaging>pom</packaging> <properties> <akka.version>2.4.17</akka.version> </properties> <dependencies> <dependency> <groupId>com.typesafe.akka</groupId> <artifactId>akka-cluster_2.11</artifactId> <version>${akka.version}</version> </dependency> <dependency> <groupId>com.typesafe.akka</groupId> <artifactId>akka-cluster-metrics_2.11</artifactId> <version>${akka.version}</version> </dependency> <dependency> <groupId>com.typesafe.akka</groupId> <artifactId>akka-cluster-tools_2.11</artifactId> <version>${akka.version}</version> </dependency> <dependency> <groupId>com.typesafe.akka</groupId> <artifactId>akka-persistence_2.11</artifactId> <version>${akka.version}</version> </dependency> <dependency> <groupId>org.iq80.leveldb</groupId> <artifactId>leveldb</artifactId> <version>0.9</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.8</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.8</version> </dependency> <dependency> <groupId>com.typesafe.akka</groupId> <artifactId>akka-testkit_2.11</artifactId> <version>${akka.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>com.a.eye</groupId> <artifactId>skywalking-sniffer-mock</artifactId> <version>${project.version}</version> <scope>test</scope> </dependency> </dependencies> </project> skywalking-collector/skywalking-collector-cluster/pom.xml 0 → 100644 +35 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>skywalking-collector</artifactId> <groupId>com.a.eye</groupId> <version>3.0-2017</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>skywalking-collector-cluster</artifactId> <packaging>jar</packaging> <properties> </properties> <dependencies> <dependency> <groupId>javax.inject</groupId> <artifactId>javax.inject</artifactId> <version>1</version> </dependency> <dependency> <groupId>com.lmax</groupId> <artifactId>disruptor</artifactId> <version>3.3.6</version> </dependency> <dependency> <groupId>com.a.eye</groupId> <artifactId>skywalking-api</artifactId> <version>${project.version}</version> </dependency> </dependencies> </project> No newline at end of file skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/actor/AbstractAsyncMember.java 0 → 100644 +37 −0 Original line number Diff line number Diff line package com.a.eye.skywalking.collector.actor; import akka.actor.ActorRef; import com.a.eye.skywalking.collector.queue.EndOfBatchCommand; import com.a.eye.skywalking.collector.queue.MessageHolder; import com.lmax.disruptor.RingBuffer; /** * @author pengys5 */ public abstract class AbstractAsyncMember extends AbstractMember { private RingBuffer<MessageHolder> ringBuffer; public AbstractAsyncMember(RingBuffer<MessageHolder> ringBuffer, ActorRef actorRef) { super(actorRef); this.ringBuffer = ringBuffer; } public void onEvent(MessageHolder event, long sequence, boolean endOfBatch) throws Exception { Object message = event.getMessage(); event.reset(); receive(message); if (endOfBatch) { receive(new EndOfBatchCommand()); } } public void beTold(Object message) throws Exception { long sequence = ringBuffer.next(); try { ringBuffer.get(sequence).setMessage(message); } finally { ringBuffer.publish(sequence); } } } skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/actor/AbstractAsyncMemberProvider.java 0 → 100644 +44 −0 Original line number Diff line number Diff line package com.a.eye.skywalking.collector.actor; import akka.actor.ActorRef; import com.a.eye.skywalking.collector.queue.DaemonThreadFactory; import com.a.eye.skywalking.collector.queue.MessageHolder; import com.a.eye.skywalking.collector.queue.MessageHolderFactory; import com.lmax.disruptor.EventHandler; import com.lmax.disruptor.RingBuffer; import com.lmax.disruptor.dsl.Disruptor; import java.lang.reflect.Constructor; /** * @author pengys5 */ public abstract class AbstractAsyncMemberProvider<T extends EventHandler> extends AbstractMemberProvider<T> { public abstract int queueSize(); @Override public T createWorker(ActorRef actorRef) throws Exception { if (memberClass() == null) { throw new IllegalArgumentException("cannot createInstance() with nothing obtained from memberClass()"); } Constructor memberConstructor = memberClass().getDeclaredConstructor(new Class<?>[]{RingBuffer.class, ActorRef.class}); memberConstructor.setAccessible(true); // Specify the size of the ring buffer, must be power of 2. int bufferSize = queueSize(); // Construct the Disruptor Disruptor<MessageHolder> disruptor = new Disruptor<MessageHolder>(MessageHolderFactory.INSTANCE, bufferSize, DaemonThreadFactory.INSTANCE); RingBuffer<MessageHolder> ringBuffer = disruptor.getRingBuffer(); T member = (T) memberConstructor.newInstance(ringBuffer, actorRef); // Connect the handler disruptor.handleEventsWith(member); // Start the Disruptor, starts all threads running disruptor.start(); return member; } } Loading
pom.xml +48 −48 Original line number Diff line number Diff line <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> Loading Loading @@ -31,6 +30,7 @@ <module>skywalking-commons</module> <module>skywalking-sniffer</module> <module>skywalking-application-toolkit</module> <module>skywalking-collector</module> </modules> <packaging>pom</packaging> Loading @@ -50,6 +50,7 @@ <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <compiler.version>1.8</compiler.version> <scala.compiler.version>2.11.7</scala.compiler.version> <powermock.version>1.6.4</powermock.version> <docker.plugin.version>0.4.13</docker.plugin.version> <skywalking.version>2.1-2017</skywalking.version> Loading Loading @@ -161,5 +162,4 @@ </plugin> </plugins> </build> </project>
skywalking-collector/pom.xml 0 → 100644 +70 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <modules> <module>skywalking-collector-cluster</module> <module>skywalking-collector-worker</module> </modules> <parent> <artifactId>skywalking</artifactId> <groupId>com.a.eye</groupId> <version>3.0-2017</version> </parent> <artifactId>skywalking-collector</artifactId> <packaging>pom</packaging> <properties> <akka.version>2.4.17</akka.version> </properties> <dependencies> <dependency> <groupId>com.typesafe.akka</groupId> <artifactId>akka-cluster_2.11</artifactId> <version>${akka.version}</version> </dependency> <dependency> <groupId>com.typesafe.akka</groupId> <artifactId>akka-cluster-metrics_2.11</artifactId> <version>${akka.version}</version> </dependency> <dependency> <groupId>com.typesafe.akka</groupId> <artifactId>akka-cluster-tools_2.11</artifactId> <version>${akka.version}</version> </dependency> <dependency> <groupId>com.typesafe.akka</groupId> <artifactId>akka-persistence_2.11</artifactId> <version>${akka.version}</version> </dependency> <dependency> <groupId>org.iq80.leveldb</groupId> <artifactId>leveldb</artifactId> <version>0.9</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.8</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.8</version> </dependency> <dependency> <groupId>com.typesafe.akka</groupId> <artifactId>akka-testkit_2.11</artifactId> <version>${akka.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>com.a.eye</groupId> <artifactId>skywalking-sniffer-mock</artifactId> <version>${project.version}</version> <scope>test</scope> </dependency> </dependencies> </project>
skywalking-collector/skywalking-collector-cluster/pom.xml 0 → 100644 +35 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>skywalking-collector</artifactId> <groupId>com.a.eye</groupId> <version>3.0-2017</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>skywalking-collector-cluster</artifactId> <packaging>jar</packaging> <properties> </properties> <dependencies> <dependency> <groupId>javax.inject</groupId> <artifactId>javax.inject</artifactId> <version>1</version> </dependency> <dependency> <groupId>com.lmax</groupId> <artifactId>disruptor</artifactId> <version>3.3.6</version> </dependency> <dependency> <groupId>com.a.eye</groupId> <artifactId>skywalking-api</artifactId> <version>${project.version}</version> </dependency> </dependencies> </project> No newline at end of file
skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/actor/AbstractAsyncMember.java 0 → 100644 +37 −0 Original line number Diff line number Diff line package com.a.eye.skywalking.collector.actor; import akka.actor.ActorRef; import com.a.eye.skywalking.collector.queue.EndOfBatchCommand; import com.a.eye.skywalking.collector.queue.MessageHolder; import com.lmax.disruptor.RingBuffer; /** * @author pengys5 */ public abstract class AbstractAsyncMember extends AbstractMember { private RingBuffer<MessageHolder> ringBuffer; public AbstractAsyncMember(RingBuffer<MessageHolder> ringBuffer, ActorRef actorRef) { super(actorRef); this.ringBuffer = ringBuffer; } public void onEvent(MessageHolder event, long sequence, boolean endOfBatch) throws Exception { Object message = event.getMessage(); event.reset(); receive(message); if (endOfBatch) { receive(new EndOfBatchCommand()); } } public void beTold(Object message) throws Exception { long sequence = ringBuffer.next(); try { ringBuffer.get(sequence).setMessage(message); } finally { ringBuffer.publish(sequence); } } }
skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/actor/AbstractAsyncMemberProvider.java 0 → 100644 +44 −0 Original line number Diff line number Diff line package com.a.eye.skywalking.collector.actor; import akka.actor.ActorRef; import com.a.eye.skywalking.collector.queue.DaemonThreadFactory; import com.a.eye.skywalking.collector.queue.MessageHolder; import com.a.eye.skywalking.collector.queue.MessageHolderFactory; import com.lmax.disruptor.EventHandler; import com.lmax.disruptor.RingBuffer; import com.lmax.disruptor.dsl.Disruptor; import java.lang.reflect.Constructor; /** * @author pengys5 */ public abstract class AbstractAsyncMemberProvider<T extends EventHandler> extends AbstractMemberProvider<T> { public abstract int queueSize(); @Override public T createWorker(ActorRef actorRef) throws Exception { if (memberClass() == null) { throw new IllegalArgumentException("cannot createInstance() with nothing obtained from memberClass()"); } Constructor memberConstructor = memberClass().getDeclaredConstructor(new Class<?>[]{RingBuffer.class, ActorRef.class}); memberConstructor.setAccessible(true); // Specify the size of the ring buffer, must be power of 2. int bufferSize = queueSize(); // Construct the Disruptor Disruptor<MessageHolder> disruptor = new Disruptor<MessageHolder>(MessageHolderFactory.INSTANCE, bufferSize, DaemonThreadFactory.INSTANCE); RingBuffer<MessageHolder> ringBuffer = disruptor.getRingBuffer(); T member = (T) memberConstructor.newInstance(ringBuffer, actorRef); // Connect the handler disruptor.handleEventsWith(member); // Start the Disruptor, starts all threads running disruptor.start(); return member; } }