一、介绍

我们搭建好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集群其中一台宕机后,会怎么样?相关推荐

  1. PostgreSQL(三)pgpool管理PostgreSQL集群下主机宕机后的主从切换

    在前两篇文章的基础上 PostgreSQL(一)PostgreSQL一主二从集群部署 PostgreSQL(二)PostgreSQL一主二从集群之上部署双节点pgpool-II 本文介绍了,当故障发生 ...

  2. 《叶问》37期,三节点的MGR集群关掉两个节点后还能继续读写吗

    不发碎碎念了,唠叨那些没啥意思,重回『叶问』正轨. 1. 三节点的MGR集群关掉两个节点后还能继续读写吗 这里要先明确一个前提,两个节点是正常关闭MGR服务,还是异常宕机. 如果两个节点是手动执行 s ...

  3. kafka利用自带的zookeeper进行集群部署

    一.前提条件 1.部署Kafka集群搭建需要服务器至少3台,奇数台 2.Kafka的安装需要java环境,jdk1.8 3.Kafka安装包版本:https://mirror-hk.koddos.ne ...

  4. 集群空间服务器接收不到消息,解决Redis集群条件下键空间通知服务器接收不到消息的问题...

    解决Redis集群条件下键空间通知服务器接收不到消息的问题 键空间通知介绍 键空间通知使得客户端可以通过订阅频道或模式, 来接收那些以某种方式改动了 Redis 数据集的事件. 可以通过对redis的 ...

  5. (50)uniGUI 高大上的HyperServer-多机部署一个硬集群

    (同一个世界,同一个梦想,交流学习C++Builder and Delphi XE10,传承c++builder and Delphi的魅力!欢迎各地朋友加入我的QQ群484979943,进群密码&q ...

  6. 浪潮发布新型水冷服务器 可以快装移动式液冷集群

    浪潮发布新型水冷服务器 可以快装移动式液冷集群 浪潮近日发布新一代板上液冷的2U4节点高密度服务器i24M5-LC,可支持构建PUE<1.2的大规模水冷服务器数据中心.同时浪潮推出可移动的机架式 ...

  7. 13张PPT带你了解主动式消息队列处理集群

    前言 偷偷和你们说,我搞了一份内部资料,该内部资料共有13张PPT,据作者透露,该PPT至少花了整整1周时间才编写完成,其内容简洁明了,内容深度足够,易于初学者理解,也给深度开发人员分享了不一样的消息 ...

  8. docker-compose 安装mongodb集群==多台服务器

    docker-compose 安装mongodb集群==多台服务器 - a393060727 - 博客园

  9. 「Ceph集群部署」多机离线部署

    存储系统:ceph-14.2.22 操作系统:ubuntu-server-18.04 集群组织架构 在ceph集群中,安装了ceph软件的并且部署了一系列ceph集群服务的主机被称之为ceph集群节点 ...

最新文章

  1. proftpd的搭建以及相关配置
  2. 致命错误: Python.h:没有那个文件或目录
  3. Java异步执行多个HTTP请求的例子(需要apache http类库)
  4. CSP认证201609-1 最大波动[C++题解]:遍历
  5. 2019/Province_C_C++_A/D/迷宫
  6. 词嵌入应用_神经词嵌入的法律应用
  7. 删除单链表中倒是第K个结点
  8. c语言通讯录程序线性表,数据结构(C语言)课设1——单位员工通讯录管理系统(线性表应用)...
  9. Windows监听进程的两个函数
  10. xcode模拟器不显示键盘解决方案
  11. iOS 自动化发布 Fastlane 本地构建 IPA 并分发
  12. pid控制从入门到精通pdf_《PID整定指导》白皮书——PID领域的葵花宝典来袭!
  13. Redis performance --- delete 100 records at maximum
  14. Java密码类型_java加密类型和算法名称
  15. Python 实例教程
  16. 查看linux系统日志某一天,linux系统日志查看
  17. C语言联合体基本内容
  18. [后端人员耍前端系列]KnockoutJs篇:快速掌握KnockoutJs
  19. 自动控制系统中的典型环节
  20. RoaringBitMap学习和实践

热门文章

  1. 支付宝放出数字化经营新神器,可提升商家60%消费频次
  2. 月活用户达7.55亿,阿里淘系如何在后流量时代引爆用户增长?
  3. “大团队”和“敏捷开发”,谁说不可兼得?
  4. 阿里云高级技术专家带你全面了解云主机性能评测
  5. Tensorflow快餐教程(1) - 30行代码搞定手写识别
  6. 除了 Docker,我们还有哪些选择?
  7. 聊聊困扰很多同学的一个问题:是否要转方向 ?
  8. K8S精华问答 | Kubernetes集群不能正常工作,难道是防火墙问题?
  9. 什么是5G,我们能从中得到什么?
  10. html文字...点击后全部显示,js 文字超出部分隐藏、点击显示更多示例