运维开发网 https://www.qedev.com
2020-03-10 09:21
出处:网络作者:运维开发网整理
package com.bus365.kafka; import java.nio.ByteBuffer; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Properties; import java.util.concurrent.ExecutorService; i
相关专题:package com.bus365.kafka; import java.nio.ByteBuffer; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Properties; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import kafka.consumer.Consumer; import kafka.consumer.ConsumerConfig; import kafka.consumer.KafkaStream; import kafka.javaapi.consumer.ConsumerConnector; import kafka.message.Message; import kafka.message.MessageAndMetadata; public class ConsumerSample { public static void main(String[] args) { // specify some consumer properties Properties props = new Properties(); props.put("zookeeper.connect", "192.168.3.230:2181"); props.put("zookeeper.connectiontimeout.ms", "1000000"); props.put("group.id", "test_group"); //序列化类 props.put("serializer.class", "kafka.serializer.StringEncoder"); // Create the connection to the cluster ConsumerConfig consumerConfig = new ConsumerConfig(props); ConsumerConnector connector = Consumer.createJavaConsumerConnector(consumerConfig); Map topics = new HashMap(); topics.put("test", 2); Map>> topicMessageStreams = connector.createMessageStreams(topics); List> streams = topicMessageStreams.get("test"); ExecutorService threadPool = Executors.newFixedThreadPool(2); for (final KafkaStream stream : streams) { threadPool.submit(new Runnable() { public void run() { for (MessageAndMetadata msgAndMetadata : stream) { // process message (msgAndMetadata.message()) System.out.println("topic: " + msgAndMetadata.topic()); Message message = (Message) msgAndMetadata.message(); ByteBuffer buffer = message.payload(); byte[] bytes = new byte[message.payloadSize()]; buffer.get(bytes); String tmp = new String(bytes); System.out.println("message content: " + tmp); } } }); } } }
分享到
0
0
0