当前位置: 首页 > news >正文

国产化(银河麒麟_海光CPU)消息中间件选型及安装

目录

一.消息中间件选型建议

1.1各类型消息中间件对比

1.2ActiveMQ或者RocketMQ性能指标对比

1.3综合考虑

二.RocketMQ下载 安装

2.1官方兼容性要求

2.2官网下载

2.3安装

2.3.1解压

2.3.2赋权

2.3.3启动mqnamesrv

2.3.3.1启动异常

2.3.3.2对RocketMQ的影响评估

2.3.3.3解决方案建议

2.3.3.4重新启动

2.3.4启动mqbroker

2.3.4.1启动异常

2.3.4.2解决方案

2.3.4.3重新启动

三.关闭服务器


一.消息中间件选型建议

1.1各类型消息中间件对比

因为国产化服务器的特殊情况,我是比较建议使用开发语言为java的消息中间间,因为涉及到国产化适配的原因,用其他语言相对来说会比较复杂,涉及到源码编译,必要的编译库等等。所以综上所说建议选择ActiveMQ或者RocketMQ。

1.2ActiveMQ或者RocketMQ性能指标对比

对比维度

RocketMQ

ActiveMQ

吞吐量

百万级(约100,000-1,000,000条/秒)

万级(约10,000条/秒)

延迟

毫秒级(5-50ms)

毫秒级(10-100ms)

可靠性

分布式架构+多副本机制,可靠性最高

支持持久化和事务,集群模式下可靠性较弱

扩展性

天然支持分布式部署,扩展性最佳

扩展性较差,集群配置复杂‌

1.3综合考虑

ActiveMQ相对于RocketMQ无论是性能上还是官方更新频率上都有很大差距,所以本文建议使用RocketMQ

二.RocketMQ下载 安装

2.1官方兼容性要求

本人环境为银河麒麟及openjdk1.8

根据RocketMQ官方文档和社区实践,对于OpenJDK 8环境,建议使用以下RocketMQ版本:

RocketMQ 4.x系列‌:

官方明确要求JDK 8+(包括OpenJDK 8)‌

推荐稳定版本:4.9.4(最新4.x稳定版)‌

其他兼容版本:4.3.1、4.2.0等‌

‌RocketMQ 5.x系列‌:

需要JDK 11+,不推荐用于OpenJDK 8环境‌

5.x版本在JDK 8上可能遇到兼容性问题‌

因此最后选择4.x版本

4.x版本推荐与特性对比

推荐版本

发布时间

主要特性

适用场景

4.9.4

2021年

稳定版,功能完善

生产环境首选

4.3.1

2018年

基础功能完整

传统企业应用

4.2.0

2017年

基础消息队列

简单消息场景

最终选择4.9.4作为本次安装的最终版本

2.2官网下载

下载地址(建议右键复制下载地址使用迅雷下载速度会更快)

https://rocketmq.apache.org/zh/release-notes/2025/05/06/5.3.3/

如图所示

2.3安装

因为开发语言的关系,可以直接选用官网编译好的包直接在国产化机器运行。

官方文档

https://rocketmq.apache.org/zh/docs/4.x/quickstart/01quickstart

2.3.1解压

unzip rocketmq-all-4.9.4-bin-release.zip

2.3.2赋权

 chmod -R 777 rocketmq-all-4.9.4-bin-release

2.3.3启动mqnamesrv

sh bin/mqnamesrv
2.3.3.1启动异常

启动后出现警告

OpenJDK 64-Bit Server VM warning: Using the DefNew young collector with the CMS collector is deprecated and will likely be removed in a future release
OpenJDK 64-Bit Server VM warning: UseCMSCompactAtFullCollection is deprecated and will likely be removed in a future release.

警告信息解析

这两条警告信息表明当前RocketMQ Name Server运行时使用了已被OpenJDK标记为废弃的CMS(Concurrent Mark Sweep)垃圾收集器组合:

‌DefNew+CMS组合废弃警告‌:Using the DefNew young collector with the CMS collector is deprecated表示新生代使用DefNew收集器与老年代CMS收集器的组合已被废弃。

‌CMS压缩参数废弃警告‌:UseCMSCompactAtFullCollection is deprecated表示CMS在Full GC时进行内存压缩的参数已被废弃。

CMS收集器是JDK 1.5时期推出的老年代并发收集器,在JDK 9中被标记为废弃,JDK 14中已完全移除。其核心问题包括内存碎片化、处理器资源竞争及无法有效处理并发阶段产生的浮动垃圾等。

2.3.3.2对RocketMQ的影响评估

虽然出现警告,但The Name Server boot success. serializeType=JSON表明Name Server已成功启动,说明:

‌当前运行状态‌:警告不会影响RocketMQ Name Server的基本功能运行

‌潜在风险‌

未来JDK版本升级后将无法使用CMS收集器

CMS在长时间运行后可能出现内存碎片问题,导致Full GC时间延长

并发模式失败(Concurrent Mode Failure)可能导致意外停顿

2.3.3.3解决方案建议

短期解决方案(维持OpenJDK 8环境)

调整RocketMQ启动脚本中的JVM参数,改用G1垃圾收集器:

G1收集器相比CMS具有以下优势:

可预测的停顿时间模型

更好的内存碎片处理能力

更高的吞吐量

更适合大内存堆场景

进入bin目录

cd rocketmq-all-4.9.4-bin-release/bin

编辑runserver.sh脚本

vim runserver.sh

脚本解析:

检测当前Java主版本号(通过$JAVA -version获取)

对Java 8及以下版本(主版本号小于9)配置CMS垃圾收集器参数

对Java 9及以上版本配置G1垃圾收集器参

将第二个红框修改为:

JAVA_OPT="${JAVA_OPT} -XX:+UseG1GC -XX:G1HeapRegionSize=16m -XX:G1ReservePercent=25 -XX:InitiatingHeapOccupancyPercent=30 -XX:SoftRefLRUPolicyMSPerMB=0" 

如图

2.3.3.4重新启动
sh bin/mqnamesrv

成功:The Name Server boot success. serializeType=JSON

2.3.4启动mqbroker

sh bin/mqbroker -n localhost:9876 -c conf/broker.conf
2.3.4.1启动异常

OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00000005c0000000, 8589934592, 0) failed; error='Cannot allocate memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 8589934592 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /root/server/server_app/rocketmq-all-4.9.4-bin-release/hs_err_pid10282.log

错误显示JVM无法分配8GB内存(8589934592 bytes),说明内存不足

2.3.4.2解决方案

编辑runbroker.sh启动脚本

vim runbroker.sh

修改运行大小为2g

修改broker配置文件

cd rocketmq-all-4.9.4-bin-release/conf
vim broker.conf
# 所属集群名字
brokerClusterName = DefaultCluster
brokerName = broker-a
# 0 表示 Master,> 0 表示 Slave
brokerId = 0
# 删除文件时间点,默认凌晨4点
deleteWhen = 04
# 文件保留时间,默认48小时
fileReservedTime = 48
# Broker 的角色
# - ASYNC_MASTER 异步复制Master
# - SYNC_MASTER 同步双写Master
# - SLAVE
brokerRole = ASYNC_MASTER
# 刷盘策略-异步
# - ASYNC_FLUSH 异步刷盘
# - SYNC_FLUSH 同步刷盘
flushDiskType = ASYNC_FLUSH
# 是否允许 Broker 自动创建 Topic,建议线下开启,线上关闭 !!!
autoCreateTopicEnable=true
brokerIP1=192.168.1.8
# Broker 对外服务的监听端口
listenPort=10311
# 检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
# 限制的消息大小
#maxMessageSize=65536

2.3.4.3重新启动
sh bin/mqbroker -n localhost:9876 -c conf/broker.conf

The broker[broker-a, 192.168.1.8:10311] boot success (成功)

注意

4.9.4版本的标准启动命令仅支持基础参数:

sh bin/mqbroker -n localhost:9876 -c conf/broker.conf

5.x版本支持即 Broker 和 Proxy 同进程部署

sh bin/mqbroker -n localhost:9876 --enable-proxy

三.关闭服务器

$ 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
http://www.dtcms.com/a/407476.html

相关文章:

  • 宁波品牌网站推广优化公司章丘营销型网站设计公司
  • p6spy 打印完整sql
  • 【ARM】MDK-Functions界面设置
  • 沈阳市建设局网站首页网站的运行与维护
  • 昌宁县住房和城乡建设网站订阅号做流量 那些电影如何链接网站
  • 【LVS入门宝典】LVS调度算法轮询(RR)深度解析:从原理到实战的公平调度之道
  • udhcpc, udhcpd由 BusyBox编译出来就好
  • 前端 CORS 深度解析
  • HT81696 概述
  • PMP-项目管理-PMBOK第六版_中文版:引论
  • 上海网站建站建设自己做的网站在百度怎么发布
  • SpringBoot+QQ 邮箱邮件开发指南:环境配置、功能实现、异常处理一站式搞定
  • Linux 数据库 Mysql8 主从复制
  • 做网站的图片房产国内免费推广网站
  • 建设网站需要分析什么条件云南软件开发项目管理
  • OpenHands+cpolar:AI编程助手的远程调试新方案
  • 从 0 到 1 掌握 ESP32 RMT(新手友好版)
  • 做设计什么网站可以兼职网站管理与建设总结
  • 少样本学习学习论文分享:多模态性帮助单模态性
  • 深入MySQL底层2-SQL优化与数据库运维管理
  • 设计站网页制作的公司选时代创信
  • 国外服装网站石岩做网站哪家好
  • 超越单边控制:介绍新一代对话智能体评测基准τ2-Bench
  • Scala • basis
  • vi设计公司深圳企业网站排名怎么优化
  • 深度学习视角下的图像分类技术体系总结
  • mysql数据库最新版下载,安装
  • 记2831.找出最长等值子数组 练习理解
  • 优秀网站作品下载免费广告设计模板网站
  • 住房和城乡建设部官方网站发布郑州发布会最新消息