RocketMQ系列:使用systemd管理nameserver和broker

背景

前面RocketMQ系列中分享了如何在机器上搭建rocketmq,其中nameserverbroker都是以nohup的方式启动。在实际运维过程中,这种启动存在一个比较麻烦的问题:比如机器宕机后,重新启动机器,brokernamserver服务无法自动随开机拉起,还需要我们登陆到每台机器上去操作启动服务。又没有比较好的方式管理启动脚本和停止脚本呢?

这里介绍一个系统管理组件:systemd。

我们可以编写unit file,将nameserverbroker作为一个systemd下面的一个unit,从而被systemd管理起来。然后就可以通过systemctl start/restart/stop xxx来启停nameserver和broker了,再通过systemctl enable xxx,可以设置nameserver和broker开启自行启动。

废话不多说,我们开始编写unit file吧。

nohup方式管理

1)nameserver

启动:cd /usr/local/rocketmq/bin &&  nohup ./mqnamesrv -c namesrv.properties &

停止:cd /usr/local/rocketmq/bin && sh mqshutdown namesrv

2) broker

启动:cd /usr/local/rocketmq/bin && nohup sh mqbroker -c rmq-broker.conf &

停止:cd /usr/local/rocketmq/bin && sh mqshutdown broker

那将上述启动方式改成改写成unit file呢?

在/usr/lib/systemd/system这个路径下编写一个.service结尾的文件即可。接下来,我们分别来编写这两个文件。

system的unit file

1)nameserver的unit file编写: /usr/lib/systemd/system/rmq_namesrv.service

[Unit]
Description=rmq
After=network.target

[Service]

#这里Type一定要写simple
Type=simple  

#ExecStart和ExecStop分别在systemctl start和systemctl stop时候调动
ExecStart=/usr/local/rocketmq/bin/mqnamesrv -c /usr/local/rocketmq/bin/namesrv.properties
ExecStop=/usr/local/rocketmq/bin/mqshutdown namesrv

[Install]
WantedBy=multi-user.target

2)broker的unit file编写: /usr/lib/systemd/system/rmq_broker.service

[Unit]
Description=rmq
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/rocketmq/bin/mqbroker -c /usr/local/rocketmq/bin/rmq-broker.conf
ExecStop=/usr/local/rocketmq/bin/mqshutdown broker

[Install]
WantedBy=multi-user.target

systemctl启动服务

我们尝试运行一下:

首先要手动停掉之前的nameserver和broker,分别在nameserver和broker机器上执行如下命令: 

nameserver机器:/usr/local/rocketmq/bin/mqshutdown namesrv

broker机器:/usr/local/rocketmq/bin/mqshutdown broker

然后分别在nameserver和broker机器进行启动nameserver和broker

nameserver

1)启动nameserver

systemctl start rmq_namesrv

2)然后查看对应的状态

systemctl status rmq_namesrv

看到如下图,说明启动成功。

3)再设置随开机自动启动

systemctl enable rmq_namesrv

4)其他

如果想要停止nameserver,执行:systemctl stop rmq_namesrv

如果有多台nameserver,则依次在每台上做如上相关操作。

broker

1)启动broker

systemctl start rmq_broker

2)查看对应的状态

systemctl status rmq_broker

看到如下图,说明启动成功。

3)设置随开机自动启动

systemctl enable rmq_broker

4)其它

如果想要停止broker,执行:systemctl stop rmq_broker

如果有多台broker,则依次在每台上做如上相关操作。

以上就是用systemd来管理rocketmq的进程启停操作了,希望对你有帮助,欢迎留言!

传送门:2021最新测试资料与大厂招聘合集

博主:测试生财(一个不为996而996的测开码农)

座右铭:专注测试开发与自动化运维,努力读书思考写作,为内卷的人生奠定财务自由。

内容范畴:技术提升,职场杂谈,事业发展,阅读写作,投资理财,健康人生。

csdn:https://blog.csdn.net/ccgshigao

博客园:https://www.cnblogs.com/qa-freeroad/

51cto:https://blog.51cto.com/14900374

微信公众号:测试生财(定期分享独家内容和资源)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

公众号-测试生财

点赞和关注比打赏更重要

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值