主页 > 软件开发  > 

Linux阿里云服务器安装RocketMQ教程

Linux阿里云服务器安装RocketMQ教程

        本文为个人云服务器上搭建RocketMQ教程,用于帮助大家降低安装学习成本,提高学习效率。本人在服务器上(我用的是阿里云服务器)安装MQ时遇到了大大小小的问题,因此在最终完成部署后,希望能总结一个教程,帮助大家一键高效完成部署。

在实际部署前,先带大家回顾一下RocketMQ的核心概念及工作流程。

RocketMQ核心概念: NameServer:可以理解为是一个注册中心,主要是用来保存topic路由信息,管理Broker。在NameServer的集群中,NameServer与NameServer之间是没有任何通信的。Broker:核心的一个角色,主要是用来保存topic的信息,接受生产者产生的消息,持久化消息。在一个Broker集群中,相同的BrokerName可以称为一个Broker组,一个Broker组中,BrokerId为0的为主节点,其它的为从节点。BrokerName和BrokerId是可以在Broker启动时通过配置文件配置的。每个Broker组只存放一部分消息。生产者:生产消息的一方就是生产者生产者组:一个生产者组可以有很多生产者,只需要在创建生产者的时候指定生产者组,那么这个生产者就在那个生产者组消费者:用来消费生产者消息的一方消费者组:跟生产者一样,每个消费者都有所在的消费者组,一个消费者组可以有很多的消费者,不同的消费者组消费消息是互不影响的。topic(主题) :可以理解为一个消息的集合的名字,生产者在发送消息的时候需要指定发到哪个topic下,消费者消费消息的时候也需要知道自己消费的是哪些topic底下的消息。Tag(子主题) :比topic低一级,可以用来区分同一topic下的不同业务类型的消息,发送消息的时候也需要指定。 工作流程

上面这张图很好的表示了RocketMQ的工作流程:

Broker启动的时候,会往每台NameServer(因为NameServer之间不通信,所以每台都得注册)注册自己的信息,这些信息包括自己的ip和端口号,自己这台Broker有哪些topic等信息。Producer在启动之后会跟会NameServer建立连接,定期从NameServer中获取Broker的信息,当发送消息的时候,会根据消息需要发送到哪个topic去找对应的Broker地址,如果有的话,就向这台Broker发送请求;没有找到的话,就看根据是否允许自动创建topic来决定是否发送消息。Broker在接收到Producer的消息之后,会将消息存起来,持久化,如果有从节点的话,也会主动同步给从节点,实现数据的备份Consumer启动之后也会跟会NameServer建立连接,定期从NameServer中获取Broker和对应topic的信息,然后根据自己需要订阅的topic信息找到对应的Broker的地址,然后跟Broker建立连接,获取消息,进行消费。

根据以上工作流程可知,NamerServer会定期获取Broker的信息,并且Producer和Consumer在启动后都会和NameServer建立连接,因此在部署启动RocketMQ时需要先启动Name人Server,后启动Broker才可以。

环境搭建

        在简单介绍了RocketMQ的核心概念和工作流后,进入实际的部署环境。

        本文主要介绍使用Docker Compose进行安装,使用原始的拉取MQ包并进行解压缩运行的方法较为复杂,且原始的MQ配置中JVM的内存空间大小是8g,也需要修改对应的配置,因此不推荐该方法。而使用docker方式也可以,但需要分别拉取NameServer、Broker和DashBoa的镜像再运行,有点麻烦,不如Docker Compose通过编写Docker Compose.yaml配置文件进行运行来的方便快捷。

1. 准备

        在实际安装MQ之前,需要有一些前提准备工作(基础环境搭建):

关闭防火墙 systemctl stop firewalld systemctl disable firewalld 安装好JDK,因为RockerMQ是使用Java编写的,且后续的RocketMQ的Web可视化管理页面DashBoard也是使用Spring写的,因此需要有Java运行环境。 //查看JDK版本(最好在1.8以上,因为1.8稳定) java -version

安装好了Docker及Docker-Compose

Docker和Docker-Compose的作用:

Docker:Docker 是一个容器化平台,专注于管理单个容器。每次您启动一个 Docker 容器时,都需要使用 docker run 命令手动指定所有容器的配置。Docker Compose:Docker Compose 用于定义和运行多容器应用。它使得管理多个容器变得简单,通过编写 docker-compose.yml 文件来配置所有容器,然后用 docker-compose 命令来管理这些容器。 //查询docker版本 docker -v //查询docker-compose版本 docker-compose -v

创建好对应的文件:分别创建rocketmq文件夹,conf文件夹和broker.conf及docker-compose.yml配置文件。

2. 修改具体配置文件 修改broker.conf配置文件 //进入对应的conf文件夹下 cd /usr/local/rocketmq/conf //修改配置文件 vim broker.conf

broker配置文件如下:

brokerClusterName = DefaultCluster

brokerName = broker-a

brokerId = 0

deleteWhen = 04

fileReservedTime = 48

brokerRole = ASYNC_MASTER

flushDiskType = ASYNC_FLUSH

# 如果是本地程序调用云主机 mq,这个需要设置成 云主机 IP

# 如果Docker环境需要设置成宿主机IP

brokerIP1 = {docker宿主机IP地址}

修改docker-compose.yaml配置文件 //进入对应的conf文件夹下 cd /usr/local/rocketmq/conf //修改配置文件 vim docker-compose.yaml

docker-compose.yaml配置文件如下:

version: '3.5' services:   namesrv:     image: apache/rocketmq:5.2.0     container_name: rmqnamesrv     ports:       - "9876:9876"     command: sh mqnamesrv     environment:       - JAVA_OPT_EXT=-Xms128m -Xmx128m -Xmn128m     networks:         rmq:           aliases:             - rmqnamesrv

  broker:     image: apache/rocketmq:5.2.0     container_name: rmqbroker     ports:       - "10909:10909"       - "10911:10911"     depends_on:       - namesrv     volumes:       - ./conf/broker.conf:/opt.rocketmq-5.2.0/conf/broker.conf     command: sh mqbroker -c /opt.rocketmq-5.2.0/conf/broker.conf     environment:       NAMESRV_ADDR: "rmqnamesrv:9876"       JAVA_OPT_EXT: "-server -Xms128m -Xmx128m -Xmn128m"     networks:       rmq:         aliases:           - rmqbroker

  mqconsole:     image: apacherocketmq/rocketmq-dashboard     container_name: rmqconsole     ports:       - 8080:8080     depends_on:       - namesrv     environment:         JAVA_OPTS: "-Drocketmq.namesrv.addr=rmqnamesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false"     networks:       rmq:         aliases:           - rmqconsole

networks:   rmq:     name: rmq     driver: bridge

        这里简单说明一下这个配置文件的内容及作用:里面分别介绍了namesrv、broker和mqconsole镜像的名称、容器名称、环境、端口及网络配置等,根据该配置文件,可拉取对应的镜像并构建容器,command: sh mqbroker -c /opt.rocketmq-5.2.0/conf/broker.conf命令的作用是根据刚修改的broker.conf来运行。

3. 运行docker-compose.yaml

        在完成以上内容后,就可以运行docker-compose.yaml,它会拉取对应的镜像并构建容器运行。如果拉取失败也可以自己把上面所需的三个镜像拉取下来,再运行该文件。

//进入含有docker-compose.yaml的文件夹下 cd /usr/local/rocketmq/conf //启动docker-compose docker-compose up //上面的命令为前台启动,可以直接看到启动过程和可能出现的错误 docker-compose up -d //上面的命令为后台启动

启动后的界面:

当显示以上界面时说明启动成功,输入http://主机ip:8080后若能成功访问说明部署成功。

        如果MQ启动成功了,但是无法打开网页,有可能是服务器对应的安全组没有设置,记得把10909、10911、9876打开。

        以上就是MQ的所有部署安装教程啦,祝大家都能找到满意的offer~

标签:

Linux阿里云服务器安装RocketMQ教程由讯客互联软件开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“Linux阿里云服务器安装RocketMQ教程