kafka集群搭建

版本和集群环境

10年的海沧网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都营销网站建设的优势是能够根据用户设备显示端的尺寸不同,自动调整海沧建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联建站从事“海沧网站设计”,“海沧网站推广”以来,每个客户项目都认真落实执行。

kafka版本:2.11

集群环境:两台虚拟机(我这里是一台当producer,一台当consumer)

官网:http://kafka.apache.org/
官方文档:http://kafka.apache.org/documentation.html#quickstart

参考:https://kafka.apache.org/08/quickstart.html

基础配置:已安装jdk和zookeeper(zookeeper安装参照http://blog.csdn.net/unix21/article/details/18990123)

Step 1:下载kafka

到官网上下载稳定版本的kafka,解压

tar -zxvf kafka_2.11-0.8.2.2.tgz

Step 2:修改配置文件

修改config下的server.properties就可以了。需要配置的属性有:broker.id(标示当前server在集群中的id,从0开始),port,host.name(当前的server host name),zookeeper.connect(连接的zookeeper集群),log.dirs(log的存储目录,记得对应的去建立这个目录)等,其他的一些配置可以看相应的注释:(截图不全,仅供参考)

Step 3:把配置好的kafka复制到其它server上

scp -r kafka_2.11-0.8.2.2 slave1:~

Step 4:修改每台server的配置文件,主要是broker.id 和host.name

Step 5:先启动zookeeper集群,再启动kafka集群

启动zookeeper集群:./zkServer.sh start

在每台server上启动kafka:./kafka-server-start.sh ../config/server.properties

Step 6:创建topic

./kafka-topics.sh --zookeeper master:2181 --topic test --replication-factor 2 --partitions 3 --create

Step 7:查看topic

查看所有topic:./kafka-topics.sh --list --zookeeper master:2181

查看一个topic详情:./kafka-topics.sh --describe --zookeeper master:2181 --topic test

partiton:partion id从0开始
leader:当前负责读写的lead broker id
relicas:当前partition的所有replication broker list
isr:relicas的子集,只包含出于活动状态的broker

Step 8:创建producer

./kafka-console-producer.sh --broker-list master:9092,slave1:9092 --topic test

This is a message

注意,如果上述命令不能发送接收消息,报一下错误:

ERROR Failed to collate messages by topic, partition due to: fetching topic metadata for topics [Set(test)] from broker [ArrayBuffer(id:1,host:slave1,port:9092, id:0,host:master,port:9092)] failed (kafka.producer.async.DefaultEventHandler)

则说明broker的host.name属性配置有问题,可以用ip或者是hosts里配好的域名

Step 9:创建consumer

./kafka-console-consumer.sh --zookeeper master:2181 --from-beginning --topic test

就可以看到消息了。

如果要最新的数据,可以不带--from-beginning参数即可。
最后测试容错能力:
‍如果broker 0作为leader运行,现在我们杀掉broker 0,在查看topic的详细信息,发现leader都是broker 1了,并且consumer依然可以消费消息

Maven,Springmvc mybatis shiro, Druid, Restful, Dubbo, ZooKeeper,Redis,FastDFS,ActiveMQ,Nginx
1.项目核心代码结构截图

项目模块依赖

特别提醒:开发人员在开发的时候可以将自己的业务REST服务化或者Dubbo服务化


文章名称:kafka集群搭建
文章转载:http://scyanting.com/article/cpiiio.html