rocketmq简易版搭建

发布于:2024-06-30 ⋅ 阅读:(21) ⋅ 点赞:(0)

今天真是搭了本人六七个钟,太难了
首先是魔法大战镜像,这波大败而归,连上了,可惜没氪金,永远是没拉完就超时,魔法质量不行,等上班赚点米再改良一下魔法类别,那还得继续linux搭建
请添加图片描述

1.重启Linux平台

拿着我克隆出来的新机器就是一顿咔咔配置,首先保证本机和虚拟机ping通

2.基本联通实验

一开始打算偷个小懒,直接把es自带的JDK16拿来一用,进度咔咔顺利

$ nohup sh bin/mqnamesrv &
 
### 验证namesrv是否启动成功
$ tail -f ~/logs/rocketmqlogs/namesrv.log

### 先启动broker
$ nohup sh bin/mqbroker -n localhost:9876 --enable-proxy &

### 验证broker是否启动成功, 比如, broker的ip是192.168.1.2 然后名字是broker-a
$ tail -f ~/logs/rocketmqlogs/proxy.log 

发生了如下错误Java HotSpot™ 64-Bit Server VM warning: INFO: os::commit_memory(0x00000005c0000000, 8589934592, 0) failed; error=‘Cannot allocate memory’ (errno=12)

内存不足,解决方法是直接把机器扩大成了10G,并且把broker和NameServer从8g调为4g,broker的配置在bin/runbroker.sh中,而NamerServer的配置在bin/runserver.sh中

3. 终端操作

board是通过rocketmq-dashboard完成的,通过获取源码,然后直接install获得jar包,通过java -jar rocketmq-dashboard-1.0.0.jar --spring.config.location=file:application.properties 完成了部署。结果。。。

RocketMQLog:WARN No appenders could be found for logger (io.netty.util.internal.PlatformDependent).
RocketMQLog:WARN Please initialize the logger system properly.
[2024-06-29 05:45:00.126] ERROR Unexpected error occurred in scheduled task
java.lang.NoClassDefFoundError: Could not initialize class io.netty.util.internal.PlatformDependent0
	at io.netty.util.internal.PlatformDependent.getSystemClassLoader(PlatformDependent.java:694)
	at io.netty.channel.nio.NioEventLoop$4.run(NioEventLoop.java:171)
...

原因是因为我偷了个小懒,直接拿了elastic search自带的jdk16来完成rocketmq的服务加载,结果本机完成jar包的install又是jdk11,两个版本不匹配,导致了问题。更难搞的是,linux和win的jdk其实是不一样的,一边是exe,一边是ddl,所以不能拿对方的直接打包来用。为了保证完全一样,去Oracle官网搞了个同代Jdk11的Linux和Win版。打包之后上传,再让rocketmq的board完成部署即可

结果。。。

[2024-06-29 07:16:30.015] ERROR Unexpected error occurred in scheduled task
java.lang.RuntimeException: org.apache.rocketmq.remoting.exception.RemotingConnectException: connect to [localhost:9876 ] failed
	at com.google.common.base.Throwables.propagate(Throwables.java:241)
	at org.apache.rocketmq.dashboard.task.DashboardCollectTask.collectTopic(DashboardCollectTask.java:161)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)

网络竟然连不上了!先试试看跑一个
请添加图片描述
一点问题没有,懵逼,又去官网检查了一下,board就只有一个tag那就是1.0.0版本,也不存在版本兼容问题

最后被idea提醒了,多了个空格,妙!
请添加图片描述
这次日志完全正常了,但是却不可以访问。直接检查防火墙,systemctl status firewalld,竟然是启动的,不是!为什么互ping防火墙还开着,于是连忙调整防火墙,这次就真完成了

重新部署,至此完成!

请添加图片描述

版本声明

rocketmq 5.2.0
rocketmq-dashboard 1.0.0
JDK Oracle 11