RocketMQ之升级依赖jar包版本

今天发现阿里云的"云安全中心"报出了一个新漏洞,漏洞叫做"fastjson < 1.2.60远程拒绝服务漏洞"。
在这里插入图片描述
大致意思是说如果不更新fastjson的版本,就可能被攻击者利用漏洞使得服务器的CPU、内存等资源被耗尽,最终拒绝服务。
从受影响的资产中,可以看出是rocketmq的依赖jar包中有fastjson。

于是我仔细想了下,我们的几个环境中,生产环境、预发环境和测试环境的rocketmq只能通过阿里云内网调用,不存在被攻击的可能,只有阿里云上的开发环境是有外网调用的,所以开发环境的rocketmq中的fastjson.jar需要更新到1.2.60版本。

1.思路

我之前安装的rocketmq都是直接下载的二进制包。这次需要改里面的依赖包的版本,所以必须下载相应版本的源码包,然后把pom文件中的fastjson的版本改为1.2.60,再进行编译。编译完之后,停掉原先安装的rocketmq,并把其中修改过的一些文件(配置文件、启动文件、日志目录、存储目录)拷贝过到新的rocketmq中,再启动新的rockermq即可。

2.下载对应版本的源码包

下载地址为http://rocketmq.apache.org/dowloading/releases/
我的rocketmq的版本为4.3.0,所以下载下图中的源码包
在这里插入图片描述

3.下载完成之后步骤为:解压–>修改pom文件–>编译打包

[root@devops-01 test]# unzip rocketmq-all-4.3.0-source-release.zip 
[root@devops-01 test]# cd rocketmq-all-4.3.0
[root@devops-01 rocketmq-all-4.3.0]# vim pom.xml 
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>fastjson</artifactId>
                <version>1.2.60</version>
            </dependency>
[root@devops-01 rocketmq-all-4.3.0]# mvn -Prelease-all -DskipTests clean install -U
[root@devops-01 rocketmq-all-4.3.0]# cd distribution/target

在这个目录下你会可看到打包好的安装包。
在这里插入图片描述

4.复制文件复制到新的rocketmq中

[root@devops-01 target]# cp /usr/local/rocketmq-4.3.0/conf/broker.conf apache-rocketmq/conf/
[root@devops-01 target]# cp /usr/local/rocketmq-4.3.0/conf/nameser.properties apache-rocketmq/conf/
[root@devops-01 target]# cp /usr/local/rocketmq-4.3.0/bin/runserver.sh apache-rocketmq/conf/runserver.sh apache-rocketmq/bin/
[root@devops-01 target]# cp /usr/local/rocketmq-4.3.0/bin/runbroker.sh apache-rocketmq/conf/runserver.sh apache-rocketmq/bin/
杀掉rocketmq的进程
[root@devops-01 target]# cp -rf /usr/local/rocketmq-4.3.0/logs apache-rocketmq/
[root@devops-01 target]# cp -rf /usr/local/rocketmq-4.3.0/store apache-rocketmq/
[root@devops-01 target]# mv /usr/local/rocketmq-4.3.0 /tmp/
[root@devops-01 target]# mv apache-rocketmq /usr/local/rocketmq-4.3.0

5.然后只需启动rocketmq即可

nohup sh /usr/local/rocketmq-4.3.0/bin/mqnamesrv -c /usr/local/rocketmq-4.3.0/conf/nameser.properties >> /usr/local/rocketmq-4.3.0/logs/mqnamesrv_stdout.log 2>&1 &
nohup sh /usr/local/rocketmq-4.3.0/bin/mqbroker -c /usr/local/rocketmq-4.3.0/conf/broker.conf >> /usr/local/rocketmq-4.3.0/logs/broker_stdout.log 2>&1 &

这样,rocketmq的升级依赖jar包版本的操作就完成了,可以去新的rocketmq中查看一下之前的topic是否还在,当然,答案是肯定的。

参考文章:http://rocketmq.apache.org/docs/quick-start/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值