文档章节

kafka集群搭建

 张欢19933
发布于 2016/01/22 12:52
字数 555
阅读 639
收藏 10

版本和集群环境

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依然可以消费消息,

 

© 著作权归作者所有

共有 人打赏支持
上一篇: kafka java编程
下一篇: kafka存储机制
粉丝 35
博文 481
码字总数 230666
作品 0
海淀
私信 提问
加载中

评论(5)

momisabuilder
momisabuilder
kafka依赖于zookeeper 所以是必须的。
张欢19933

引用来自“ran_ruan”的评论

你好,请问为什么要先启动zookeeper集群再启动kafka集群?
我有10台服务器组成的kafka集群,那就意味着我要先启动10台服务器上的zookeeper,这样感觉不太效率。

引用来自“张欢19933”的评论

10台机器不一定每台都要安装zookeeper,zookeeper集群三台就够了,producer要向zookeeper进行注册

引用来自“ran_ruan”的评论

谢谢你的回复,我只是举例子说明我的不方便,我的问题是:先启动zookeeper集群是不是必须的?
是必须的
r
ran_ruan

引用来自“ran_ruan”的评论

你好,请问为什么要先启动zookeeper集群再启动kafka集群?
我有10台服务器组成的kafka集群,那就意味着我要先启动10台服务器上的zookeeper,这样感觉不太效率。

引用来自“张欢19933”的评论

10台机器不一定每台都要安装zookeeper,zookeeper集群三台就够了,producer要向zookeeper进行注册
谢谢你的回复,我只是举例子说明我的不方便,我的问题是:先启动zookeeper集群是不是必须的?
张欢19933

引用来自“ran_ruan”的评论

你好,请问为什么要先启动zookeeper集群再启动kafka集群?
我有10台服务器组成的kafka集群,那就意味着我要先启动10台服务器上的zookeeper,这样感觉不太效率。
10台机器不一定每台都要安装zookeeper,zookeeper集群三台就够了,producer要向zookeeper进行注册
r
ran_ruan
你好,请问为什么要先启动zookeeper集群再启动kafka集群?
我有10台服务器组成的kafka集群,那就意味着我要先启动10台服务器上的zookeeper,这样感觉不太效率。
kafka_2.11-0.11.0.1集群搭建

本文搭建一个三节点的Kafka集群。该集群有三个Zookeeper、三个Kafka Broker。 一、准备工作 解压kafka安装包,获得如下目录: Kafka目录结构: 展示如下内容: 二、搭建Zookeeper集群 将目录...

周立_itmuch
2017/11/15
0
0
简单搭建 Apache Kafka 分布式消息系统

早先都是用的基于 JMS 规范的消息系统, 像 ActiveMQ, IBM MQSeries 等. 随着互联网的发展, 大约是要适应当今大数据, 高可用性, 高效的需求, 于是诞生了 Apache Kafka 这一新时代的分布式消息...

YanbinQ
2016/10/18
20
0
基于Docker搭建分布式消息队列Kafka

本文基于Docker搭建一套单节点的Kafka消息队列,Kafka依赖Zookeeper为其管理集群信息,虽然本例不涉及集群,但是该有的组件都还是会有,典型的kafka分布式架构如下图所示。本例搭建的示例包含...

半夜菊花茶
2017/11/23
0
0
集群四部曲(四):完美的Kafka集群搭建

之前写过一篇关于Kafka消息的发布-订阅,只不过是基于一台服务器,不够全面,下面我要说下Kafka集群环境的搭建和消息的发布-订阅,希望大家喜欢。下面的集群搭建是基于单机部署的环境,所以大...

海岸线的曙光
03/20
0
0
Linux系统Kafka集群搭建与简单测试

Kafka安装 Zookeeper集群搭建,可参考Linux系统Zookeeper集群配置 上传kafka安装包并解压 编辑配置文件 这个是server.properties文件内容 增加集群的配置文件server1.properties 修改配置 增...

Listen_ing
2016/06/02
603
0

没有更多内容

加载失败,请刷新页面

加载更多

容器技术系列汇总

docker docker - 在centos7和windows10安装 docker - 镜像加速器 docker - 构建一个简单的docker镜像 docker - 调试Dockerfile docker - 常用命令 docker - Dockerfile常用指令 docker - doc......

细肉云吞
7分钟前
0
0
vue笔记 $set的正确用法

vue2.0 给data对象新增属性,并触发视图更新 如下代码,给 student对象新增 age 属性 data () { return { student: { name: '', sex: '' } } } 众所周知,直接给student赋值操作,虽然可以新...

Carbenson
8分钟前
0
0
Confluence 6 为边栏添加自定义内容

你可以使用 wiki 标记和自定义内容来对边栏进行更进一步的自定义。 希望添加自定义内容到你的边栏中: 进入空间后,然后从边栏的底部选择 空间工具(Space tools) > 外观和感觉(Look and ...

honeymose
12分钟前
0
0
从现在开始!(上海)

从现在开始,我要暂时告别开发了。开始从测试学起,希望自己在测试方面也会有晋升!

政旭Arvin
17分钟前
1
0
网易免费企业邮箱配置客户端

网易免费企业邮箱客户端(pop、imap、smtp)权限默认开启,对应服务器地址为: 发件服务器: SMTP:smtp.ym.163.com 默认端口为:25 (如勾选ssl安全链接,端口号为994) 收件服务器: POP3...

柴高八斗之父
20分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部