(十七)docker安装RocketMQ

news2024/12/23 10:25:14

 一、简介

操作系统:Linux  CentOS 7.3 64位

docker版本:19.03.8

RocketMQ版本:4.3.2

二、实践

1、拉取镜像

docker pull rocketmqinc/rocketmq:4.3.2

 

2、运行容器

我们先搭建namesrv(Name Server)服务。

它充当路由消息的提供者,生产者或消费者可以通过namesrv查找各主题对应的Broker IP列表。

多个namesrv实例组成集群,但相互独立,没有信息交换。

支持Broker的动态注册与发现。

创建挂载目录。

mkdir -p  /usr/local/docker/rocketmq/data/namesrv/logs   /usr/local/docker/rocketmq/data/namesrv/store

运行容器。

docker run --name rmqnamesrv \
--restart=always \
-p 9876:9876 \
-v /usr/local/docker/rocketmq/data/namesrv/logs:/root/logs \
-v /usr/local/docker/rocketmq/data/namesrv/store:/root/store \
-e "MAX_POSSIBLE_HEAP=100000000" \
-d rocketmqinc/rocketmq:4.3.2 \
sh mqnamesrv

-e "MAX_POSSIBLE_HEAP=100000000"     ==》    指定namesrv服务的最大堆内存

接着我们搭建broker服务。

Broker Server在RocketMQ系统中负责接收从生产者发送来的消息并存储,同时为消费者的拉取请求做准备,也存储消息相关的元数据,包括消费者组、消费进度偏移、主题和队列信息等。

broker启动后需要完成一次将自己注册至namesrv的操作,随后每隔30s时间定时向namesrv上报Topic路由信息。
 

我们同样先创建挂载目录。

mkdir -p  /usr/local/docker/rocketmq/data/broker/logs   /usr/local/docker/rocketmq/data/broker/store /usr/local/docker/rocketmq/conf

接着创建配置文件。

vi /usr/local/docker/rocketmq/conf/broker.conf

配置文件内容为:

# 所属集群名称,如果节点较多可以配置多个
brokerClusterName = DefaultCluster
#broker名称,master和slave使用相同的名称,表明他们的主从关系
brokerName = broker-a
#0表示Master,大于0表示不同的slave
brokerId = 0
#表示几点做消息删除动作,默认是凌晨4点
deleteWhen = 04
#在磁盘上保留消息的时长,单位是小时
fileReservedTime = 48
#有三个值:SYNC_MASTER,ASYNC_MASTER,SLAVE;同步和异步表示Master和Slave之间同步数据的机制;
brokerRole = SYNC_MASTER
#刷盘策略,取值为:ASYNC_FLUSH,SYNC_FLUSH表示同步刷盘和异步刷盘;SYNC_FLUSH消息写入磁盘后才返回成功状态,ASYNC_FLUSH不需要;
flushDiskType = SYNC_FLUSH
# 设置broker节点所在服务器的ip地址
brokerIP1 = 192.168.121.132
# 磁盘使用达到95%之后,生产者再写入消息会报错 CODE: 14 DESC: service not available now, maybe disk full
diskMaxUsedSpaceRatio=95

最后运行容器。

docker run --name rmqbroker \
--restart=always \
--link rmqnamesrv:namesrv \
-p 10911:10911 \
-p 10909:10909 \
-v  /usr/local/docker/rocketmq/data/broker/logs:/root/logs \
-v  /usr/local/docker/rocketmq/data/broker/store:/root/store \
-v /usr/local/docker/rocketmq/conf/broker.conf:/opt/rocketmq-4.3.2/conf/broker.conf \
-e "NAMESRV_ADDR=192.168.121.132:9876" \
-e "MAX_POSSIBLE_HEAP=200000000" \
-d rocketmqinc/rocketmq:4.3.2 \
sh mqbroker -c /opt/rocketmq-4.3.2/conf/broker.conf

–link rmqnamesrv:namesrv    ==》    和rmqnamesrv容器通信

-e "NAMESRV_ADDR=192.168.121.132:9876"   ==》     指定namesrv的地址

-e "MAX_POSSIBLE_HEAP=200000000"    ==》      指定broker服务的最大堆内存

3.搭建控制台rockermq-console服务

拉取镜像。

docker pull pangliang/rocketmq-console-ng

运行容器。

docker run --name rmqadmin \
--restart=always \
-e "JAVA_OPTS=-Drocketmq.namesrv.addr=192.168.121.132:9876 \
-Dcom.rocketmq.sendMessageWithVIPChannel=false" \
-p 9999:8080 \
-d pangliang/rocketmq-console-ng

-e "JAVA_OPTS=-Drocketmq.namesrv.addr=192.168.121.132:9876 ==》指定namesrv地址

-Dcom.rocketmq.sendMessageWithVIPChannel=false” ==》不使用vip通道发送消息

访问。

http://192.168.121.132:9999/

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

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

相关文章

vue2提取vue-router的title单独存放,使用i18n实现

成品效果 首先引入i18n(vue-i18n官网文档) 依赖包 npm install vue-i18n8然后单独在src目录下新建一个文件夹lang,存放相对应的变量名称,我这里只做显示中文所以其他引入我都注释了,具体目录如下: src\lang/zh.js部分代码 export…

记一次:request请求总结

前言:和前端联调的时候发现前端人员请求的方式不对,固做此总结问题:request请求方式有多少种?答:Java后端查看有8种,spring-web中的java枚举图如下而使用PostMan查看有15种,如下图GET&#xff0…

前端页面jquery规范写法

使用最新版本的 jQuery 最新版本的 jQuery 会改进性能和增加新功能,若不是为了兼容旧浏览器,建议使用最新版本的 jQuery。以下是三条常见的 jQuery 语句,版本越新,性能越好: $(.elem) $(.elem, context) context.find(.elem) 结果 1.6.2 版执行次数远超两个老版本。 jQ…

eclipse中整理左侧项目栏文件

💡在使用eclipse的过程中,随着项目越来越多,会使得项目管理变得困难,介绍一下eclipse中对于项目分类存放(Java Working Set)的解决方案。如果按照默认的方式查看项目列表是这种效果:⭕当创建使用小项目过多…

Prometheus+Grafana监控

1、简介1.1 Prometheus官网地址:https://prometheus.io/Prometheus是一个开源的监控系统,起源于SoundCloud。它由以下几个核心组件构成:数据爬虫: 根据配置的时间定期的通过HTTP抓去metrics数据。time-series 数据库: …

Ubantu 安装到VMware详解

想要在VMware中运行Linux系统,那么就需要Linux系统安装到VMware虚拟机上面。在这里,以把ubantu16.04安装到VMware虚拟机中为教程进行图文讲解,共分为三个步骤,分别是创建新的虚拟机、安装到ubantu系统、安装VMware Tools。 1.1 创…

响应式网络建站公司网站源码+完整教程

分享一个开源的自适应的三网合一的网络建站公司网站的完整源码,当做互联网公司官网特别合适,带完整搭建教程。此款网站源码适用于小程序制作公司、网络公司、网站建设公司等等,这些都可以用这个网站模板,网站整体非常高端大气&…

vue+vite项目部署会遇到的几个问题

今天来打包硅谷外卖项目,通过解决项目中遇到的问题来加深对vite打包的理解。 运行yarn build 报错,报[WARNING] Expected identifier but found “*” [css-syntax-error] 既然zoom:1是没有变化,直接把它去掉即可。 然后继续yarn build 不出所料还是报…

有序表的应用:设计一个增、删、查数据的时间复杂度均为O(logN)的结构

1、题目描述 设计一个结构包含如下三个方法: void add(int index, int num); //把num加入到index位置 int get(int index); //取出index位置的值(是自然序的index位置,非排序后) void remove(int index); //把index位置上的值删…

【Linux】vim拒绝服务安全漏洞修复

根据国家信息安全漏洞共享平台于2023年2月19日发布的安全漏洞通知,Linux系统自带的vim编辑器存在两个高危安全漏洞(CNVD-2023-09166、CNVD-2023-09647),攻击者可以利用该漏洞发起拒绝服务攻击,并可能运行(恶…

【编程入门】应用市场(Vue版)

背景 前面已输出多个系列: 《十余种编程语言做个计算器》 《十余种编程语言写2048小游戏》 《17种编程语言10种排序算法》 《十余种编程语言写博客系统》 《十余种编程语言写云笔记》 《N种编程语言做个记事本》 目标 为编程初学者打造入门学习项目,使…

双因素方差分析

一、案例与数据 一家大型商业银行在多地区设有分行,其业务主要是进行基础设施建设,国家重点项目建设,固定资产投资等项目的贷款。近年来,该银行的贷款额平稳增长,但不良贷款额也有较大比例的提高,这给银行…

数据库

一、数据库系统管理 ACID,是指数据库管理系统(DBMS)在写入或更新资料的过程中,为保证事务(transaction)是正确可靠的,所必须具备的四个特性:原子性(atomicity&#xff0…

【微信小程序】一文带你吃透开发中的常用组件

写在前面 小程序中的组件也是由宿主环境提供的,开发者可以基于组件快速搭建出漂亮的页面结构。 官方把小程序的组件分为了9大类,分别是: 1.视图容器 2.基础内容 3.表单组件 4.导航组件 5.媒体组件 6.地图组件 7.画布组件 …

QMap 判断是否value是否已经存在,结合Sleep函数测试

网上查了资料,基本说的都是通过.value判断是否已经之前的key值,但是尝试.了一下发现有.key的函数,对比着来就感觉这个函数是用来判断是否已经存在value值,于是开始百度也几乎没有找到相关资料,只好自己看官方文档&…

Fortinet推出新一代自研安全芯片,跨所有网络边缘加速网络与安全融合

专注网络与安全融合的全球网络安全领导者 Fortinet(NASDAQ:FTNT),近日宣布推出新一代自研安全芯片 FortiSP5,作为 Fortinet ASIC 技术的最新突破,有力推动了分布式网络边缘安全的重大飞跃。FortiSP5 源自 F…

【LeetCode】剑指 Offer 10- I. 斐波那契数列 p74 -- Java Version

题目链接: 1. 题目介绍() 写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下: F(0) 0, F(1) 1F(N) F(N - 1) F…

修复 K8s SSL/TLS 漏洞(CVE-2016-2183)指南

作者:老 Z,中电信数智科技有限公司山东分公司运维架构师,云原生爱好者,目前专注于云原生运维,云原生领域技术栈涉及 Kubernetes、KubeSphere、DevOps、OpenStack、Ansible 等。 前言 测试服务器配置 主机名IPCPU内存系…

模电中的负反馈

文章目录一、反馈是什么?二、负反馈对于放大性能的影响1.负反馈的作用三、正反馈总结– 一、反馈是什么? 反馈的定义:凡是将放大电路输出端信号(电压或电流)的一部分或者全部引回到输入端,与输入信号叠加…

【C语言】宏

🚀write in front🚀 📜所属专栏:> c语言学习 🛰️博客主页:睿睿的博客主页 🛰️代码仓库:🎉VS2022_C语言仓库 🎡您的点赞、关注、收藏、评论,是…