接上文:《架构设计:系统间通信(29)——Kafka及场景应用(中2)》
4-5、Kafka原理:消费者
作为Apache Kafka消息队列,它的性能指标相当一部分取决于消费者们的性能——只要消息能被快速消费掉不在Broker端形成拥堵,整个Apache Kafka就不会出现性能瓶颈问题。
4-5-1、基本使用
我们首先使用Kafka Client For JAVA API为各位读者演示一下最简单的Kafka消费者端的使用。以下示例代码可以和上文中所给出的生产者代码相对应,形成一个完整的消息创建——接收——发送过程:
package kafkaTQ;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import kafka.consumer.Consumer;
import kafka.consumer.ConsumerConfig;
import kafka.consumer.ConsumerIterator;
import kafka.consumer.KafkaStream;
import kafka.javaapi.consumer.ConsumerConnector;
import kafka.message.MessageAndMetadata;
/**
* 这是Kafka的topic消费者
* @author yinwenjie
*/
public class KafkaConsumer_GroupOne {
public static void main(String[] args) throws RuntimeException {
// ==============首先各种连接属性
// Kafka消费者的完整连接属性在Apache Kafka官网http://kafka.apache.org/documentation.html#consumerconfigs
// 有详细介绍(请参看Old Consumer Configs。New Consumer Configs是给Kafka V0.9.0.0+使用的)
// 这里我们设置几个关键属性
Properties props = new Properties();
// zookeeper相关的,如果有多个zk节点,这里以“,”进行分割
props.put("zookeeper.c