kafka服务器死机消息,当kafka集群其中一台宕机后,会怎么样?
一、介绍
我们搭建好kafka集群后,对其进行性能测试。遇到这种场景:我搭建好了三台kakfa集群,然后停掉其中一台kafka,然后集群是否能正常工作呢?
kafka集群:
192.168.183.53 节点1
192.168.183.55 节点2
192.168.183.62 节点3
创建的主题是hw_data:
三个分区、三个副本
./kafka-topics.sh --create --zookeeper 192.168.183.53:2181 --topic hw_data --partitions 3 --replication-factor 3 二、问题
三个节点启动以后,集群正常工作,正常生产、正常消费。
但是当我们停掉其中一个节点后,发现集群不能正常工作了。
三、原因
我的这个问题的凶手是:__consumer_offsets
首先查看系统的_offsets副本是几个?
./kafka-topics.sh --describe --zookeeper 192.168.183.53|grep consumer_offsets
我们看到 副本数为1,这就是导致我们当一个节点宕机后集群无法正常工作的原因!
__consumer_offsets这个topic是由kafka自动创建的,默认50个,但是都存在一台kafka服务器上,这是不是就存在很明显的单点故障?
经测试,如果将存储consumer_offsets的这台机器kill掉,所有的消费者都停止消费了。
__consumer_offsets是一个非常重要的topic,我们怎么能允许它只有一个副本呢?这样就存在单点故障,也就是如果该分区所在的集群宕机了的话,我们的消费者就无法正常消费数据了。
四、解决办法
1.修改系统_offsets副本数为3
修改kafka的核心配置文件server.properties
将num.partitions参数(默认为1)修改为3,
另外需要添加auto.create.topics.enable=true ,如果没有对应的topic可以主动创建topic。
由于__consumer_offsets是kafka默认的主题,无法删除,我们可以删除zookeeper中的__consumer_offsets。
进入zookeeper/bin目录执行./zkCli.sh
ls /broksers/topicsrmr /broksers/topics/__consumer_offsetsls /broksers/topics
先将集群停掉
在重新启动zookeeper和kafka
再次查看__consumer_offsets。发现副本数已经是3
在节点1修改__consumer_offsets后,在节点2和节点3查看__consumer_offsets发现副本数已经变为3,不需要再进行修改。
我的问题到这里就解决了:
启动kafka集群三个节点,然后停掉其中任意一个节点,集群是可以正常工作的。
2.修改创建的topic的副本数为3
查看创建的topic的副本数是否为1
Bug1 kafka启动以后没有添加到zk节点
进入zookeeper的bin目录,执行./zk.Cli.sh
删除brokers下的ids
ls /brokers/idsrmr /brokers/ids
重启kafka,应该就可以了。
Bug2 无法删除topic
我首先使用rmr /brokers/topics/topicname删除了zookeeper中的topic ,这样查看kafka中的topic时,显示已经没有了,
但是我又创建我刚刚删除的主题时,发现他已经显示被标记删除。
我的配置文件已经设置了删除topic为true,但是我删除的主题还是显示被标记删除,没有真正的删除
解决办法:
进入zookeeper的bin目录,执行./zk.Cli.sh
删除config、brokers、admin下的对应主题
rmr /config/topics/topicnamermr /brokers/topics/topicnamermr /admin/delete_topics/topicname作者:Liu_Shihao 原文链接:https://blog.csdn.net/DreamsArchitects/article/details/108573887
kafka服务器死机消息,当kafka集群其中一台宕机后,会怎么样?相关推荐
- PostgreSQL(三)pgpool管理PostgreSQL集群下主机宕机后的主从切换
在前两篇文章的基础上 PostgreSQL(一)PostgreSQL一主二从集群部署 PostgreSQL(二)PostgreSQL一主二从集群之上部署双节点pgpool-II 本文介绍了,当故障发生 ...
- 《叶问》37期,三节点的MGR集群关掉两个节点后还能继续读写吗
不发碎碎念了,唠叨那些没啥意思,重回『叶问』正轨. 1. 三节点的MGR集群关掉两个节点后还能继续读写吗 这里要先明确一个前提,两个节点是正常关闭MGR服务,还是异常宕机. 如果两个节点是手动执行 s ...
- kafka利用自带的zookeeper进行集群部署
一.前提条件 1.部署Kafka集群搭建需要服务器至少3台,奇数台 2.Kafka的安装需要java环境,jdk1.8 3.Kafka安装包版本:https://mirror-hk.koddos.ne ...
- 集群空间服务器接收不到消息,解决Redis集群条件下键空间通知服务器接收不到消息的问题...
解决Redis集群条件下键空间通知服务器接收不到消息的问题 键空间通知介绍 键空间通知使得客户端可以通过订阅频道或模式, 来接收那些以某种方式改动了 Redis 数据集的事件. 可以通过对redis的 ...
- (50)uniGUI 高大上的HyperServer-多机部署一个硬集群
(同一个世界,同一个梦想,交流学习C++Builder and Delphi XE10,传承c++builder and Delphi的魅力!欢迎各地朋友加入我的QQ群484979943,进群密码&q ...
- 浪潮发布新型水冷服务器 可以快装移动式液冷集群
浪潮发布新型水冷服务器 可以快装移动式液冷集群 浪潮近日发布新一代板上液冷的2U4节点高密度服务器i24M5-LC,可支持构建PUE<1.2的大规模水冷服务器数据中心.同时浪潮推出可移动的机架式 ...
- 13张PPT带你了解主动式消息队列处理集群
前言 偷偷和你们说,我搞了一份内部资料,该内部资料共有13张PPT,据作者透露,该PPT至少花了整整1周时间才编写完成,其内容简洁明了,内容深度足够,易于初学者理解,也给深度开发人员分享了不一样的消息 ...
- docker-compose 安装mongodb集群==多台服务器
docker-compose 安装mongodb集群==多台服务器 - a393060727 - 博客园
- 「Ceph集群部署」多机离线部署
存储系统:ceph-14.2.22 操作系统:ubuntu-server-18.04 集群组织架构 在ceph集群中,安装了ceph软件的并且部署了一系列ceph集群服务的主机被称之为ceph集群节点 ...
最新文章
- proftpd的搭建以及相关配置
- 致命错误: Python.h:没有那个文件或目录
- Java异步执行多个HTTP请求的例子(需要apache http类库)
- CSP认证201609-1	最大波动[C++题解]:遍历
- 2019/Province_C_C++_A/D/迷宫
- 词嵌入应用_神经词嵌入的法律应用
- 删除单链表中倒是第K个结点
- c语言通讯录程序线性表,数据结构(C语言)课设1——单位员工通讯录管理系统(线性表应用)...
- Windows监听进程的两个函数
- xcode模拟器不显示键盘解决方案
- iOS 自动化发布 Fastlane 本地构建 IPA 并分发
- pid控制从入门到精通pdf_《PID整定指导》白皮书——PID领域的葵花宝典来袭!
- Redis performance --- delete 100 records at maximum
- Java密码类型_java加密类型和算法名称
- Python 实例教程
- 查看linux系统日志某一天,linux系统日志查看
- C语言联合体基本内容
- [后端人员耍前端系列]KnockoutJs篇:快速掌握KnockoutJs
- 自动控制系统中的典型环节
- RoaringBitMap学习和实践
热门文章
- 支付宝放出数字化经营新神器,可提升商家60%消费频次
- 月活用户达7.55亿,阿里淘系如何在后流量时代引爆用户增长?
- “大团队”和“敏捷开发”,谁说不可兼得?
- 阿里云高级技术专家带你全面了解云主机性能评测
- Tensorflow快餐教程(1) - 30行代码搞定手写识别
- 除了 Docker,我们还有哪些选择?
- 聊聊困扰很多同学的一个问题:是否要转方向 ?
- K8S精华问答 | Kubernetes集群不能正常工作,难道是防火墙问题?
- 什么是5G,我们能从中得到什么?
- html文字...点击后全部显示,js 文字超出部分隐藏、点击显示更多示例