美文网首页
rocketmq错误迁移导致问题排查

rocketmq错误迁移导致问题排查

作者: 匠心零度 | 来源:发表于2018-12-02 09:55 被阅读90次

说明

最近由于测试环境机器老化,导致测试环境rocketmq集群有台机器关机了(那台机器有一个namesrv、一个master、一个另外的slave),后来起来了,运维告诉我们那台集群可能随时要坏,建议把里面的东西迁移,后来商量给了一台新的测试环境,第一次迁移rocketmq,想的简单了,导致了这次rocketmq错误迁移导致问题排查。记录下来,以后真实迁移不会出现这类问题了,也给大家一个参考吧。

问题原因

由于操作的时候仅仅复制了rocketmq的部署包,但是配置文件位置并不在rocketmq部署包里面,所以导致下面出现的一些问题。

image

配置类似这样的,路径单独指定了,和原来的部署包并不在一起,以后如何需要迁移rocketmq机器,记得把这些配置相关的文件都拷贝过去,启动的时候会自动读取的。,虽然现在这个结论看起来很简单,但是从topic那块看出有点问题的时候,还是疑惑了一会会才想到,下面看看一步一步步骤吧。

迁移操作

我的做法是这样的:把原来要坏的机器上面的rocketmq部署的安装包拷贝到新机器,之后修改新机器的hosts之后命令启动,通过命令查看集群起来了。之后我修改集群里面另外的一台集群的hosts把里面的原来指向快坏的机器修改为新的机器地址过了一段时间之后也重启了。

假如原来hosts为:

192.168.116.115 rocketmq1
192.168.116.116 rocketmq2

现在修改为:

192.168.116.115 rocketmq1
192.168.116.117 rocketmq2

备注: 配置hosts唯一好处是,下次换机器,只需要修改hosts文件即可,不需要在修改rocketmq配置文件了。

需要查看了解rocketmq集群部署可以看:RocketMQ集群部署配置这篇文章即可。

问题现象

现象1:

应该是:

image

实际变成了:

image

现象2:

topic的队列情况应该是:

image

实际上 有的topic变成了:

image

有的topic队列变成了只有:

image

刚刚看到这个现象的时候很奇怪,为什么会这样呢?

分析

把新加一台机器思路整理了下,到底做了什么,由于新迁移机器原来的一些配置topics.json,subscriptionGroup.json等信息都没有,由于2台机器先后都重启了。

假如原来hosts为:

192.168.116.115 rocketmq1
192.168.116.116 rocketmq2

现在修改为:

192.168.116.115 rocketmq1
192.168.116.117 rocketmq2

由于新的机器已经启动,并且没有任何的topic信息,这个时候客户端(发送端所在的业务)也重启了,并且连接到了新的机器的namesrv上面,由于这个上面并没有topic任何相关信息,这个时候发送端业务需要发送消息,刚刚巧发送到新的机器获取getTopicRouteInfo,没有获取到信息,走默认topicTBW102,由于默认的读写队列为4,而另外一台机器有该topic信息所以是8,就导致了其中的一个问题。

所以出现了这种情况:

image

另外一个现象是,客户端并没有发送数据操作,而另外一台机器内容也都重启了,由于broker会定时上报到namesrv(只有原来有的broker会上报,新的没有该topic信息上报),其实就在2个namesrv里面都仅仅注册了一个(topic其中就只有一个broker信息),后续发送获取getTopicRouteInfo,就只能获取一个,所以另外一台就没有任何信息了。

image

也就是这个情况了。

image

这个现象就解释完了。

备注:由于测试环境操作的可能性(和不太确定性,测试环境很多,很多人什么时候操作我根本不知道),只是个人推测情况,并且也能解释上面现象,如何有疑问或者哪里不对欢迎一起讨论。

处理

image

把原来快坏的机器上面的相应配置拷贝到新的机器即可(按照道理数据问题也应该拷贝的,但是新的已经入数据了,在拷贝就乱了),重启,现象正常。

备注: 迁移需要注意,不是服务启动起来就行了,应该把运行的一些配置数据啥的都拷贝过去才行。


如果读完觉得有收获的话,欢迎点赞、关注、加公众号【匠心零度】,查阅更多精彩历史!!!

img

相关文章

  • rocketmq错误迁移导致问题排查

    说明 最近由于测试环境机器老化,导致测试环境rocketmq集群有台机器关机了(那台机器有一个namesrv、一个...

  • 大揭秘!RocketMQ如何管理消费进度

    在企业实践RocketMQ时基本上80%都是不消费问题,而由于消费进度问题导致不消费的问题又是最难确认的和排查的。...

  • 当自增遇到零

    今天排查一个问题,迁移工具(公司内部同步工具),迁移的数据少一条,好奇怪,由于迁移表依据primary key切分...

  • Redis migrate slots丢key排查

    1.问题 redis slots迁移的时候,在迁移之后key数量会变少. 2.排查 2.1思考 redis 3.x...

  • XPC connection interrupted - iOS

    程序出现了运行时导致重启的错误,错误信息如上图所示,初步怀疑是由于线程错误导致,经过排查发现是代码中过度删除了页面...

  • Nginx 502错误原因和解决办法总结

    一、NGINX 502错误排查NGINX 502 Bad Gateway错误是FastCGI有问题,造成NGINX...

  • 解决Node迁移导致问题

    写在前面 今天记录一个之前一直存在的问题,因为一直以来对安装各种环境都是一脸懵逼,完全按教程来的操作,这也导致了我...

  • 记录一次解决EXT-X-DISCONTINUITY PTS错误的

    某天测试反馈,硬解某个hls流后面几秒钟无法播放,以为解码错误导致,但实际解码正常。经过排查(排查的过错有些曲折,...

  • Koala 编译出现 invalid byte sequence

    错误很明显 utf-8 问题,一开始以为是路径中出现了中文导致的编译错误,排查了一般后发现路径中并没有中文存在,仍...

  • Android Studio处理编译错误的方法

    有时在遇到一些隐蔽的错误导致编译出错,但是AS并没有给出明确提示,最常见的就是资源问题,下面提供一种方式来排查问题...

网友评论

      本文标题:rocketmq错误迁移导致问题排查

      本文链接:https://www.haomeiwen.com/subject/hjtjcqtx.html