通过非docker的方式进行RocketMQ的安装

编程之家收集整理的这篇文章主要介绍了通过非docker的方式进行RocketMQ的安装编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

部署安装

下载

下载地址:https://www.apache.org/dyn/closer.cgi?path=rocketmq/4.3.2/rocketmq-all-4.3.2-bin-release.zip

版本使用目前最新版:4.3.2

非Docker安装

cd /haoke
unzip rocketmq-all-4.3.2-bin-release.zip
cd rocketmq-all-4.3.2-bin-release
#启动nameserver
bin/mqnamesrv
# The Name Server boot success. serializeType=JSON 看到这个表示已经提供成功
#启动broker
bin/mqbroker -n 172.16.185.55:9876 #-n 指定nameserver地址和端口
#启动出错
Java HotSpot(TM) 64-Bit Server VM warning: INFO:
os::commit_memory(0x00000005c0000000, 8589934592, 0) Failed; error='Cannot allocate
memory' (errno=12)
……………………………………………………………………………………

启动错误,是因为内存不够,导致启动失败,原因:RocketMQ的配置认是生产环境的配置,设置的jvm的内存大小值比较大,对于学习而言没有必要设置这么大,测试环境的内存往往都不是很大,所以需要调整认值。

#调整认的内存大小参数
cd bin/
vim runserver.sh
JAVA_OPT="${JAVA_OPT} -server -xms128m -Xmx128m -Xmn128m -XX:MetaspaceSize=128m -
XX:MaxMetaspaceSize=128m"
cd bin/
vim runbroker.sh
JAVA_OPT="${JAVA_OPT} -server -xms128m -Xmx128m -Xmn128m"
#从新启动测试
bin/mqbroker -n 172.16.55.185:9876
The broker[itcast, 172.17.0.1:10911] boot success. serializeType=JSON and name
server is 172.16.185.55:9876

下面进行发送消息测试:

export NAMESRV_ADDR=127.0.0.1:9876
cd bin
sh tools.sh org.apache.rocketmq.example.quickstart.Producer
#测试结果
SendResult [sendStatus=SEND_OK, msgid=AC110001473C7D4991AD336AEA5703E0,
offsetMsgid=AC11000100002A9F00000000000E8580, messageQueue=MessageQueue
[topic=TopicTest, brokerName=learn, queueId=3], queueOffset=1323]
SendResult [sendStatus=SEND_OK, msgid=AC110001473C7D4991AD336AEA5903E1,
offsetMsgid=AC11000100002A9F00000000000E8634, messageQueue=MessageQueue
[topic=TopicTest, brokerName=learn, queueId=0], queueOffset=1323]
SendResult [sendStatus=SEND_OK, msgid=AC110001473C7D4991AD336AEA5F03E2,
offsetMsgid=AC11000100002A9F00000000000E86E8, messageQueue=MessageQueue
[topic=TopicTest, brokerName=learn, queueId=1], queueOffset=1323]
SendResult [sendStatus=SEND_OK, msgid=AC110001473C7D4991AD336AEA6103E3,
offsetMsgid=AC11000100002A9F00000000000E879C, messageQueue=MessageQueue
[topic=TopicTest, brokerName=learn, queueId=2], queueOffset=1323]
#可以正常发送消息

测试接收消息:

sh tools.sh org.apache.rocketmq.example.quickstart.Consumer
#测试结果
ConsumeMessageThread_7 Receive New Messages: [MessageExt [queueId=2, storeSize=180,
queueOffset=1322, sysFlag=0, bornTimestamp=1544456244818,
bornHost=/172.16.55.185:33702, storeTimestamp=1544456244819,
storeHost=/172.17.0.1:10911, msgid=AC11000100002A9F00000000000E84CC,
commitlogoffset=951500, bodyCRC=684865321, reconsumeTimes=0,
preparedTransactionOffset=0, toString()=Message{topic='TopicTest', flag=0,
properties={MIN_OFFSET=0, MAX_OFFSET=1325, CONSUME_START_TIME=1544456445397,
UNIQ_KEY=AC110001473C7D4991AD336AEA5203DF, WAIT=true, TAGS=TagA}, body=[72, 101, 108,
108, 111, 32, 82, 111, 99, 107, 101, 116, 77, 81, 32, 57, 57, 49],
transactionId='null'}]]
ConsumeMessageThread_6 Receive New Messages: [MessageExt [queueId=2, storeSize=180,
queueOffset=1323, sysFlag=0, bornTimestamp=1544456244833,
bornHost=/172.16.55.185:33702, storeTimestamp=1544456244835,
storeHost=/172.17.0.1:10911, msgid=AC11000100002A9F00000000000E879C,
commitlogoffset=952220, bodyCRC=801108784, reconsumeTimes=0,
preparedTransactionOffset=0, toString()=Message{topic='TopicTest', flag=0,
properties={MIN_OFFSET=0, MAX_OFFSET=1325, CONSUME_START_TIME=1544456445397,
UNIQ_KEY=AC110001473C7D4991AD336AEA6103E3, WAIT=true, TAGS=TagA}, body=[72, 101, 108,
108, 111, 32, 82, 111, 99, 107, 101, 116, 77, 81, 32, 57, 57, 53],
transactionId='null'}]]
#从结果中,可以看出,接收消息正常

总结

以上是编程之家为你收集整理的通过非docker的方式进行RocketMQ的安装全部内容。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给好友。

原文地址:https://blog.csdn.net/Leon_Jinhai_Sun/article/details/104077641

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

Docker相关文章

2w字的docker入门篇,作者花了半个月时间才写完的,希望对大家学习docker有一定的帮助!
超详细Docker部署SpringBoot+Vue项目(三更博客项目部署)
在 Dockerfile 里,可以通过 FROM 指令指定一个基础镜像,接下来所有的指令都是基于这个镜像所展开的。在镜像构建的过程中,Docker 也会先获取到这个给出的基础镜像,再从这个镜像上进行构建操作。FROM 指令支持三种形式,不管是哪种形式,其核心逻辑就是指出能够被 Docker 识别的那个镜像,好让 Docker 从那个镜像之上开始构建工作。
Docker是一个由GO语言写的程序运行的“容器”(Linux containers, LXCs),它是完整的一套容器管理系统 ,Docker提供了一组命令,让用户更加方便直接地使用容器技术,而无需要过多关心底层内核技术 注1:什么是容器一个容器就相当于一个虚拟机 注2:docker用途,目前有三大类 1.提供一次性的环境。比如,本地测试他人的软件、持续集成的时候提供单元测试和构建的环境 2.提供弹性的云服务。因为 Docker 容器
Docker Compose 目前也是由 Docker 官方主要维护,但其却不属于 Docker Engine 的一部分,而是一个独立的软件。所以要在 Linux 中使用它,还必须要单独下载使用。Docker Compose 是一个由 Python 编写的软件,在拥有 Python 运行环境的机器上,可以直接运行它,不需要其它的操作。可以通过下面的命令下载 Docker Compose 到应用执行目录,并附上运行权限,这样 Docker Compose 就可以在机器中使用了。
将数据存储在容器中,一旦容器被删除,数据也会被删除。同时也会使容器变得越来越大,不方便恢复和迁移。将数据存储到容器之外,这样删除容器也不会丢失数据。一旦容器故障,我们可以重新创建一个容器,将数据挂载到容器里,就可以快速的恢复。在创建数据卷后,容器删除后,数据卷都不会被删除。
【代码】docker快速搭建日常应用。
Docker Registry提供了一些样例配置,用户可以直接使用它们来进行开发或生产部署。博主将以下面的示例配置来介绍如何使用配置文件来管理私有仓库。