Go微服务: 基于rocketmq:5.2.0搭建RocketMQ环境,以及示例参考

Docker部署RocketMQ5.x (单机部署+配置参数详解+不使用docker-compose直接部署) Docker部署RocketMQ5.x 单机部署+配置参数详解+不使用docker-compose直接部署,处理通过环境变量配置堆内存容器内部不生效问题 阅读详情

概述

搭建RocketMQ环境


1 ) 基于 docker-compose 来搭建

version: '3.8'

services:
  namesrv:
    image: apache/rocketmq:5.2.0
    container_name: rmqnamesrv
    ports:
      - 9876:9876
    networks:
      - rmq
    command: sh mqnamesrv

  broker:
    image: apache/rocketmq:5.2.0
    container_name: rmqbroker
    ports:
      - 10909:10909
      - 10911:10911
      - 10912:10912
    volumes:
      - ./conf/broker.conf:/opt/rocketmq-5.2.0/conf/broker.conf # 挂载入自定义配置文件
    environment:
      - NAMESRV_ADDR=rmqnamesrv:9876
    depends_on:
      - namesrv
    networks:
      - rmq
    command: sh mqbroker -c /opt/rocketmq-5.2.0/conf/broker.conf # 使用自定义配置文件启动

  proxy:
    image: apache/rocketmq:5.2.0
    container_name: rmqproxy
    networks:
      - rmq
    depends_on:
      - broker
      - namesrv
    ports:
      - 8080:8080
      - 8081:8081
    restart: on-failure
    environment:
      - NAMESRV_ADDR=rmqnamesrv:9876
    command: sh mqproxy

  dashboard:
    image: apacherocketmq/rocketmq-dashboard:latest
    container_name: rocketmq-dashboard
    ports:
      - 8088:8080
    networks:
      - rmq
    environment:
      - JAVA_OPTS=-Drocketmq.namesrv.addr=namesrv:9876
    depends_on:
      - namesrv
    restart: unless-stopped

networks:
  rmq:
    name: rmq
    driver: bridge
  • 以上配置,是基于官方的2个文档综合而成的一个 yaml 配置文件
  • 注意,如果 broker 中不配置 conf 文件,对 brokeIP 进行指定,则会使用容器内的地址
  • 这时候,就需要自己的程序同样运行在相关的docker网络或打通和上述docker网络之间的连通
  • 这个涉及到部署时的网络畅通,非常重要,在写程序的时候,可以像上述指定配置

2 )对于 proxy 的特别说明

  • 在上述Docker Compose配置中,proxy服务指的是RocketMQ的代理服务
  • 具体来说,它对应的是RocketMQ提供的一个可选组件——RocketMQ Proxy
  • 虽然RocketMQ Proxy并非RocketMQ的核心组件(核心组件主要是Nameserver和Broker)
  • 但它扮演着重要的角色,特别是在提高系统可用性和简化客户端接入方面
  • 以下是关于RocketMQ Proxy的一些详细说明

2.1 )作用与目的

  • 简化客户端配置
    • 客户端只需要连接到Proxy
    • 而不需要关心具体的Nameserver和Broker的地址,这减少了客户端的配置复杂度
    • 尤其是在Broker集群规模大或频繁变动的情况下
  • 负载均衡与高可用
    • Proxy可以对客户端请求进行负载均衡,自动转发到不同的Broker
    • 同时如果Broker发生故障,Proxy也能自动切换到其他可用Broker,提高了系统的高可用性
  • 协议转换
    • 虽然现代的RocketMQ客户端通常直接支持与Broker交互
    • 但Proxy可以提供额外的协议转换能力,使得老版本或非标准的客户端也能接入
  • 安全控制
    • 作为中间层,Proxy可以更容易地实施访问控制、身份验证和加密等安全措施,增强系统安全性。

2.2 )配置与使用

  • 在上述配置中,proxy服务通过以下方式定义:
    • 映射端口:8080:8080和8081:8081,这通常是Proxy的HTTP和HTTPS端口,用于客户端的连接。
    • 环境变量:NAMESRV_ADDR=rmqnamesrv:9876,指定了Proxy需要连接到的Nameserver地址,这是为了获取Broker信息以进行消息路由。
    • 重启策略:restart: on-failure,意味着当Proxy服务因某种原因失败时,Docker会自动尝试重启它,增加了服务的健壮性。
    • 命令:command: sh mqproxy,这是启动Proxy服务的命令,表明这是一个RocketMQ Proxy实例

2.3 )注意事项

  • 性能考量:虽然Proxy带来了便利性和高可用性,但它是作为额外的一层存在,可能会引入额外的网络延迟和资源开销,尤其是在处理大量请求时
  • 版本兼容性:确保Proxy的版本与RocketMQ Broker和Nameserver版本兼容,以避免潜在的通信或功能问题
  • 配置优化:实际部署时,可能需要根据业务需求调整Proxy的配置,比如日志级别、最大连接数、超时时间等,以达到最佳性能和稳定性
  • 综上所述,proxy在RocketMQ部署中提供了客户端与RocketMQ集群间的中介服务,旨在简化客户端配置、提升系统的灵活性和高可用性

3 )./conf/broker.conf 文件

4 )运行和验证

  • 运行:$ docker compose up -d
  • 验证:$ docker compose ps

打开 UI 界面验证

  • 访问: http://127.0.0.1:8088

代码实现


1 )方式 1

2 )方式2

Docker部署RocketMQ 在已创建的Java工程中,创建订阅普通消息程序并运行。这里以 Java SDK 为例介绍一下消息收发过程,可以从 rocketmq-clients 中参阅更多细节。在 pom.xml 文件中添加以下依赖引入Java依赖库,将 rocketmq-client-java-version 替换成 最新的版本.如果您打算运行多个RocketMQ容器,建议创建一个Docker网络以便它们之间可以相互通信。NameServer是RocketMQ的路由服务,您需要首先启动它。在IDEA中创建一个Java工程。 阅读详情

相关推荐

RocketMQ 5.0 Proxy架构解析:云原生消息队列的接入层革新

在分布式系统架构中,消息队列作为解耦异步通信的核心组件,其接入层的设计直接影响着多语言支持与运维复杂度。传统架构通常要求客户端SDK集成服务发现、负载均衡和协议编解码等复杂逻辑,导致多语言生态维护困难。RocketMQ 5.0引入的Proxy组件,正是为了解决这一痛点,通过Sidecar模式将复杂性收归服务端。其核心原理是作为协议转换与流量枢纽,对外提供标准的gRPC/HTTP接口,对内复用高效的Remoting协议与Broker集群通信。这一设计显著提升了系统的云原生友好性,使得多语言客户端开发得以简化,

weixin_33507732的博客 346

go集成rocketmq

go集成rocketmq发送普通消息,延时消息,事务消息,以及消费各种消息类型。

一个菜鸟的博客 2509

docker-compose 搭建RocketMQ 5.1.0 集群(双主双从模式) | Spring Cloud 28

网上关于`Docker`搭建`RocketMQ`单机&集群的版本一般都是`4.X`。关于最新的`5.X`版本,官方给出的示例都是基于物理机&虚拟机实现,不便于我们我们日常开发使用,而且官方镜像 https://hub.docker.com/r/apache/rocketmq 中也没有关于容器化使用的介绍。 本章的目的:展示基于`docker-compose` 搭建`RocketMQ 5.1.0`集群,及一些部署在部署过程中的注意事项,方便大家对新版本的尝鲜与使用。

gmHappy 2万+

golang如何使用rocketmq 附加闭坑指南 建议收藏!!!

当我们的业务达到一定规模,很多业务需要解耦,以及需要流量削峰的时候,我们需要使用MQ来让我们系统能够正常运转。由于rocketmq go 包使用pullConsumer还没实现。所以目前只能使用Subscribe来消费。

HONG的个人博客 2670

从Monolith到Microservices:能源提示系统重构记

我们决定将单体系统重构为微服务架构业务解耦:按领域划分独立服务(如用户服务、能源数据服务、规则引擎服务),每个服务负责单一职责;弹性扩展:针对高并发模块(如数据采集)独立扩容,提升资源利用率;快速迭代:每个服务可独立部署,缩短发布周期;技术多样性:不同服务可选择适合的技术栈(如Go做数据采集、Java做用户管理)。聚合根是Bounded Context中的核心实体,负责维护领域对象的一致性。用户域的聚合根是User(用户),包含(个人信息)、AlertRule(提示规则)两个实体(

SuperAGI2025 780

【云原生】阿里云MQTT和RocketMQ的对比

本文介绍微消息队列MQTT版和传统消息中间件的关联和区别,并针对实际应用场景下的产品选型给出建议。

CN_Eden 2268

Go微服务: 基于rocketmq:server和rocketmq:broker搭建RocketMQ环境,以及生产消息和延迟消费消息的实现

以上是简单的环境搭建和生产消息,以及延迟消费消息的 demo 示例实际场景中,结合以上demo,对一些异步发送消息的场景进行灵活运用和升级。

Wang的专栏 1177

2025 年国人友好神刊盘点:20 本审稿快、分区高的 SCI 期刊,速抢发文先机!

科睿唯安最新发布的 2024 年影响因子(2025 年公布)显示,多本 TOP 期刊影响因子迎来大幅上涨!尤其是对国人友好的期刊,因审稿效率高、版面费亲民、国人发文占比超 40%,成为科研人员投稿热门。本文精选 20 本潜力神刊,涵盖Cell 子刊、顶流期刊、黑马期刊、性价比之王及新晋分区 TOP,附完整的影响因子、中科院分区、审稿周期、收稿方向攻略,助你抢占发文先机!

good_rrrrr的博客 5559

RocketMQ - 跨语言集成:Python/Go语言调用的实践

本文介绍了RocketMQ在多语言环境下的集成方案,重点推荐RocketMQ 5.x的gRPC Proxy官方方案。文章详细讲解了Python和Go语言如何通过gRPC协议与RocketMQ交互,包括环境配置、消息发送/消费的代码示例以及认证配置等关键内容。针对Python开发者,提供了rocketmq-client-python的安装使用指南;对Go开发者,则介绍了rocketmq-client-go的实践方法。全文约15000字,包含架构图、代码片段和性能对比等实用信息,为多语言微服务架构中的消息通信提

千淘万漉虽辛苦,吹尽狂沙始到金 2万+

TortoiseSVN的安装与使用

TortoiseSVN的安装与应用1、安装1.1、下载TortoiseSVN    点击下载TortoiseSvn1.2、下载汉化包。上面的页面中,找到Chinese, simplified汉化包,点击32位或者64位的Setup,下载汉化包。1.3、安装TortoiseSVN。在选择安装路径页面时要记得勾选“command line client tools”,默认不是勾选的。这里不勾选的话在I...

qq_28566071的博客 4万+

拒绝无意义刷屏,打造高效率热点追踪,极空间部署『TrendRadar』

今天的这个项目确实不错,通过部署在极空间NAS之后,我们就能一直不间断的获取到自己想要看到的新闻或者信息。项目的设置项其实有很多,有兴趣的小伙伴可以在部署之后自己慢慢挖掘~目前年终大促正在火热进行中,极空间NAS不管是新品还是之前在售的畅销型号都有专属的优惠,并且还能叠加国补、平台优惠等福利,享受180天换新以及2年质保服务 ,更有抽奖、晒单等活动,喜欢的小伙伴赶快冲吧!

qq_63499861的博客 2290

5分钟快速掌握RocketMQ Go客户端:从入门到实战的完整指南

Apache RocketMQ Go客户端是一个功能完整、性能卓越的Go语言消息中间件解决方案。无论你是刚刚接触分布式消息队列的新手,还是希望为Go应用集成可靠消息通信的开发者,本文将为你提供一份简单实用的入门指南,帮助你快速掌握RocketMQ Go客户端的核心功能和应用场景。 ## 为什么选择RocketMQ Go客户端? 在当今微服务架构盛行的时代,可靠的消息通信已经成为分布式系统的基石

gitblog_00108的博客 275

Dify 1.0+内网部署全攻略:模型插件离线安装与信创环境适配

本文详细介绍了Dify 1.0+版本在内网环境中的部署全攻略,重点解析了模型工具插件的离线安装方法与信创环境适配技巧。通过实战经验分享,帮助企业在严格的内网隔离条件下高效部署AI平台,解决插件依赖和安装难题,提升大语言模型的应用效率。

weixin_29224529的博客 274

紧急规避!Go使用RocketMQ时最易触发的5种死锁场景及解决方案

解决Go使用RocketMQ常见死锁问题,本文结合Go RocketMQ实践,总结5种高发死锁场景及应对策略,涵盖生产者阻塞、消费者并发等典型情况。通过合理配置资源与同步机制,提升系统稳定性,值得收藏。

FastSolve的博客 549

Transformer模型详解(图解最完整版)

Transformer由论文提出,现在是谷歌云TPU推荐的参考模型。论文相关的Tensorflow的代码可以从GitHub获取,其作为Tensor2Tensor包的一部分。哈佛的NLP团队也实现了一个基于PyTorch的版本,并注释该论文。在本文中,我们将试图把模型简化一点,并逐一介绍里面的核心概念,希望让普通读者也能轻易理解。Transformer 与 RNN 不同,可以比较好地并行训练。

2501_91695094的博客 2700

【GlobalMapper精品教程】094:GlobalMapper26简体中文版安装教程(附安装包下载)

【GlobalMapper精品教程】094:GlobalMapper26简体中文版安装教程(附安装包下载)- 基于深度学习的图像分析工具,用于自动识别土地覆盖分类、建筑物提取和车辆检测。新的太阳阴影分析工具,用于计算加载地形和 3D 要素的阴影。新的 GENERATE_SHADOWS 脚本命令允许自动执行这些计算。新增点云模型关键点自动识别。能够在自动点云分析工具中保存和加载自定义创建的要素模型。改进了像素到点中各种潜在重叠图像中 GCP 的自动识别。

智慧空间实验室 4893

RocketMQ Client Go完全指南:从入门到精通的分布式消息队列解决方案

Apache RocketMQ是一个高性能、高可靠的分布式消息队列系统,支持发布/订阅模式的消息传递,提供普通消息、事务消息、延迟消息等多种消息类型。RocketMQ Client Go作为其Go语言客户端,让开发者能够轻松接入这一强大的消息系统,构建可靠的分布式应用。 ## 为什么选择RocketMQ Client Go? RocketMQ Client Go为Go开发者提供了简洁而强大的A

gitblog_01033的博客 485

信奥赛csp初赛高频考点【位运算】(详细解析)

信奥赛csp初赛高频考点【位运算】(详细解析)

王老师青少年编程 370

一款Go语言Gin框架DDD脚手架,适合快速搭建项目

Go语言DDD脚手架摘要 Gin-Framework-DDD是一款基于Gin框架的领域驱动设计(DDD)脚手架,专为快速构建Go语言项目而设计。该脚手架采用严格的四层架构(领域层、应用层、基础设施层和接口层),并整合了RocketMQ实现事件驱动。 核心特性包括: 内置用户与订单领域示例 双数据库支持(MySQL+PostgreSQL) 领域事件与RocketMQ集成 统一响应格式和中间件 可选邮件通知功能 技术栈包含Gin、RocketMQ、MySQL/PostgreSQL和YAML配置。

742

1.4 点云数据获取方式——结构光相机

与此同时,利用相机从特定角度捕捉变形后的图案,基于三角测量原理,通过精确计算相机与投影仪之间的几何关系以及图案的变形程度,就能准确计算出物体表面各点的三维坐标,从而获取高精度的三维点云数据。在高端制造业中,对于微小零部件的尺寸测量和缺陷检测,结构光相机能够提供极其精确的数据,确保产品质量符合严格的标准。时序编码:这类相机通过序列投射多幅不同图案,如格雷码、相移条纹等,通过对这一系列图案的时间序列进行解码分析,就能够获取亚像素级精度的三维信息,其单点误差能够控制在≤0.1mm,展现出极高的测量精度。

qq625924821的博客 924

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Apache RocketMQ 在阿里云大规模商业化实践之路

持续深耕 RocketMQ 领域,更多实战避坑指南、源码解析、最佳实践,已整理至「」 🔍。

weixin_43110351的博客 1282

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

RocketMQ 5.2.0资源下载介绍:开源消息中间件,助力分布式系统

RocketMQ 5.2.0资源下载介绍:开源消息中间件,助力分布式系统 去发现同类优质开源项目:https://gitcode.com/ 在当今技术迅速发展的时代,消息队列在分布式系统架构中扮演着至关重要的角色。RocketMQ 5.2.0版本,作为一款优秀的开源消息中间件,提供了高性能、高可用、高可靠的消息服务。以下是关于RocketMQ 5.2.0资源下载的详细介绍。 项目介绍 Rocket...

gitblog_06786的博客 371

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

难道只有Java卷,Go就不卷了么?

2022年,我开始涉足技术直播和技术讲师领域,并和博文视点合作几次技术直播,直播效果还不错,再加上我孜孜不倦的布道“Spring Cloud Alibaba微服务架构实战派上下册”这本书相关的技术,并且这些技术都是有助于“技术人”快速成长的,因此也获得了博文视点颁发的“2023技术成长领路人”这个技术奖项,这个奖项也是为了鼓励我继续通过技术直播的方式给技术人去布道技术,因此只要我有时间,我就会孜孜不倦的去讲和聊技术。

huxian1234的专栏 1133

RocketMQ C++客户端实战:基于gRPC协议的生产级消息队列集成指南

消息队列作为分布式系统异步解耦和流量削峰的核心组件,其工作原理是通过生产者-消费者模型实现服务间的可靠通信。在众多消息中间件中,Apache RocketMQ凭借其高吞吐、低延迟的特性,在金融交易和物联网等高要求场景中广泛应用。传统上,RocketMQ的Java生态最为完善,但C++作为高性能后端开发的主流语言,同样需要与消息队列生态无缝集成。为此,RocketMQ官方推出了基于gRPC协议的C++客户端SDK,它通过严格的接口定义实现了跨语言一致性,并内置了负载均衡和可观测性支持。该客户端采用gRPC P

weixin_33743703的博客 467

微服务架构中间件安装部署

微服务架构中间件安装部署,jdk、mysql、elastic search、kibana、logstash、nacos、redis、rocketmq、nginx等

java界的小学生 1176
上一篇: Go微服务: 基于rocketmq:server和rocketmq:broker搭建RocketMQ环境,以及生产消息和延迟消费消息的实现
下一篇: Go微服务: 分布式Cap定理和Base理论
Wang's Blog
博客等级 码龄12年 7418粉丝 2407原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wang's Blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值