Maven/Docker快速搭建RocketMQ
官方文档 [https://rocketmq.apache.org/docs/quick-start/]
①:Bin_二进制安装版
1. 环境准备
系统环境:Centos7 x64
JDK:jdk-8u171-linux-x64
Maven:3.2.x以上的版本均可
4g+ free disk for Broker server
2. 下载RocketMQ
https://mirrors.tuna.tsinghua.edu.cn/apache/rocketmq/4.4.0/rocketmq-all-4.4.0-bin-release.zip
3. 解压
> unzip rocketmq-all-4.4.0-bin-release.zip
> cd rocketmq-all-4.4.0/
4. 根据内存修改配置(默认需要4G+4G 共8G)
cd bin
vim runserver.sh
# 找到如下配置
JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g -Xmn4g"
# 修改成你可以接受的范围
JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx521m -Xmn256m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
vim runbroker.sh
# 找到如下配置
JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
# 修改成你可以接受的范围
JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256m"
4.1. 配置环境变量
vim /etc/profile
# 将如下配置加到最后一行
export NAMESRV_ADDR=127.0.0.1:9876
#立即生效环境配置
source /etc/profile
5. 启动 Name Server
> nohup sh bin/mqnamesrv &
#查看日志
> tail -f ~/logs/rocketmqlogs/namesrv.log
The Name Server boot success...
6. 启动 Broker
> nohup sh bin/mqbroker -n 127.0.0.1:9876 &
#查看日志
> tail -f ~/logs/rocketmqlogs/broker.log
The broker[%s, 127.0.0.1:10911] boot success...
7.测试收发消息 Send & Receive Messages
注意:此处tools.sh默认(-Xms1g -Xmx1g),内存不够需要再次按runserver.sh/runbroker.sh方式修改
# 修改成你可以接受的范围
vi tools.sh
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m"
# export NAMESRV_ADDR=localhost:9876
> sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
SendResult [sendStatus=SEND_OK, msgId= ...
> sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
ConsumeMessageThread_%d Receive New Messages: [MessageExt...
8. 关闭RocketMQ服务 Shutdown 1.broker --> 2.namesrv
> 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
②:Docker版
docker search rocketmq
docker pull foxiswho/rocketmq:server-4.5.1
docker pull foxiswho/rocketmq:broker-4.5.1
下面的就是分步启动nameserver和broker。
1.启动NameServer
docker run -d -p 9876:9876 --name rmqserver foxiswho/rocketmq:server-4.5.1
2.启动broker:
docker run -d -p 10911:10911 -p 10909:10909
--name rmqbroker --link rmqserver:namesrv
-e "NAMESRV_ADDR=namesrv:9876" -e "JAVA_OPTS=-Duser.home=/opt"
-e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m"
foxiswho/rocketmq:broker-4.5.1
Broker容器中默认的配置文件的路径为:`/etc/rocketmq/broker.conf`
可以通过追加-v参数指定本机的配置文件:`-v /conf/broker.conf:/etc/rocketmq/broker.conf`
#查看验证启动成功
docker ps|grep rocketmq
#测试收发
vi tools.sh
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m"
进入容器内部执行shell
发(生产者): `sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer`
收(消费者): `sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer`
发送成功则显示:SendResult [sendStatus=SEND_OK, msgId= ...
消费成功则显示:ConsumeMessageThread_%d Receive New Messages: [MessageExt...
③:rocketmq-console 可视化监控服务配置
官方文档
[https://github.com/apache/rocketmq-externals/tree/master/rocketmq-console]
docker镜像版
mvn clean package -Dmaven.test.skip=true docker:build
或
docker pull styletang/rocketmq-console-ng
#运行
docker run -e "JAVA_OPTS=-Drocketmq.namesrv.addr=127.0.0.1:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" -p 8080:8080 -t styletang/rocketmq-console-ng
maven编译普通版
cd /usr/local/rocketmq-externals
git clone https://github.com/apache/rocketmq-externals
#修改配置文件
vi /usr/local/rocketmq/rocketmq-externals/rocketmq-console/src/main/resources/application.properties
# 修改如下相应配置
server.port=8080 //服务端口号
rocketmq.config.namesrvAddr=127.0.0.1:9876 //配置服务地址
rocketmq.config.dataPath=/tmp/rocketmq-console/data //mq数据路径,可以自己修改
#使用maven打包
cd /usr/local/rocketmq/rocketmq-externals/rocketmq-console
mvn clean package -Dmaven.test.skip=true
或
mvn spring-boot:run
#后台运行
nohup java -jar -Xms256m -Xmx256m -Xmn125m rocketmq-console-ng-1.0.1.jar --server.port=8080 --rocketmq.config.namesrvAddr=127.0.0.1:9876 >rocketmq-console.log 2>&1 &
Maven/Docker快速搭建RocketMQ的更多相关文章
- 【Rocketmq】通过 docker 快速搭建 rocketmq 环境
1. 安装 Namesrv 拉取镜像 docker pull rocketmqinc/rocketmq:4.4.0` 启动容器 docker run -d -p 9876:9876 -v {RmHom ...
- spring boot / cloud (十八) 使用docker快速搭建本地环境
spring boot / cloud (十八) 使用docker快速搭建本地环境 在平时的开发中工作中,环境的搭建其实一直都是一个很麻烦的事情 特别是现在,系统越来越复杂,所需要连接的一些中间件也越 ...
- docker快速搭建几个常用的第三方服务
本次和大家分享的内容是使用docker快速搭建工作中常用的第三方的服务,对于有一些互联网背景的公司来说,以下几个服务都是很需要的:redis,rabbit,elasticsearch: 本篇涉及内容深 ...
- 使用Docker快速搭建ELK环境
今天由于Win系统的笔记本没带回家,其次Docker在非Linux系统下都需要安装额外的软件去镜像才行 所以感觉没有差别,先直接用Mac搭建一遍呢, 本篇部分命令和配置内容为摘抄 Mac下使用Dock ...
- 一文教您如何通过 Docker 快速搭建各种测试环境(Mysql, Redis, Elasticsearch, MongoDB) | 建议收藏
欢迎关注个人微信公众号: 小哈学Java, 文末分享阿里 P8 高级架构师吐血总结的 <Java 核心知识整理&面试.pdf>资源链接!! 个人网站: https://www.ex ...
- Docker快速搭建Zookeeper和kafka集群
使用Docker快速搭建Zookeeper和kafka集群 镜像选择 Zookeeper和Kafka集群分别运行在不同的容器中zookeeper官方镜像,版本3.4kafka采用wurstmeiste ...
- 使用Docker快速搭建Zookeeper和kafka集群
使用Docker快速搭建Zookeeper和kafka集群 镜像选择 Zookeeper和Kafka集群分别运行在不同的容器中zookeeper官方镜像,版本3.4kafka采用wurstmeiste ...
- 五分钟用Docker快速搭建Go开发环境
挺早以前在我写过一篇用 `Docker`搭建LNMP开发环境的文章:[用Docker搭建Laravel开发环境](http://mp.weixin.qq.com/s?__biz=MzUzNTY5MzU ...
- Docker-教你如何通过 Docker 快速搭建各种测试环境
今天给大家分享的主题是,如何通过 Docker 快速搭建各种测试环境,本文列举的,也是作者在工作中经常用到的,其中包括 MySQL.Redis.Elasticsearch.MongoDB 安装步骤,通 ...
随机推荐
- django的url分发封装
h2, body>h3, body>h4, body>h1{ padding: 10px; background-color: #4cae4c; text-align: center ...
- linux netlink通信机制简介
一.什么是Netlink通信机制 Netlink套接字是用以实现用户进程与内核进程通信的一种特殊的进程间通信(IPC) ,也是网络应用程序与内核通信的最常用的接口. Netlink 是一种特殊的 s ...
- WampServer配置可局域网访问站点
一 WampServer3.1.7版本 二 需求:项目开发阶段,服务器还未购买,前端需要调用接口进行测试,于是想到了在本地搭设一个站点,可以局域网内访问 三 先为这个项目单独在本地设置一个端口,比如我 ...
- e课表项目第二次冲刺周期第九天
昨天完成了什么? 昨天,我查找了相关的资料,将数据库根据我们的课程信息进行了重新的设计,并将数据能够连上数据库,即在添加课程的界面,可以将添加的课程的信息,存储到数据库中,并且存储到课程表中,并注明是 ...
- C#通过对象属性名修改值
摘自:csdn 给一个对象属性赋值可以通过PropertyInfo.SetValue()方式进行赋值,但要注意值的类型要与属性保持一致. 创建对象实例的两种方法: 1. var obj = As ...
- 渗透测试-基于白名单执行payload--Forfiles
0x01 Forfiles简介: Forfiles为Windows默认安装的文件操作搜索工具之一,可根据日期,后缀名,修改日期为条件.常与批处理配合使用. 微软官方文档:https://docs.mi ...
- windows离线安装sublime插件:ctags
网络上一堆安装ctags教程,可都是在线安装. 花了点时间摸索出了离线安装教程. 1. 准备好sublime 和 package control sublime我用的版本是text 2. text 3 ...
- LSTM神经网络走读
0设计概述 RNN梯度爆炸和消失比较严重,RNN隐层只有一个状态h记录短期记忆,增加一个长期记忆状态c似乎就可以解决问题.
- 深入了解一下HTTP缓存机制
HTTP 缓存机制作为 web 性能优化的重要手段,是Web 开发知识体系库中的一个基础环节,但是对于很多学习者来说,仅仅只是知道浏览器会对请求的静态文件进行缓存,但是为什么被缓存,缓存是怎样生效的, ...
- [Noip1997] 棋盘问题(2)
题目描述 在N×NN \times NN×N的棋盘上(1≤N≤10)(1≤N≤10)(1≤N≤10),填入1,2,…,N21,2,…,N^21,2,…,N2共N2N^2N2个数,使得任意两个相邻的数之 ...