ITPub博客

首页 > 应用开发 > IT综合 > rocketmq错误迁移导致问题排查

rocketmq错误迁移导致问题排查

IT综合 作者:misuland 时间:2018-12-06 10:39:23 0 删除 编辑

 米鼠网技能干货:

  

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

  

  问题原因

  

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

   1.png

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

  

  迁移操作

  

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

  

  假如原来hosts为:

   111.png

         现在修改为:

         222.png

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

  


  

  问题现象

  

  现象1:

  

  应该是:

   2.png

  实际变成了:

   3.png

  现象2:

  

  topic的队列情况应该是:

   4.png

  实际上 有的topic变成了:

   5.png

  有的topic队列变成了只有:

   6.png

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

  

  分析

  

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

  

  

     假如原来hosts为:

   111.png

         现在修改为:

         222.png


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

  

  所以出现了这种情况:

   7.png

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

   8.png

  也就是这个情况了。

   9.png

  这个现象就解释完了。

   10.png

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

  

  处理

  

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

  

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

  

  这里小编给大家推荐一个软件在线交易平台——米鼠网,米鼠网是一个创新的复杂性项目在线交易平台,其服务的种类包括了政府采购、软件开发,定制开发、人才外包、等。项目进度可远程监控进度确保项目质量米鼠网对于买家而言,提供了强大的供应商资源,并大幅降低了成本;对乙方而言,则提供了无限的商业机会,双方互惠互利,并有保证金制度约束双方交易流程



来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31555134/viewspace-2284335/,如需转载,请注明出处,否则将追究法律责任。

全部评论
米鼠网是一个创新的软件开发在线交易平台。它能帮助软件买家更好的节省采购成本,监控项目进度确保项目质量;同时它还能帮助软件卖家节省运营成本,解决项目来源等问题。

注册时间:2018-09-17

  • 博文量
    42
  • 访问量
    19917