前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >rocketmq1:集群主要结构和监控,以及性能测试与成本控制

rocketmq1:集群主要结构和监控,以及性能测试与成本控制

作者头像
千里行走
发布2019-07-03 17:52:55
1.4K0
发布2019-07-03 17:52:55
举报
文章被收录于专栏:千里行走千里行走

(1). rocketmq集群主要结构

官方推荐的部署结构是2master-2slave+2namesrvs,master与slave的同步支持async/sync两种方式。

1.对于mq使用必须了解的重要组成部分:

topic, producer, producerGroup; consumer, consumerGroup, consumerQueue。

topic:消息主题。

producer:消息生产者,发送消息;一个topic可以有多个消息来源/生产者。

consumer:消息的消费者,接收消息;一个topic可以有多个消费者。

producerGroup:

对producer分组。

以订单为例说明其必要性,订单消息的产生分布在多个系统,我们需要对每个系统发出的订单消息分类,方便我们统计一个topic下不同消息来源的producer的相关指标数据,如不同订单系统发送订单消息的TPS等。

结合grafana+prometheus编程,可以很直观的将各个系统的orderProducer监控起来。

consumerGroup:

对consumer分组。

同样还以订单为例,同一个订单消息会被多个系统同时消费,我们需要对每个系统发出的订单消息分类,方便我们统计一个topic下不同消费者的相关指标数据,如消息被消费的TPS等。

结合grafana+prometheus编程,可以很直观的将各个系统的orderProducer监控起来。

consumerGroup和producerGroup的作用:

a.一方面可以监控业务中的producer和consumer的运行状态;

b.另一方面也是对rocketmq集群的保护,由于所有topic的消息的内容都存在一个文件里,所以如果不同topic的消费速度存在很大差异时,会造成随机IO飙升,使得集群的性能出现不稳定。

做法也很简单,结合grafana+prometheus编程,将他监控起来,同时加入报警。

2.commitlog&queuelog:

所有消息都存在这个commitlog文件中,按照大小切分,queuelog中记录每条消息在commitlog中的位置等信息;

这也是为什么rocketmq比kafka性能好很多的原因,rocketmq存放消息的只有一个文件,但是kafka是一个partition一个消息文件,rocketmq的随机IO<<kafka。

kafka主要还是用于日志,topic少(partitions少);rocketmq主要用于业务,因为会有很多的topic;两者的面向场景还是有很大差异的。

3.consumerOffset:

用于记录每个consumer消费消息的位置。

但是要注意:rocketmq的存储结构决定了一个queue只能分配给一个consumer,因为只有这样consumer对queue的消息的消费位置的提交才不会冲突(注1),所以当consumer数量多于queue数量时,多于的consumer不会工作。

注1:如果要保证多个consumer对同一个queue的offset提交不会冲突,这个太复杂了,性能也会大幅下降,没有mq会这么做。

数据格式如下(很好理解):

(2). rocketmq监控

rocketmq的监控包含三部分:

a.prometheus编程监控producer和consumer+grafana展示+报警;

b.自己写脚本监控topic积压数量+报警;

c.官方rocketmq-console提供admin后台级别的数据监控(没有报警);

这里展示a和b:

a.prometheus+grafana监控rocketmq

c.官方rocketmq-console

官方的这个console是很强大的,支持非常多的维度数据,涵盖几乎所有指标,这里取其一举例。

(3). 性能测试

性能测试也是一个很讲究工程学的问题,这里只列出最终采用的架构所对应的测试用例,后边有时间单开一章讨论rocketmq性能测试的设计和实践。

(4). 成本控制

架构/基础组件的定型过程中,成本是相当重要的环节,即性价比问题。

下图中的成本部分数字做了加权混淆修正。

从上图中,我们很明显可以看到,换SSD磁盘没有必要,费用上升很多,实际中只有遵循成本的工程策略,才能把费用降下来,钱都是这么省出来的;

一定要有成本意识。

后边有时间会深入rocketmq各个环节去探究。

结束。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-03-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 千里行走 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.对于mq使用必须了解的重要组成部分:
  • 2.commitlog&queuelog:
  • 3.consumerOffset:
相关产品与服务
Grafana 服务
Grafana 服务(TencentCloud Managed Service for Grafana,TCMG)是腾讯云基于社区广受欢迎的开源可视化项目 Grafana ,并与 Grafana Lab 合作开发的托管服务。TCMG 为您提供安全、免运维 Grafana 的能力,内建腾讯云多种数据源插件,如 Prometheus 监控服务、容器服务、日志服务 、Graphite 和 InfluxDB 等,最终实现数据的统一可视化。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档