kafka 客户端消费完成基本测试

This commit is contained in:
rewerma
2018-06-12 19:25:03 +08:00
parent 6faa3fd586
commit e7846085fc
10 changed files with 452 additions and 7 deletions

View File

@@ -0,0 +1,19 @@
package com.alibaba.otter.canal.kafka.client.running;
import org.junit.Assert;
public class AbstractKafkaTest {
protected String topic = "example";
protected Integer partition = null;
protected String groupId = "g1";
protected String servers = "slave1.test.apitops.com:6667,slave2.test.apitops.com:6667,slave3.test.apitops.com:6667";
public void sleep(long time) {
try {
Thread.sleep(time);
} catch (InterruptedException e) {
Assert.fail(e.getMessage());
}
}
}

View File

@@ -0,0 +1,42 @@
package com.alibaba.otter.canal.kafka.client.running;
import com.alibaba.otter.canal.client.CanalConnector;
import com.alibaba.otter.canal.kafka.client.KafkaCanalConnectors;
import com.alibaba.otter.canal.protocol.Message;
import org.junit.Test;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class ClientRunningTest extends AbstractKafkaTest {
private boolean running = true;
@Test
public void testKafkaConsumer() {
final ExecutorService executor = Executors.newFixedThreadPool(1);
final CanalConnector kafkaCanalConnector = KafkaCanalConnectors.newKafkaConnector(servers, topic, partition, groupId);
kafkaCanalConnector.connect();
kafkaCanalConnector.subscribe();
executor.submit(new Runnable() {
@Override
public void run() {
while (running) {
Message message = kafkaCanalConnector.getWithoutAck(1);
if (message != null) {
System.out.println(message);
sleep(40000);
}
kafkaCanalConnector.ack(1);
}
}
});
sleep(120000);
running = false;
kafkaCanalConnector.disconnect();
}
}

View File

@@ -0,0 +1,19 @@
<configuration scan="true" scanPeriod=" 5 seconds">
<jmxConfigurator />
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{56} - %msg%n
</pattern>
</encoder>
</appender>
<logger name="org.apache.kafka" additivity="false">
<level value="ERROR" />
<appender-ref ref="STDOUT" />
</logger>
<root level="INFO">
<appender-ref ref="STDOUT"/>
</root>
</configuration>