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的进程启停操作了,希望对你有帮助,欢迎留言!

博主:测试生财

座右铭:专注测试与自动化,致力提高研发效能;通过测试精进完成原始积累,通过读书理财奔向财务自由。

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

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

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

来源:https://www.icode9.com/content-4-802051.html

(0)

相关推荐

  • Kafka/RocketMQ架构对比

    一.Broker设计对比 1. Kafka Topic A共有2个分区,每个分区有两个副本(一个Leader一个Follower),分别分布在 Broker0 和 Broker1 上: Broker0 ...

  • Linux系统 Centos7 环境基于Docker部署Rocketmq服务

    消息队列 基本概述 MQ,Message Queue,基于TCP协议构建的简单协议,区别于具体的通信协议. 基于通信协议定义和抽象的更高层次的通信模型,一般都是生产者和消费者模型,又或者说服务端和客户 ...

  • RocketMQ-入门

    RocketMQ是什么 RocketMQ是一个分布式消息和流数据平台,具有低延迟.高性能.高可靠性.万亿级容量和灵活的可扩展性.RocketMQ是2012年阿里巴巴开源的第三代分布式消息中间件,201 ...

  • EMBA教材系列:创业管理

    译者序 导言业以证明的成功模式 创业者的回报和风险 创业者创立新企业的优势和劣势 集中资源为客户定制产品 成功地应付变化 节约成本.有效的销售组织和市场营销方法 确定价格以使今后一段时间收入*大化 适 ...

  • 商业分析系列课-10KPI管理

    商业分析系列课-10KPI管理

  • .NET Core 3 WPF MVVM框架 Prism系列之区域管理器

    本文将介绍如何在.NET Core3环境下使用MVVM框架Prism的使用区域管理器对于View的管理 一.区域管理器 我们在之前的Prism系列构建了一个标准式Prism项目,这篇文章将会讲解之前项 ...

  • ITIL系列之变更管理概述及详细流程图

    正文 企业运用信息技术的根本目的是为其业务运作提供支持.这种支持或是战略层的,或是战术层的,也可能是运作层的.企业面临的外部环境是不断变化的,因而它的业务运作也必须随着外部环境的变化做出调整:相应地, ...

  • 小萌新—> Linux高手系列:包管理

    <小萌新 -> Linux高手系列文章>. 今天这篇文章将给大家介绍基于CentOS的包管理. 在Linux操作系统中主要两种形式的包管理形式: 一种形式是压缩包的形式:例如**.t ...

  • 小萌新—> Linux高手系列:包管理【二】

    上期回顾:小萌新-> Linux高手系列:包管理作为一个有追求的测试,如何从一个运维小萌新成长为一个Linux 高手?请持续关注我们的<小萌新 -> Linux高手系列文章>. ...

  • 《排污许可管理条例》系列解读-排污管理(2)

    <排污许可管理条例> 系列解读 "排污管理" 企业单位如何管理? 排污单位注意啦 <排污许可管理条例> 2021年3月1日起正式施行 在此之前 鹮鹮会为大家 ...

  • 【精益ERP系列5】管理信息系统实施的三个层次

    关注我们,打造行业领先企业 管理信息系统是帮助企业提升经营与管理水平的有效手段,针对制造型企业来讲,管理信息系统的有效产品就是ERP(Enterprise Resource Planning)系统.E ...

  • 3DLC系列:LUT 管理器

    在 3DLC 的工作流程面板中,可以加载外部 LUT 文件,如同 Ps 的颜色查找命令. 而使用 LUT 管理器 Look manager的好处是,可以同时查看文件夹里的所有 LUT 效果,不需要一个 ...