曾经的消息队列(activeMQ)对于大数据吞吐率不行,但kafka非常好的攻克了此类问题。而且以集群的方式进行扩展。可谓相当强大:
集群搭建方式很轻量级。仅仅需将tar包复制到server,解压,改动配置文件就可以:
1、tar -xzf kafka_2.9.2-0.8.1.1.tgz
2、改动配置文件:
节点1:
vim config/server.properties
broker.id=1 //全部集群节点中必须唯一
port=9092 //端口号(发送消息)
log.dir=/tmp/kafka-logs-1 //日志存放路径
host.name=datanode //域名随便取
zookeeper.connect=datanode:2181,namenode:2181 //节点间地址
节点2:
vim config/server.properties
broker.id=:2 //全部集群节点中必须唯一
port=9092 //端口号(发送消息)
log.dir=/tmp/kafka-logs-1 //日志存放路径
host.name=namenode //域名随便取
zookeeper.connect=datanode:2181,namenode:2181 //节点间地址
......
3、启动zookeeper(最好每台节点都要启动)
bin/zookeeper-server-start.sh config/zookeeper.properties &
4、启动kafka每一个节点(每台节点都要启动)
bin/kafka-server-start.sh config/server.properties &
5、新建主题topic(仅仅要建一次即可)
bin/kafka-topics.sh --create --zookeeper namenode:2181 --replication-factor 2 --partitions 2 --topic topic1
6、查看主题topic
bin/kafka-topics.sh --describe --zookeeper namenode:2181 --topic topic1
7、新建producer发送消息
a.bin/kafka-console-producer.sh --broker-list namenode:9092 --topic topic1
b.输入消息 Ctrl+c终止输入
8、新建consumer消费消息
bin/kafka-console-consumer.sh --zookeeper namenode:2181 --from-beginning --topic topic1
OK 集群搞定
開始检測javaclient的情况:
1、创建生产者:
2、创建消费者:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
5、载入partition
6、处理消息
检測完成