搭建 RocketMQ服务器,这是我见过“最便捷”的方法!

rocketmq那些事儿之集群环境搭建 上一篇入门基础部分对rocketmq进行了一个基础知识的讲解说明,在正式使用前我们需要进行环境的搭建,今天就来说一说rockeketmq分布式集群环境的搭建 前言 之前已经介绍了rocketmq的入门基础,相信各位已经基本了解,今天进行一个分布式集群的搭建,其实可以通过本地源码来进行源码的使用和学习,但是作为开发维护人员还是需要去了解分布式集群的部署流程,方便后面集群的调试和测试 配置参数 注意官... 阅读详情

最近学习使用 rocketmq,需要搭建 rocketmq 服务端,本文主要记录 rocketmq 搭建过程以及这个过程踩到的一些坑。至于有多简单呢,在本机已有Docker环境的情况下只需要三步即可。
在这里插入图片描述
从github上面拉取项目
修改broker.conf中的brokerIP1 参数,修改为本机IP
进入docker-compose.yml文件所在路径,执行docker-compose up命令即可
前言
首先我们是使用Docker进行搭建环境的,所以我们先要在自己机器上的安装Docker,具体的安装过程以及对于Docker的介绍官方文档里面说的很清楚了。

小编有整理最新python爬虫教程,免费领取方式是私信小编,回复:资料分享。

我们要搭建RocketMQ服务器,那么我们就要知道大概搭建RocketMQ服务器需要部署哪些东西。对于RocketMQ有一个架构图,如下所示。而图中所示的Producer(生产者)和Consumer(消费者)无需我们搭建,因为那是作为一个服务器进行启动的。nameserver就是一个注册中心一样组件,我们可以将其简单理解成springcloud中的Eureka,那么nameserver是需要我们搭建的。broker就是真正处理消息的地方,也是需要我们搭建的。

搭建 RocketMQ服务器,这是我见过“最便捷”的方法!
正常情况我们搭建上面所提到的两个组件其实就能已经能够满足我们的发送接收消息的需求了。但是通常情况下我们还需要搭建一个Web可视化的平台用来查看MQ的服务状态、消息的消费情况、主题的队列配置等等。这里使用rocketmq-console。同样也是通过Docker来进行安装。

部署
上面我们提到了需要安装三个组件,那么这三个组件又是需要能够互相通信连接的,考虑到分开部署进行配置连接信息比较麻烦,于是这里我们采用docker-compose进行配置部署。

首先我们需要创建docker-compose.yml配置文件。文件内容如下

version: '3.5'
services:
  rmqnamesrv:
    image: foxiswho/rocketmq:server
    container_name: rmqnamesrv
    ports:
      - 9876:9876
    volumes:
      - ./logs:/opt/logs
      - ./store:/opt/store
    networks:
        rmq:
          aliases:
            - rmqnamesrv

  rmqbroker:
    image: foxiswho/rocketmq:broker
    container_name: rmqbroker
    ports:
      - 10909:10909
      - 10911:10911
    volumes:
      - ./logs:/opt/logs
      - ./store:/opt/store
      - ./conf/broker.conf:/etc/rocketmq/broker.conf
    environment:
        NAMESRV_ADDR: "rmqnamesrv:9876"
        JAVA_OPTS: " -Duser.home=/opt"
        JAVA_OPT_EXT: "-server -Xms128m -Xmx128m -Xmn128m"
    command: mqbroker -c /etc/rocketmq/broker.conf
    depends_on:
      - rmqnamesrv
    networks:
      rmq:
        aliases:
          - rmqbroker

  rmqconsole:
    image: styletang/rocketmq-console-ng
    container_name: rmqconsole
    ports:
      - 8080:8080
    environment:
        JAVA_OPTS: "-Drocketmq.namesrv.addr=rmqnamesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false"
    depends_on:
      - rmqnamesrv
    networks:
      rmq:
        aliases:
          - rmqconsole

networks:
  rmq:
    name: rmq
    driver: bridge

然后在与docker-compose.yml同级下面相应的建立三个文件夹conf、logs、store。然后在conf文件夹下面建立broker.conf配置文件,所有文件的目录位置如下所示。

docker-compose.yml
conf
	- broker.conf
logs
store

然后在编写broker.conf配置文件里面的内容

# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
#  Unless required by applicable law or agreed to in writing, software
#  distributed under the License is distributed on an "AS IS" BASIS,
#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#  See the License for the specific language governing permissions and
#  limitations under the License.


# 所属集群名字
brokerClusterName=DefaultCluster

# broker 名字,注意此处不同的配置文件填写的不一样,如果在 broker-a.properties 使用: broker-a,
# 在 broker-b.properties 使用: broker-b
brokerName=broker-a

# 0 表示 Master,> 0 表示 Slave
brokerId=0

# nameServer地址,分号分割
# namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876

# 启动IP,如果 docker 报 com.alibaba.rocketmq.remoting.exception.RemotingConnectException: connect to <192.168.0.120:10909> failed
# 解决方式1 加上一句 producer.setVipChannelEnabled(false);,解决方式2 brokerIP1 设置宿主机IP,不要使用docker 内部IP
brokerIP1=192.168.1.16

# 在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4

# 是否允许 Broker 自动创建 Topic,建议线下开启,线上关闭 !!!这里仔细看是 false,false,false
autoCreateTopicEnable=true

# 是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true

# Broker 对外服务的监听端口
listenPort=10911

# 删除文件时间点,默认凌晨4点
deleteWhen=04

# 文件保留时间,默认48小时
fileReservedTime=120

# commitLog 每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824

# ConsumeQueue 每个文件默认存 30W 条,根据业务情况调整
mapedFileSizeConsumeQueue=300000

# destroyMapedFileIntervalForcibly=120000
# redeleteHangedFileInterval=120000
# 检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
# 存储路径
# storePathRootDir=/home/ztztdata/rocketmq-all-4.1.0-incubating/store
# commitLog 存储路径
# storePathCommitLog=/home/ztztdata/rocketmq-all-4.1.0-incubating/store/commitlog
# 消费队列存储
# storePathConsumeQueue=/home/ztztdata/rocketmq-all-4.1.0-incubating/store/consumequeue
# 消息索引存储路径
# storePathIndex=/home/ztztdata/rocketmq-all-4.1.0-incubating/store/index
# checkpoint 文件存储路径
# storeCheckpoint=/home/ztztdata/rocketmq-all-4.1.0-incubating/store/checkpoint
# abort 文件存储路径
# abortFile=/home/ztztdata/rocketmq-all-4.1.0-incubating/store/abort
# 限制的消息大小
maxMessageSize=65536

# flushCommitLogLeastPages=4
# flushConsumeQueueLeastPages=2
# flushCommitLogThoroughInterval=10000
# flushConsumeQueueThoroughInterval=60000

# Broker 的角色
# - ASYNC_MASTER 异步复制Master
# - SYNC_MASTER 同步双写Master
# - SLAVE
brokerRole=ASYNC_MASTER

# 刷盘方式
# - ASYNC_FLUSH 异步刷盘
# - SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH

# 发消息线程池数量
# sendMessageThreadPoolNums=128
# 拉消息线程池数量
# pullMessageThreadPoolNums=128

配置文件中的内容我们只需要改动一点即可,即brokerIP1 这个属性,我们将其更改为我们本机的ip,可以利用ipconfig进行查看。

修改完以后我们直接在docker-compose.yml文件所在的位置输入命令docker-compose up即可启动。启动成功以后在浏览器中输入http://localhost:8080/即可看到管理页面,就表示我们搭建成功了。

搭建 RocketMQ服务器,这是我见过“最便捷”的方法!
使用Springboot快速上手
这里将会使用 springboot 快速上手使用 mq,将会使用rocketmq-spring-boot-starter模块。

pom 配置如下

<!--在pom.xml中添加依赖-->
<dependency>
    <groupid>org.apache.rocketmq</groupid>
    <artifactid>rocketmq-spring-boot-starter</artifactid>
    <version>2.0.3</version>
</dependency>

gradle配置如下

implementation ‘org.apache.rocketmq:rocketmq-spring-boot-starter:2.0.3’
消费服务发送方配置如下:

## application.properties
rocketmq.name-server=ip:9876
rocketmq.producer.group=my-group

消费服务发送方程序如下:

@SpringBootApplication
public class ProducerApplication implements CommandLineRunner {
    @Resource
    private RocketMQTemplate rocketMQTemplate;

    public static void main(String[] args){
        SpringApplication.run(ProducerApplication.class, args);
    }

    public void run(String... args) throws Exception {
        rocketMQTemplate.convertAndSend("test-topic-1", "Hello, World!");
        rocketMQTemplate.send("test-topic-1", MessageBuilder.withPayload("Hello, World! I'm from spring message").build());
    }

}

这里图省事的话可以将消费者和生产者写道同一个项目中。

消息消费方配置如下:

## application.properties
rocketmq.name-server=ip:9876

消息消费方运行程序如下:

@SpringBootApplication
public class ConsumerApplication{

    public static void main(String[] args){
        SpringApplication.run(ConsumerApplication.class, args);
    }

    @Slf4j
    @Service
    @RocketMQMessageListener(topic = "test-topic-1", consumerGroup = "my-consumer_test-topic-1")
    public static class MyConsumer1 implements RocketMQListener<string> {
        public void onMessage(String message) {
            log.info("received message: {}", message);
        }
    }
}

到现在为止我们就可以在本机上快乐的试验各种关于RocketMQ的相关东西了。

RocketMQ的Docker配置文件存放处

RocketMQ的Docker配置文件存放处

RocketMQ的Docker配置文件存放处

大家可以直接从上面拉取项目,启动RocketMQ只需要两步。

修改broker.conf中的brokerIP1 参数,修改为本机IP
进入docker-compose.yml文件所在路径,执行docker-compose up命令即可
如果大家不想自己搭建Springboot项目的话,可以从https://github.com/modouxiansheng/Doraemon上面直接拉取下来就行了。

作者:不学无数的程序员

链接:https://my.oschina.net/u/4030990/blog/3232512

**小编有整理最新python爬虫教程,免费领取方式是私信小编,回复:资料分享。**

rocketMQ服务 内附一个可执行文件 更改启动rocket.bat 加载目录即刻启动rocketMQ服务; 端口在rocket.bat中设置 立即下载

相关推荐

VASP吸附计算1:CO在Pt(111)面的吸附|Materials Studio建模

介绍用VASP计算CO-Pt体系电荷密度的流程。

weixin_50519490的博客 5943

RocketMQ服务快速搭建和体验消息收发

RocketMQ服务快速搭建和体验简单消息的发送和消费是否正常

1460

传感器融合的智能演进:ST-MC-Workbench中霍尔与编码器的协同控制策略

本文探讨了ST-MC-Workbench中霍尔传感器与编码器的协同控制策略,通过传感器融合技术提升电机控制精度。文章详细介绍了分层处理架构、霍尔安装角度优化及编码器Z脉冲容错机制,展示了在新能源汽车和工业应用中的实际效果,为高精度位置检测提供了解决方案。

weixin_29159441的博客 481

RocketMQ入门:基本概念、安装、本地部署与集群部署

RocketMQ是阿里巴巴开源的分布式消息中间件,支持高吞吐、高可用消息传递。核心角色包括生产者、消费者、Broker(消息服务器)和NameServer(命名服务)。消息通过Topic分类,Queue分区存储,保证局部有序。部署方式支持单节点和集群模式,后者通过主从架构确保高可用。集群部署需要配置多个Broker节点,设置不同的master/slave角色,并同步NameServer路由信息。RocketMQ提供mqadmin运维工具管理主题、集群等配置。

Muyu1uz的博客 1597

从‘全步’到‘微步’:一张图看懂步进电机细分控制,选对模式让你的项目更丝滑

本文深入解析步进电机细分控制技术,从全步到微步的演进过程,帮助工程师根据项目需求选择最优控制模式。通过对比不同细分等级的性能特点和应用场景,提供3D打印、实验室自动化等领域的黄金配置方案,实现更精准、平稳的电机控制效果。

weixin_29290259的博客 470

昇腾910安装驱动出错,降低Centos7.6的内核版本

Centos7.6 启动内核修改,解决昇腾910安装驱动错误的问题。

深蓝 3300

RocketMQ云服务器和本地基础安装搭建及可视化控制台安装使用

RocketMQ作为一款纯java、分布式、队列模型的开源消息中间件,支持事务消息、顺序消息、批量消息、定时消息、消息回溯等。主要功能是异步解耦和流量削峰。

一宿君 2108

Vue3 - Vite运行打包时Uncaught ReferenceError: process is not defined(解决vue3+vite报错process is not defined)

vue3,vite,vue3+vite报错,process,UncaughtReferenceError:processisnotdefined,浏览器控制台报错processisnotdefined解决方法,vue3如何解决报错,vite报错怎么办,前端打包UncaughtReferenceError:processisnotdefined,npmrunbuild打包报错,vite打包时出现错误,vue3打包运行找不到process,热更新会报错UncaughtRefer

🏆 前端领域优质创作者 7737

RocketMQ 安装教程(本地环境 & 服务器环境)

RocketMQ 是阿里巴巴开源的一款高性能、高可靠的分布式消息中间件,适用于大规模分布式系统。通过本文的详细步骤,你可以在本地或服务器上成功安装和运行 RocketMQ。如果在安装过程中遇到问题,可以参考。NameServer 是 RocketMQ 的路由注册中心,类似 ZooKeeper。Broker 是消息存储和转发的核心组件。或在评论区留言,我会尽力帮助你解决!确保已安装 JDK 8+,并配置。如果看到消息内容,说明安装成功。的安装步骤,并提供图文说明。,下载最新稳定版(如。与本地环境相同,通过。

2503_92310663的博客 1569

Marvell 88Q6113 如何制作一个完整的量产固件88Q6113_flash.bin并进行烧录

本章节介绍如何基于Marvell工具链,制作一个完整的量产固件88Q6113_flash.bin,集成用户自定义的配置文件 config.bin,用于88Q6113的Flash烧录。注:Marvell 88Q5072 与 Marvell 88Q6113 的配置流程是一样的。

老板来份猪脚拼叉烧的博客 2008

50、压电微泵与技术设备驱动的研究分析

本文研究了压电微泵在弹性微通道中的流体流动特性及技术设备驱动的振动行为。通过建立轴对称流固耦合模型,利用FreeFem++进行数值模拟,分析了不同数量压电致动器和频率对微泵流量的影响,发现多个致动器按特定时序压缩可产生净正向流量,并提出了稳态流量的近似解析公式。同时,针对技术设备驱动系统,探讨了周期性负载引起的强迫振动特性,明确了共振条件及影响因素,并比较了主动、被动和优化设计等振动控制策略。最后展望了实验验证、多物理场耦合与智能控制等未来研究方向,为相关设备的优化设计与高效运行提供了理论支持。

convnet3designer的博客 148

RocketMQ集群(2主2从)搭建

勿以浮沙筑高台 基础准备:准备2台170,171机子并且安装了rocketMQ. 1.更改hosts信息 vi /etc/hosts # nameserver 192.168.95.170 rocketmq-nameserver1 192.168.95.171 rocketmq-nameserver2 # broker 192.168.95.170 rocketmq-master1 192.168.95.170 rocketmq-slave2 192.168.95.171 rocketmq-master

qq_35059264的博客 585

畅游Diffusion数字人(0):专栏文章导航

畅游Diffusion数字人(0):专栏文章导航

沉迷单车的追风少年 1419

史上最便捷搭建RocketMQ服务器的方法

最近学习使用 rocketmq,需要搭建 rocketmq 服务端,本文主要记录 rocketmq 搭建过程以及这个过程踩到的一些坑。至于有多简单呢,在本机已有Docker环境的情况下只需要三步即可。 从github上面拉取项目(https://github.com/modouxiansheng/about-docker) 修改broker.conf中的brokerIP1参数,修改为本机IP 进...

tangyb828的博客 546

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

史上最便捷搭建 RocketMQ 服务器的方法

点击上方Java后端,选择设为星标优质文章,及时送达本文来源:http://8rr.co/CHkR最近学习使用 rocketmq,需要搭建 rocketmq 服务端,本文主要记录 r...

公众号:Java后端 751

OV9734 DATASHEET,完整规格书

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

骨灰级最便捷搭建RocketMQ服务器的方法

史上最便捷搭建RocketMQ服务器的方法 最近学习使用 rocketmq,需要搭建 rocketmq 服务端,本文主要记录 rocketmq 搭建过程以及这个过程踩到的一些坑。至于有多简单呢,在本机已有Docker环境的情况下只需要三步即可。 从github上面拉取项目 修改broker.conf中的brokerIP1参数,修改为本机IP 进入docker-compose.yml文件所在路径,执行docker-compose up命令即可 前言 首先我们是使用Doc.

正在起名中。。。。。 330

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

通俗易懂,如何最便捷 docker 安装 rocketmq 队列

文章保证,一路执行下去不会报错,报错你找我。如果觉得有用,希望屏幕前的大佬,点赞➕关注 如果想搭建一个本地玩的 rocketmq,可以继续向下看,绝对让你体会“傻瓜式”点点点安装 文章中的内容皆是作者 “踩屎”无数,总结出来的绝对精髓 能够来看 rocketmq 的安装,证明已经了解基本概念,也就不在这班门弄斧了 rocketmq 有两个非常重要的概念,nameserver 和 broker,文章也是围绕这两个点进行安装,提供 便捷版本 & 可靠版本 两种方式 文章大纲如下: 安装 nam..

Long-Tai 5339

rocketmq 组监听_通俗易懂,如何最便捷 docker 安装 rocketmq

点击蓝色“源码兴趣圈”关注我哟作者第【47】篇原创技术博文,一起共同成长如果想搭建一个本地玩的 rocketmq,可以继续向下看,绝对让你体会“傻瓜式”点点点安装文章中的内容皆是作者 “踩屎”无数,总结出来的绝对精髓能够来看 rocketmq 的安装,证明已经了解基本概念,也就不在这班门弄斧了rocketmq 有两个非常重要的概念,nameserver 和 broker,文章也是围绕这两...

weixin_39794347的博客 172

使用 Docker 安装 RocketMQ 使用 docker 安装 rocketmq

注意:在上述命令中,我们使用了–link参数将名字服务器容器链接到Broker容器。还要将名字服务器的地址设置为。使用Producer和Consumer进行测试,可以使用官方提供的示例代码测试RocketMQ是否正常工作。目录中,以便容器可以访问RocketMQ的数据和日志。目录中,以便容器可以访问RocketMQ的数据和日志。这将在后台启动Broker实例,并将其映射到主机的。,以便Broker容器可以正确访问名字服务器。这将在后台启动名字服务器,并将其映射到主机的。目录分别挂载到容器内的。

半只 2776

RocketMQ集群版Dashboard部署实战:从零搭建到可视化监控

本文详细介绍了RocketMQ集群版Dashboard的部署实战,从环境准备、核心配置优化到生产级脚本化启动,手把手指导从零搭建可视化监控平台。文章重点讲解了如何配置连接集群、开启安全认证,并提供了实用的运维脚本和可视化监控功能指南,帮助用户高效管理和监控RocketMQ集群状态。

qsc901234567的博客 1095
上一篇: 这样搭建Nginx+Tomcat集群,实现负载均衡及动静分离,太轻松!
下一篇: Spring+MyBatis源码+Tomcat架构解析等
pythonadiou
博客等级 码龄7年 19粉丝 71原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值