Cppentry程序开发

标签: | 发表时间:2020-02-01 15:20 | 作者:
出处:https://m.cppentry.com

最近修改公司线上kafka集群配置然后直接kill掉进程来重启集群发现所有生产者都无法写入数据导致丢了数据,栽了一个大坑,接下来的工作肯定是补坑找原因,就分享一下。

系统环境说明:kafka版本为0.8.1.1,kafka集群配置为10.12.0.23:2181,10.12.0.24:2181,10.12.0.25:2181/kafka,因此在zookeeper中的根路径为:/kafka
1.先决条件,kafka启动必须加上JMX_PORT=9999(自己选一个空闲端口)
在zookeeper的客户端使用get /kafka/brokers/ids/[0,1,2](一个数字代表你的brokerid),如果返回信息中的jmx_port 值为-1就说明启动时没有指定JMX_PORT,这样不需要进行下面步骤,请直接重启集群加上配置,并且server.properties需要设置 auto.create.topics.enable=false
2.观察状态
使用命令./bin/kafka-topics.sh --zookeeper 10.12.0.23:2181,10.12.0.24:2181,10.12.0.25:2181/kafka --describe --topic checkall
观察当前topic的partition分布状况,以单个topic作为说明,此时状态如下:
Topic:checkallPartitionCount:2ReplicationFactor:2Configs:
Topic: checkallPartition: 0Leader: 1Replicas: 1,0Isr: 0,1
Topic: checkallPartition: 1Leader: 0 Replicas: 0,1Isr: 0,1
3.让某台机器下线
./bin/kafka-run-class.sh kafka.admin.ShutdownBroker --zookeeper 10.12.0.23:2181,10.12.0.24:2181,10.12.0.25:2181/kafka --broker 1 --num.retries 3 --retry.interval.ms 600
如出错: java.io.IOException: Failed to retrieve RMIServer stub: javax.naming.ServiceUnavailableException [Root exception is java.rmi.ConnectException: Connection refused to host: XXXXXXXX; nested exception is 请回到步骤1
如成功:再次观察状态可以看到:
Topic:checkallPartitionCount:2ReplicationFactor:2Configs:
Topic: checkallPartition: 0Leader: 0Replicas: 1,0Isr: 0,1
Topic: checkallPartition: 1Leader: 0Replicas: 0,1Isr: 0,1
此时leader已经全部切到brokerid为 0的机器上了
4.JPS找到kafka进程号并kill掉
5.leader重新均衡
./bin/kafka-preferred-replica-election.sh --zookeeper 10.12.0.23:2181,10.12.0.24:2181,10.12.0.25:2181/kafka
成功后重新观察状态会发现恢复到原来正常情况了。

转载请注明来自:http://blog.csdn.net/clarencezi/article/details/42271037

相关 [cppentry 程序 开发] 推荐:

Cppentry程序开发

- -
最近修改公司线上kafka集群配置然后直接kill掉进程来重启集群发现所有生产者都无法写入数据导致丢了数据,栽了一个大坑,接下来的工作肯定是补坑找原因,就分享一下. 系统环境说明:kafka版本为0.8.1.1,kafka集群配置为10.12.0.23:2181,10.12.0.24:2181,10.12.0.25:2181/kafka,因此在zookeeper中的根路径为:/kafka.

scala 开发spark程序

- - 研发管理 - ITeye博客
Spark内核是由Scala语言开发的,因此使用Scala语言开发Spark应用程序是自然而然的事情. 如果你对Scala语言还不太熟悉,可以阅读网络教程 A Scala Tutorial for Java Programmers或者相关 Scala书籍进行学习. 本文将介绍3个Scala Spark编程实例,分别是WordCount、TopK和SparkJoin,分别代表了Spark的三种典型应用.

Eclipse开发Android应用程序入门

- Bingnan - 酷壳 - CoolShell.cn
原文出处:http://www.smashingmagazine.com/2010/10/25/get-started-developing-for-android-with-eclipse/. 如今的移动设备应用程序开发充满着让人振奋的东西. 功能强大的硬件支持,平板电脑,多样的软件平台(塞班 OS,iOS,WebOS,Windows Phone 7…),移动设备开发者前景充满了机会和挑战.

Web应用程序的开发步骤

- xxg - 月光博客
  如今已进入了web2.0高速发展的互联网时代,各种互联网的Web应用程序如雨后春笋般出现. 那么作为一名Web开发人员,怎样去开发一款优秀的Web应用程序呢. 这个问题没有一个简单的答案,甚至那些教育机构都未必能清楚的知道. 所以,像大多数在这个领域里的web开发人员一样,我们只是通过去做,去实验才学会了这些.

Web 开发程序员招聘

- GLORY - 云风的 BLOG
前两天在 blog 里提到了 web 前端程序员招聘的消息 , 结果这两天收到了好多热情洋溢的 email , 真是受宠若惊. 上次说的不详细,其实也没完全想好,只是之前在讨论公司架构的时候提到了这个岗位. 昨天晚上又讨论了一下,把需求细化了一些. 我个人,作为程序员,对 web 前端开发领域没有太多了解,很惭愧.

[程序员] Web开发入门(原创)

- Xinyu - V2EX
这篇文章最早发在水木web开发和IT业界板,都加精了. 原文在我的博客上,不定期会更新下内容. 顺便说下我创建的喜分分 http://www.xifenfen.com 也公测了,是一个个性化阅读,分享与收藏社区. 我读过的相关书籍发布在豆列(已更新):程序员的自我修养 http://book.douban.com/doulist/1268022/.

如何开发一个 N9 上的程序

- wang - Nokia Developer Wiki - Recent changes [en]
本文向大家演示如何开发一个基本的 N9 程序. 首先下载最新的Qt SDK 1.1.2,安装的时候不要使用默认安装,要选择自定义安装,自定义安装的时候记得在Harmattan前打上对勾,这样安装程序才会把开发 Meego平台所用的环境安装到机器上. 下面新建一个 Harmattan 工程:. 我们这里取名叫 helloMeego,以下步骤都按照默认设置即可,一直点到最后一步 finish 即可.

Mozilla希望Web开发可以取代原生程序

- bill - cnBeta.COM
Mozilla 正在构建 WebAPI,一组用于在浏览器中调用硬件设备功能的程序接口. 而之前,通常只有原生应用才能调用硬件功能. 此举意在开发一套跨平台解决方案,让开发人员只编写一次代码,就可以在所有移动平台上运行.

19个基于 HTML5 和 CSS3 开发的优秀应用程序

- Amo - HTML5研究小组
今天,本文向大家展示19个基于 HTML5 和 CSS3 开发的优秀应用程序. HTML5 可以说是近十年来 Web 标准最巨大的飞跃,它的使命是将 Web 带入一个成熟的应用平台,而 CSS3 同样给 WEB 开发带来了革命性的影响,以前很多需要 JavaScript 实现的复杂效果,现在使用简单的 CSS3 就能实现.

【转载】移动开发中HTML5能否替代本地程序?

- - HTML5研究小组
随着移动设备越来越先进,对HTML5的支持度越来越高,我们进军移动领域的时候,都会遇到一个问题,是选择HTML5和还是Native(用原生代码编写的本地程序). HTML5的前景无疑是诱人的,一句“Write once, run anywhere”就可以秒杀一切. 笔者最近两年来对HTML5与Native有较为深入的研究,觉得两者之间不能仅仅是二分法来选择,还要根据企业自身的情况、团队的构成、公司的战略以及产品的特点来综合选择.