中间件核心技术与实战
丁威
中通快递资深架构师,RocketMQ 社区首席布道师
19674 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 33 讲
中间件核心技术与实战
15
15
1.0x
00:00/00:00
登录|注册

17|运维:如何运维日均亿级的消息集群?

你好,我是丁威。
得益于我所处的平台,依托快递行业巨大的业务流量,我所在的公司的日均消息流转量(消息发送、消息消费)已经达到万亿级别,消息中间件在公司的使用也非常广泛。这节课,我会结合自己的实践经验和你一起来看看如何在生产环境中运维消息集群。

集群部署

尽管消息集群都可以灵活地扩缩容,但我们在运维集群时还是不应该搭建太大的集群。因为一旦集群受影响,影响范围会很大。合理规划消息集群尤为重要,结合我的集群规划实践,我提炼出了下面几条经验供你参考。
业务场景
核心业务要按业务域进行规划,并且通常采用 RocketMQ。例如我们可以划分出订单、运单、财金等业务域。业务域内尽量独占。
日志采集类通常采用 Kafka,并且也要搭建几套日志集群,做好拆分,控制好影响的范围。
应用特点
消息集群的客户端通常使用长连接。但大数据领域很多数据抽取都是批处理任务,而批处理任务使用的是短连接,所以大数据领域这种我们会规划到单独的集群;另外在定时消息、大消息等场景下,也要规划专属集群。
规划了这么多的集群,集群的管理就成了难点。我们专门开发一个消息运维平台 ZMS,它支持在线安装 RocketMQ、Kafka、ZooKeeper 等中间件,安装原理如下:
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文详细介绍了在生产环境中运维消息集群的方法,包括集群部署、扩容、缩容以及位点重置等方面。作者首先强调了合理规划消息集群的重要性,并介绍了消息运维平台ZMS。在集群扩容方面,分别讨论了RocketMQ和Kafka的扩容方法,包括新增节点的部署和配置,以及负载均衡的实现。在集群缩容方面,介绍了RocketMQ和Kafka节点的缩容处理方法,包括关闭写权限、等待消息过期后再下线等步骤。此外,还涉及了位点重置和NameServer的扩容与下线等内容。最后,强调了中间件运维的基本原则和运维命令的使用技巧。整体而言,本文通过实际案例和操作步骤,详细介绍了消息集群的运维方法,对于需要运维大规模消息集群的技术人员具有一定的参考价值。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《中间件核心技术与实战》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(1)

  • 最新
  • 精选
  • kai
    请问一下,Kafka 一个 Topic 多副本情形下,缩容 1 台机器,直接关闭这台机器之后,集群的很多副本就处于复制状态,这些滞后的副本该如何处理呢?谢谢

    作者回复: 你这个问题提的非常不错,这里其实会多种情况分析。 多副本是几个副本呢?由于目前生产环境大都采取了3副本,我姑且用3副本来回答这个问题,欢迎你后续的追问。 如果是3副本的话,如果挂掉一个,并且isr最小副本数设置为2,那挂掉一个后,其实还有2个副本,这两个副本完成可以快速完成Leader选举,所以这个过程会很快(再结合客户端有重试机制),所以并不对读写有任何影响,也就是对业务无影响,快速完成选举后,就可以继续提供读写服务,至于这个复制,并不会影响任务,就让它默默的完成就好了

    2023-02-02归属地:上海
收起评论
显示
设置
留言
1
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部