问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

Kafka相关内容总结(Kafka集群搭建手记)

发布网友 发布时间:2022-12-03 06:06

我来回答

1个回答

热心网友 时间:2023-05-11 03:41

Kafka is a distributed,partitioned,replicated commit logservice。它提供了类似于JMS的特性,但是在设计实现上完全不同,此外它并不是JMS规范的实现。kafka对消息保存时根据Topic进行归类,发送消息者成为Procer,消息接受者成为Consumer,此外kafka集群有多个kafka实例组成,每个实例(server)成为broker。无论是kafka集群,还是procer和consumer都依赖于zookeeper来保证系统可用性集群保存一些meta信息。
入门请参照: https://www.ibm.com/developerworks/cn/opensource/os-cn-kafka/index.html
在此不再赘述。

这部分不是本文的重点,但是kafka需要用到kafka集群,所以先搭建kafka集群。
从kafka官方文档看到,kafka似乎在未来的版本希望抛弃zookeep集群,自己维护集群的一致性,拭目以待吧。
我们搭建集群使用的是三台同机房的机器,因为zookeeper不怎么占资源也不怎么占空间(我们的业务目前比较简单),所以三台机器上都搭建了zookeeper集群。
搭建zookeeper集群没什么难度,参考文档: http://www.cnblogs.com/huangxincheng/p/5654170.html
下面列一下我的配置并解析:

一共用三台物理机器,搭建一个Kafka集群。
每台服务器的硬盘划分都是一样的,每个独立的物理磁盘挂在一个单独的分区里面,这样很方便用于Kafka多个partition的数据读写与冗余。
/data1比较小,为了不成为集群的瓶颈,所以/data1用于存放kafka以及Zookeeper
每台机器的磁盘分布如下:

下面是kafka的简单配置,三台服务器都一样,如有不一致的在下文有说明。
kafka安装在目录/usr/local/kafka/下,下面的说明以10.1.xxx.57为例。

最重要的配置文件server.properties,需要配置的信息如下:

从上面的配置看到,kafka集群不需要像hadoop集群那样,配置ssh通讯,而且一个kafka服务器(官方文档称之为broker,下面统一使用这个称呼)并不知道其他的kafka服务器的存在,因此你需要逐个broker去启动kafka。各个broker根据自己的配置,会自动去配置文件上的zk服务器报到,这就是一个有zk服务器粘合起来的kafka集群。
我写了一个启动脚本,放在 /usr/local/kafka/bin 下面。启动脚本每个broker都一样:

如同kafka集群里面每一个broker都需要单独启动一样,kafka集群里面每一个broker都需要单独关闭。
官方给出的关闭脚本是单独运行 bin/kafka-server-stop.sh
但是我运行的结果是无法关闭。打开脚本一看,才发现是最简单的办法,发一个TERM信号到kafka的java进程,官方脚本给出的grep有点问题。
发信号之后,一直tail着kafka日志,看到正常关闭。

指定zookeeper服务器,topic名称是LvsKafka(注意topic名称不能有英文句号(.)和下划线(_),否则会通不过,理由是名称会冲突,下文对此略有解析)
replication-factor指出重复因子是2,也就是每条数据有两个拷贝,可靠性考虑。
partitions 指出需要多少个partition,数据量大的多一点,无论生产和消费,这是负载均衡和高并发的需要。

可以看到刚才新建的24个partition,比如partition 5, 他的leader是broker 59,也就是10.1.xxx.59这台机器。
建立topic时我们指出需要2个拷贝,从上面的输出的Replicas字段看到,这两个拷贝放在59,58两个机器,也就是10.1.xxx.59和10.1.xxx.58.
Isr表示当前partition的所有拷贝所在的机器中,哪些是还活着(可以提供服务)的。现在是59和58都还存活。

这个命令另外还会看到一些类似于下面的内容:

__consumer_offsets到底是什么呢?其实就是客户端的消费进度,客户端会定时上报到kafka集群,而kafka集群会把每个客户端的消费进度放入一个自己内部的topic中,这个topic就是__consumer_offsets。我查看过__consumer_offsets的内容,其实就是每个客户端的消费进度作为一条消息,放入__consumer_offsets这个topic中。
这里给了我们两个提示:
1、kafka自己管理客户端的消费进度,而不是依靠zk,这就是kafka官方文档说的kafka未来会抛弃zk的底气之一;
2、留意到这个kafka自己的topic是带下划线的,也就是,kafka担心我们自己建的topic如果带下划线的话会跟这些内部自用的topic冲突;
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
...一个月以上的处方,被医务处发现3次,且无正当理由。该医师应当被提出... 处方管理办法第六章 监督管理 限制处方权后连续几次取消处方权 英雄联盟点存活什么意思英雄联盟这个指令什么意思note 英雄联盟什么是标记英雄联盟标记是什么怎么用 TP-link TL-WR702N型号,即插即用迷你型无线路由器在家使用跟酒店交换... TP-Link TL-WR710N迷你路由器只需要一根网线就可以连接wifi 吗(AR模 ... 宾馆改无线平板电脑如何让类似宾馆的有线网络变成无线wifi这样就可以... 九阳豆浆机插电之后面板灯全亮,按所有键都没反应,是怎么回事,请高手指 ... ...插上电源之后,指示灯全亮,按键不管用了,怎么回事... 京东家电5折卷怎么抢 京东大额券如何可以抢到 有没有京东抢券软件啊,花钱也可以 什么情况不能穿高跟鞋 对方欠我钱不还怎么办 下水管道漏水属于物业管理吗? 去维修店联想e450c重装系统加个8g内存条多少钱? 惠普的暗夜精灵2代8g内存多少钱 增信是什么意思,提高信用 上海美兰湖中华园周边有什么医院或医疗设施? 上海招商海德名门周边有什么医院或医疗设施? 上海远洋7号SOHO公寓周边有什么医院或医疗设施? 上海青秀苑周边有什么医院或医疗设施? 上海金地云锦苑周边有什么医院或医疗设施? 上海上置·美兰优湖周边有什么医院或医疗设施? 上海远洋7号周边有什么医院或医疗设施? 上海金匮堂药品经营有限公司怎么样? 衡水金匮堂大药房有限公司怎么样? 杭州临平的房子二次抵押可以做吗 ANDYLIU 指是是哪位香港四大天王 kafka——AdminClient API kafka之auto-offset-reset 求问纯爱同志论坛 想注册PP论坛,请给一个邀请码吧,谢谢! 英语用It is开头,一美元兑换一加拿大元和一美元兑换6.55人民币分别怎么说 Kafka集群数据同步至另一个Kafka集群 银行系统中的消息分发利器Kafka(三) 怎么解除电信限制网速 具体解决方法 互助土族自治县公路管护条例(2018修改) vivo手机怎么登录两个 vivo手机如何登录两个不同的 vivo怎么上2个 VIVO手机如何登录两个 vivo手机如何登录两个不同的 利用rotoscope技术制作的电影有哪些 湖南省枝道木制品有限公司怎么样? 相机对焦坏了修需要多少钱 尼康24 105对焦坏了多少钱 佳能500D自动对焦坏了,维修大概多少钱?100分求~ 单反无法自动对焦,维修大概多少钱?
  • 焦点

最新推荐

猜你喜欢

热门推荐