环境说明
对于 4.3.0版本,官方要求环境如下,其中 Git 用于从 GitHub 获取源码,没有安装也没关系,可以直接下载。 官方推荐的流程是:Linux 系统上安装 Git 工具 、Maven、Java JDK Git 工具用于直接从 GitHub 获取 RocketMQ 项目源码下载到 Linux 系统上 然后 Maven 将 RocketMQ 源码进行编译成二进制文件 安装了 Java JDK 就可以运行 RocketMQ 了
JDK和RocketMQ 版本说明
RocketMQ 下载
可以从apache的文件库下载 这里我们选择最新版
RocketMQ 安装
1、项目解压
unzip rocketmq-all-4.7.1-bin-release.zip -d /usr/local/rocketmq
2、修改RocketMQ启动配置 修改目录/usr/local/rocketmq/rocketmq-all-4.7.1-bin-release/bin
下的 3 个配置文件: runserver.sh
、runbroker.sh
、tools.sh
不然会报insufficient memory
设置 runserver.sh 中此项配置
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn512m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
设置 runbroker.sh 中此项配置
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m"
设置 tools.sh 中此项配置
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn256m -XX:PermSize=128m -XX:MaxPermSize=128m"
修改broker.conf
文件
vim ./conf/broker.conf
添加如下两行配置
不配置这个用客户端去连接的话会报错
RocketMQ 启动
启动 NameServer 进入 RocketMQ 安装目录下的/usr/local/rocketmq/rocketmq-all-4.7.1-bin-release
目录进行操作。
执行命令启动NameServer
nohup sh bin/mqnamesrv &
nohup sh mqnamesrv &
:属于后台启动sh mqnamesrv
:属于终端启动,直接输出日志信息,按 ctrl+c 可直接关闭退出
查看启动状态 在当前目录下会有一个 nohup.out 的日志文件,可以打开查看 namesrv 的启动情况。如下所示,看到 The Name Server boot success.serializeType=JSON
表示启动成功
启动 Broker 同样进入 RocketMQ 安装目录下的/usr/local/rocketmq/rocketmq-all-4.7.1-bin-release
目录进行操作
# 启动命令,并且常驻内存:注意ip地址要配置成为服务的ip地址,保证地址以及端口能够访问。并且指定配置文件启动 nohup sh bin/mqbroker -n 192.168.80.16:9876 -c ./conf/broker.conf &
nohup sh bin/mqbroker -n 192.168.64.144:9876 &
:属于后台启动
sh bin/mqbroker -n 192.168.64.144:9876
:属于终端启动,直接输出日志信息,按 ctrl+c 可直接关闭退出
查看启动状态 同样去看nohup.out 文件
,看到下图所示即启动成功:
发送消息
发送/接收消息之前,需要告诉客户端(Producer、Consumer)名称服务器的位置,RocketMQ 提供了多种方法来实现这一点:
-
编程方式,如:producer.setNamesrvAddr(“ip:port”)
-
Java 选项,如:rocketmq.namesrv.addr
-
环境变量,如:NAMESRV_ADDR
-
HTTP 端点
如下所示官方提供这个例子属于生产者,用于发送消息,运行之后会发送大量的消息,之后就会退出。注意,在安装目录/usr/local/rocketmq/rocketmq-all-4.7.1-bin-release
进行操作
export NAMESRV_ADDR=localhost:9876 sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
接收消息
上面的消息发送完毕之后就会退出,在同一窗口中可以使用消费者类来进行接收消息,如下所示,显然是多线程的
[root@localhost rocketmq-all-4.7.1-bin-release]# sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
下图可以看到接收到了消息
关闭服务器
与启动顺序相反进行关闭,先关闭 broker、在关闭 nameserv
> sh bin/mqshutdown broker The mqbroker(36695) is running... Send shutdown request to mqbroker(36695) OK > sh bin/mqshutdown namesrv The mqnamesrv(36664) is running... Send shutdown request to mqnamesrv(36664) OK
没有回复内容