阿里云轻量服务器--Docker--RocketMq安装

news2024/11/28 20:40:51

前言:本文介绍使用docker 部署-RocketMq;

1 RocketMq 介绍:

Apache RocketMQ是一款开源的分布式消息中间件,具有高吞吐量、高可用性、高伸缩性和灵活的可靠消息传输机制等特点。RocketMQ支持多种消息模式,包括异步传输、同步传输和单向传输,并支持多种订阅模式,包括广播模式和集群模式。RocketMQ还提供了丰富的API和管理工具,可以轻松地进行消息的发送、订阅和管理。 RocketMQ的主要特点包括:

  • 高吞吐量:RocketMQ具有高吞吐量的特点,每秒可以处理百万级别的消息。

  • 高可用性:RocketMQ支持主从模式,确保在某个节点故障的情况下仍然能够保证消息的传输。

  • 高可靠性:RocketMQ提供了令人信任的可靠消息传输机制,通过多种方式确保消息不会丢失和重复。

  • 同步和异步传输:RocketMQ支持同步和异步传输两种方式,根据业务需要选择合适的方式。

  • 多种订阅模式:RocketMQ支持广播模式和集群模式,可以根据具体需求选择合适的订阅模式。

-多样化的API和管理工具:RocketMQ提供了多样化的API和管理工具,方便用户进行消息发送、订阅和管理。

RocketMQ可以广泛应用于分布式系统、大数据处理、在线事物处理等场景,是一款值得信赖的开源消息中间件。

2 RocketMq docker-compose 安装:

2.1 安装docker-compose(如果已经按照跳过该步骤):

#通过docker-compose version命令进行查看
docker-compose version
# 如果没有该命令则 走下面步骤进行安装docker-compose
# 1.安装扩展源
sudo yum -y install epel-release

# 2.安装python-pip模块
sudo yum -y install python-pip

# 3.查看docker-compose版本
docker-compose version

# 提示未找到命令
# 4.通过以命令进行安装
cd /usr/local/bin/
wget https://github.com/docker/compose/releases/download/1.14.0-rc2/docker-compose-Linux-x86_64
rename docker-compose-Linux-x86_64 docker-compose docker-compose-Linux-x86_64
chmod +x /usr/local/bin/docker-compose
# 5.再通过docker-compose version命令进行查看

2.2 创建文件目录:

mkdir rocketmq

# 在rocketmq目录下创建该文件或目录 结构如下
[root@localhost rocketmq]# tree
.
├── conf
│   └── broker.conf
├── docker-compose.yml
├── logs
└── store

3 directories, 2 files

其中conf,logs, store 为文件夹使用mkdir 命令创建; broker.conf,docker-compose.yml为文件使用touch 命令创建;

2.3 docker-compose.yml:

version: '3.2'
services:
  rmqserver:
    image: foxiswho/rocketmq:server
    container_name: rmqserver
    ports:
      - 9876:9876
    volumes:
      - ./logs:/opt/logs
      - ./store:/opt/store
    networks:
        rmq:
          aliases:
            - rmqserver
 
  rmqbroker:
    image: foxiswho/rocketmq:broker
    container_name: rmqbroker
    ports:
      - 10909:10909
      - 10911:10911
    volumes:
      - ./logs:/opt/logs
      - ./store:/opt/store
      - ./conf/broker.conf:/usr/local/docker/rocketmq/broker.conf
    environment:
        NAMESRV_ADDR: "rmqserver:9876"
        JAVA_OPTS: " -Duser.home=/opt"
        JAVA_OPT_EXT: "-server -Xms128m -Xmx128m -Xmn128m"
    command: mqbroker -c /usr/local/docker/rocketmq/broker.conf
    depends_on:
      - rmqserver
    networks:
      rmq:
        aliases:
          - rmqbroker
 
  rmqconsole:
    image: styletang/rocketmq-console-ng
    container_name: rmqconsole
    ports:
      - 8089:8080
    environment:
        JAVA_OPTS: "-Drocketmq.namesrv.addr=rmqserver:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false"
    depends_on:
      - rmqserver
    networks:
      rmq:
        aliases:
          - rmqconsole
 
networks:
  rmq:
    driver: bridge

命令解释:
version:指定本 yml 依从的 compose 哪个版本制定的;
services:要安装的服务;
rmqserver:rmqserver服务
image:docker 镜像
container_name:容器名称
ports:容器的映射端口号
volumes:文件映射
networks:配置容器连接的网络;
aliases:同一网络上的其他容器可以使用服务名称或此别名来连接到对应容器的服务;
environment:添加环境变量;
command:覆盖容器启动的默认命令;
depends_on:设置依赖关系,先启动rmqserver 在启动rmqbroker;
driver: bridge 设置网络模式;

docker-compose 命令参考:https://www.runoob.com/docker/docker-compose.html

2.4 broker.conf内容:

censed 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.0.136
 
# 在发送消息时,自动创建服务器不存在的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

2.5 启动容器:

docker-compose up -d

2.6 访问控制台:
添加8099 防护墙端口:
在这里插入图片描述

访问 http://ip:8099/
在这里插入图片描述

3 参考

3.1 Docker中安装RocketMQ;
3.2 RocketMQ在Docker下的部署;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/572718.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【App自动化测试】(十八)多设备管理平台——openSTF

目录 1. openSTF2. openSTF的安装部署2.1 MacOS2.2 Windows 3. STF操作3.1 基础操作——远程调试虚拟设备3.2 高阶操作——远程调试真机 1. openSTF OpenSTF:是一个手机设备管理平台,可以对手机进行远程管理、调试、远程手机桌面监控等操作。 特点&…

有关深度学习打标签DIY的五种方式

有关深度学习打标签DIY的五种方式:Labelme、LabelImg、EISeg、Make Sence和CVat等 五种制作Label的方式:1.CVAT(Open Data Annotation Platform)2.EISeg(Efficient Interactive Segmentation)自动标注3.Mak…

中国人民大学与加拿大女王金融硕士国际班——全方位培养金融人才,你心动了吗

中国人民大学与加拿大女王大学中外合作办学的金融硕士项目有国际班(使用英文授课,无工作经验要求)和高管班(使用中文授课,一般需在中国金融行业拥有至少7年以上的工作经验)两个班次,属于滚动式录…

机器学习模型——分类模型

文章目录 K近邻(KNN)KNN示例KNN距离计算KNN算法代码实现1. 引入依赖:2. 数据加载和预处理:3. 核心算法实现:4. 测试: 逻辑斯谛回归线性回归问题分类边界曲线——逻辑斯谛回归Sigmoid函数(压缩函…

多模块更新,助力模型训练及应用|ModelWhale 版本更新

绿暗红稀,蝉鸣草长。本次更新中,ModelWhale 带来了一系列的功能优化,期待为你提供更好的使用体验。 本次更新中,ModelWhale 主要进行了以下功能迭代: • 优化 模型与人工组合式数据标注(团队版✓ &#xf…

基于stm32F407的hal库,移植FreeRTOS的具体步骤和遇到的问题(看正点原子的视频)

1. 资料准备 因为板子是stm32F407的第二版的,所以开始下的资料是旧版本的,但是旧版本的FreeRTOS工程没有hal库的,都是标准库的,这里是下载stm32F407最新版的资料,进行移植。 资料可以在正点原子官网下载,…

格式化输出Printf总结说明

一,简介 在C语言运行调试过程中,需要使用printf进行打印log信息,本文主要介绍常用的printf打印格式信息,方便提高调试的效率。 二,Printf转换说明 printf函数的转换说明由字符%和跟随其后的最多5个不同的选项构成&a…

PHP快速实战18-PHP使用PHPMailer来发送邮件

文章目录 前言安裝与实现步骤1:下载PHPMailer步骤2:包含PHPMailer文件步骤3:设置SMTP服务器和端口号步骤4:设置发件人和收件人步骤5:设置邮件主题和内容步骤6:添加附件(可选)步骤7&a…

深度学习-第T8周——猫狗识别

深度学习-第T8周——猫狗识别 深度学习-第T8周——猫狗识别一、前言二、我的环境三、前期工作1、导入数据集2、查看图片数目 四、数据预处理1、 加载数据1.1、设置图片格式1.2、划分训练集1.3、划分验证集1.4、查看标签1.5、再次检查数据1.6、配置数据集 2、数据可视化 五、搭建…

GMesh网格选项介绍

GMesh网格介绍 2D mesh algorithm MeshAdapt:这是一种自适应网格算法,可在需要更大的精度或在某些区域需要更密集的网格时自动添加额外的网格。该算法的优点包括较高的收敛性和灵活性,它可以让用户在需要的地方添加更多的网格,但…

隐形黑客潜入美国和关岛关键基础设施而未被发现

微软和“五眼联盟”国家周三表示,一个隐秘的组织成功地在美国和关岛的关键基础设施组织中建立了一个持久的立足点,而没有被发现。 这家科技巨头的威胁情报团队正在以伏特台风(Volt Typhoon)的名义跟踪这些活动,包括入侵后的凭证访问和网络系…

如何实现torna文档生成管理工具api接口从内网到外网的访问?

企业接口文档解决方案,目标是让文档管理变得更加方便、快捷。Torna采用团队协作的方式管理和维护项目API文档,将不同形式的文档纳入进来,形成一个统一的维护方式。下面简单给大家介绍一下torna接口文档管理工具都有哪些功能特性: …

【Java EE 初阶】TCP协议的安全效率机制

目录 1.应用层协议 2.传输层协议 3.UDP协议格式 4.TCP协议格式 5.TCP的安全效率机制 1.确认应答机制 2.超时重传机制 但是,主机A未收到B发来的确认应答,也可能是因为ACK丢失了; 3.连接管理机制 面试题:会不会有可能变成三…

【A卡,Windows】stable diffusion webui下载安装避坑指南

观前提醒 本文内容都是本人亲身经历的,一个一个安装下载测试所感,当然如果你更想用傻瓜式集成包的,那还是跳过这篇文章吧。 当然我不推荐这篇文章的操作,因为我用了差不多1h才有一副图,有N卡,就用N卡&…

jdk14——独立打包工具jpackage

jpackage是jdk14正式加入的一个用于独立打包的工具; 官网简介翻译: jpackage工具将以Java应用程序和Java运行时映像作为输入,并生成一个包含所有必要依赖项的Java应用程序映像。它可以生成特定于平台格式的本机软件包,例如Windo…

【UE】制作可拖动的UI

效果 步骤 1. 新建一个控件蓝图并打开 这里我在画布面板中加了一个垂直框,垂直框内包含一个按钮和一个图像控件 我设置图像控件占垂直框的2/3,按钮占1/3 添加按钮按压事件、松开事件 在控件蓝图的事件图表中添加如下节点,其中“Close”、“…

通达信三重滤网交易系统指标公式(含强力指数指标)

三重滤网交易系统由《以交易为生》的作者亚历山大埃尔德(Alexander Elder)发明的,1986年首次公开,后续又不断改进,增加或者改变了一些细节,但是使用多重时间周期和技术指标进行分析决策的原理没变。 一、强力指数指标 《以交易为…

Taro 项目怎么获取元素的高度和视口高度

最近做小程序,用的Taro,需要设置空状态居中显示,因为空状态出现的地方不一样,所以需要动态设置,那么就需要获取元素的高度来计算 文档翻了一遍也没有找到,原生js获取高度得到的是null,百度了下…

点云拟合平面原理和实现(Halcon)

最近学习了一下拟合平面的原理,看了这篇文章最小二乘拟合平面(C版) - 知乎 讲到了以下几种方法,我这里在halcon中对其一一实现。 一、算法原理 1,直接求解法 2.使用拉格朗日乘子法 3 SVD分解法 二、Halcon实现 1.各方法对比 在halcon中…

Python - 面向对象编程 - 类变量、实例变量/类属性、实例属性

什么是对象和类 什么是 Python 类、类对象、实例对象 类变量、实例变量/类属性、实例属性 前言 只是叫法不一样 实例属性 实例变量 类属性 类变量 个人认为叫属性更恰当 类属性和实例属性区别 类属性,所有实例对象共享该属性实例属性,属于某一…