![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
rocketmq实战与源码解析
文章平均质量分 86
针对rocketmq使用中的问题以及对应的源码进行解析说明
威仔奶瓶
这个作者很懒,什么都没留下…
展开
-
msgId与offsetMsgId区别与rocketmqConsole支持的坑
背景在测试环境的一台机子上启动了多个mq实例,某一天同事说投递到test环境的数据,可以在test4环境上查到,这让人有点担心,担心投递的数据会被别的消费。经过了解,同事提供相关的信息,投递到MQ时会返回msgid和offsetMsgId,返回如下:[sendStatus=SEND_OK,msgId=AC13043800067DAF6ECC4AA409590002,offsetMsgId=AC1232CB0000232B000000004BB9D206,messageQueue=Message...原创 2021-12-16 10:35:37 · 1707 阅读 · 0 评论 -
rocketmq的instanceName参数何时该设置
以下只针对集群模式:1producer默认情况下不需要设置instanceName,rocketmq会使用ip@pid(pid代表jvm名字)作为唯一标示如果同一个jvm中,不同的producer需要往不同的rocketmq集群发送消息,需要设置不同的instanceName原因如下:如果不设置instanceName,那么会使用ip@pid作为producer唯一标识,那么会导致多个producer内部只有一个MQClientInstance(与mq交互)实例,从而导致只往一个集群发消息.原创 2021-05-22 17:26:07 · 421 阅读 · 0 评论 -
rocketmq broker启动与分析点
broker初始化createBrokerController()首先介绍createBrokerController()方法BrokerStartup.createBrokerController()这里面进行一些启动前参数的设置,其中留意一个从节点的交互,默认为broker端口+1构造BrokerController在createBrokerController()最后 增加钩子方法,在关闭jvm的时候,针对controller执行shutdown()方法针对标红的brokerCont原创 2020-10-27 21:13:10 · 718 阅读 · 0 评论 -
rocketmq 自动创建topic源码分析
默认情况下,topic不用手动创建,当producer进行消息发送时,会从nameserver拉取topic的路由信息,如果topic的路由信息不存在,那么会默认拉取broker启动时默认创建好名为“TBW102”的Topic。TBW102这个topic在自动创建队列中比较重要,开启自动创建topic的时候,会参照这个topic的创建配置创建,假如这个topic不存在,会无法创建。TBW102 这个又是在哪里完成创建?这个会在broker启动时,随着会带上 topicConfigWrapper,这里面会原创 2020-10-27 11:43:02 · 963 阅读 · 0 评论 -
RocketMQ os.sh 参数优化讲解
RocketMQ在消息读写上的处理是其性能的关键,重度依赖底层操作系统的特性。os.sh中提供了一组默认的操作系统参数配置,这里一条条来分析下。命令sudo sysctl -w vm.extra_free_kbytes=2000000这个参数应该也是用来控制空闲内存大小的。但是很多发行版没有这个参数,一般根据部署环境看是否支持,不支持的话不进行设置应该也没关系。sudo sysctl -w vm.min_free_kbytes=1000000设置系统需要保留的最小内存大小。当系统内存小于原创 2020-10-27 11:38:40 · 818 阅读 · 0 评论 -
rocketmq故障排查
rocketmq排查队列分配的消费者情况rocketmq生产者报连接超时正常的rocketmq是启动在本地,但是在投递消息到本地生产者时经常会报超时。这个时候就要检查对应的配置,这里定位到的是连接的broker的IP不是本机的IP.观察启动的broker日志这个IP 主要来自broker的配置文件brokerIP1=192.168.0.105这个值通过查看本地的网卡,然后根据自己的实际地址进行更改配置文件,重启broker即可rocketmq投递到MQ 但是消费不了查看对应的消费者,发现原创 2020-10-27 11:34:28 · 2067 阅读 · 0 评论 -
rocketmq特性
消息顺序消息有序指的是一类消息消费时,能按照发送的顺序来消费。例如:一个订单产生了三条消息分别是订单创建、订单付款、订单完成。消费时要按照这个顺序消费才能有意义,但是同时订单之间是可以并行消费的。RocketMQ可以严格的保证消息有序。顺序消息分为全局顺序消息与分区顺序消息,全局顺序是指某个Topic下的所有消息都要保证顺序;部分顺序消息只要保证每一组消息被顺序消费即可。全局顺序 对于指定的一个 Topic,所有消息按照严格的先入先出(FIFO)的顺序进行发布和消费。 适用场景:性能要求不高,所原创 2020-10-27 11:24:50 · 113 阅读 · 0 评论 -
rocketmq原生性能测试
rocketmq本身提供了一个关于rocketmq性能测试的工具。在rocketmq的文件包的benchwork中。利用该包中的脚本可以快速的进行相关的rocketmq的性能测试。主要利用的是以下的脚本。这里简单地以producer压测为例。默认的压测是64个线程,持续发128个字节的消息。sh producer.sh -n 172.16.22.67:9876;172.16.22.66:9876执行结果如下:特别说明这里做压测,会有一条进程一直占...原创 2020-05-16 22:57:52 · 1272 阅读 · 2 评论