Comments (10)
version: "3"
services:
#Service for nameserver
namesrv:
container_name: RocketMQ-namesrv
image: apache/rocketmq:5.1.3
command: sh mqnamesrv
restart: always
ports:
- 9876:9876
volumes:
- ./namesrv/logs:/home/rocketmq/logs
#Service for broker
broker:
container_name: RocketMQ-broker
links:
- namesrv
image: apache/rocketmq:5.1.3
command: sh mqbroker --enable-proxy -c /opt/rocketmq/conf/broker.conf
restart: always
ports:
- 8080:8080
- 10909:10909
- 10911:10911
- 10912:10912
environment:
- NAMESRV_ADDR=namesrv:9876
volumes:
- ./broker/logs:/home/rocketmq/logs
- ./broker/store:/home/rocketmq/store
- ./broker/conf:/opt/rocketmq/conf
from rocketmq-docker.
can you share you docker-compose.yaml ?
from rocketmq-docker.
set broker dir permission @CyJaySong
from rocketmq-docker.
set broker dir permission @CyJaySong
broker 正常启动了的只是,客户端无法链接
from rocketmq-docker.
docker-compose.yml
version: "3"
services:
#Service for nameserver
rmqnamesrv:
image: apache/rocketmq:5.1.3
container_name: rmqnamesrv
ports:
- 9876:9876
environment:
JAVA_OPT_EXT: "-server -Xms512M -Xmx512M -Xmn128m"
volumes:
- ./data/namesrv/logs:/home/rocketmq/logs
command: sh mqnamesrv
restart: unless-stopped
rmqbroker:
image: apache/rocketmq:5.1.3
container_name: rmqbroker
depends_on:
- rmqnamesrv
ports:
- 10909:10909
- 10911:10911
- 10912:10912
environment:
NAMESRV_ADDR: "rmqnamesrv:9876"
JAVA_OPTS: " -Duser.home=/opt"
JAVA_OPT_EXT: "-server -Xms512M -Xmx512M -Xmn128m"
volumes:
- ./data/broker/logs:/home/rocketmq/logs
- ./data/broker/store:/home/rocketmq/store
- ./conf/broker.conf:/opt/conf/broker.conf
command: sh mqbroker -c /opt/conf/broker.conf
rmqproxy:
image: apache/rocketmq:5.1.3
container_name: rmqproxy
depends_on:
- rmqnamesrv
ports:
- 8081:8081
environment:
NAMESRV_ADDR: "rmqnamesrv:9876"
JAVA_OPTS: " -Duser.home=/opt"
JAVA_OPT_EXT: "-server -Xms512M -Xmx512M -Xmn128m"
volumes:
- ./data/proxy/logs:/home/rocketmq/logs
- ./data/proxy/store:/home/rocketmq/store
- ./conf/proxy.conf:/opt/conf/proxy.conf
command: sh mqbroker -c /opt/conf/proxy.conf --enable-proxy
dashbord:
image: apacherocketmq/rocketmq-dashboard:1.0.0
ports:
- 18080:8080
environment:
JAVA_OPTS: "-Drocketmq.namesrv.addr=rmqnamesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false -Duser.timezone='Asia/Shanghai'"
depends_on:
- rmqnamesrv
broker.conf & proxy.conf
# 所属集群名字
brokerClusterName=rmqnamesrv
# 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
namesrvAddr=rmqnamesrv: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.31.149
# 在发送消息时,自动创建服务器不存在的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=99
# 存储路径
# 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=12
messageDelayLevel=1s 5s 10s 30s 1m 2m 3m 4m 5m 6m 7m 8m 9m 10m 20m 30m 1h 2h
启动日志:
docker compose logs --tail=1000 rmqnamesrv
rmqnamesrv | OpenJDK 64-Bit Server VM warning: Using the DefNew young collector with the CMS collector is deprecated and will likely be removed in a future release
rmqnamesrv | OpenJDK 64-Bit Server VM warning: UseCMSCompactAtFullCollection is deprecated and will likely be removed in a future release.
rmqnamesrv | The Name Server boot success. serializeType=JSON, address 0.0.0.0:9876
docker compose logs --tail=1000 rmqproxy
rmqproxy | OpenJDK 64-Bit Server VM warning: Using the DefNew young collector with the CMS collector is deprecated and will likely be removed in a future release
rmqproxy | OpenJDK 64-Bit Server VM warning: UseCMSCompactAtFullCollection is deprecated and will likely be removed in a future release.
rmqproxy | Thu Sep 14 12:24:26 UTC 2023 rocketmq-proxy startup successfully
使用 dashbord
可以正常的发送消息,但是使用 producer 会报错
current message type not match with topic accept message types.
似乎 RocketMQ 5.0 引入了 TopicMessageType 的概念,但是调用了 updateTopic 好像还是有问题
sh mqadmin updateTopic -n 127.0.0.1:9876 -t txs -c rmqnamesrv -a +message.type=NORMAL
希望有人能帮忙解决下,😄
from rocketmq-docker.
我使用的官方例子也出现了这个问题,解决了
1、play-docker.sh + sh mqbroker --enable-proxy
2、-p 8081:8081 说是 --enable-proxy 会自动启用 8081端口
3、我使用的是阿里云 所以安全组需要放行 8081
然后就搞定了
Consume message successfully, messageId={}7F00000100065910E4409199EB2F0000
程序生产者&后台发送消息都没问题
from rocketmq-docker.
Reference
遇到了同样的问题
from rocketmq-docker.
连接的服务应该是 8081 端口
from rocketmq-docker.
8081 是grpc 的端口,需要放开。
private Integer grpcServerPort = 8081;
from rocketmq-docker.
官方文档比较坑,甚至没有docker的部署示例。。。
rocketmq5.x引入了proxy,需要开放一下端口,不然访问不了。
1.先简单安装一下,8081是grpc访问端口,8080是remoting访问(如果需要)
docker run -d
--name rmqbroker
--net rmq_net
-p 10911:10911 -p 10909:10909 -p 8081:8081
--privileged=true
apache/rocketmq:5.2.0 sh mqbroker -n rmqnamesrv:9876 --enable-proxy
2.拷贝文件后,删除容器
docker cp rmqbroker:/home/rocketmq/rocketmq-5.2.0/conf /你的目录/docker/rocketmq/broker/conf
3.重新安装,endpoints=localhost:8081
docker run -d
--name rmqbroker
--net rmq_net
-p 10911:10911 -p 10909:10909 -p 8081:8081 -p 8080:8080
--privileged=true
-v 你的目录/docker/rocketmq/broker/logs:/home/rocketmq/logs
-v 你的目录/docker/rocketmq/broker/store:/home/rocketmq/store
-v 你的目录/docker/rocketmq/broker/conf:/home/rocketmq/rocketmq-5.2.0/conf
-e "MAX_HEAP_SIZE=1024M"
apache/rocketmq:5.2.0 sh mqbroker -n rmqnamesrv:9876 --enable-proxy -c /home/rocketmq/rocketmq-5.2.0/conf/broker.conf
from rocketmq-docker.
Related Issues (20)
- provide a docker-compose file HOT 4
- Support installing rocketmq-constoller using helm
- rocketmq-k8s-helm部署的rocketmq如何在k8s外部使用 HOT 2
- Add an entry point for RocketMQ docker image (CentOS version)
- java.lang.UnsatisfiedLinkError: /tmp/jna--518197384/jna1671885036898384730.tmp: Error loading shared library ld-linux-aarch64.so.1: No such file or directory (needed by /tmp/jna--518197384/jna1671885036898384730.tmp) HOT 3
- which: command not found HOT 1
- [Bug] RocketMQ's docker container, version 5.1.3 starts with no permission error
- Unable to start Broker using Docker Compose HOT 4
- ERROR 404: Not Found. HOT 2
- ERROR: failed to solve: eclipse-temurin:8-jdk-alpine: no match for platform in manifest HOT 7
- error Caused by: java.util.concurrent.CancellationException: Task was cancelled. HOT 4
- no matching manifest for linux/arm64/v8 in the manifest list entries HOT 1
- Run two or more rockermq container in a host set the max heap size. HOT 1
- Can not set custom MAX_HEAP_SIZE and HEAP_NEWSIZE HOT 2
- rocketmq 5.1.3部署问题 HOT 1
- Is there an alpine version of the dashboard in build-image-dashboard.sh?
- 作为一个**人开源的项目,就不能留个中文的文档吗?
- need support arm64 HOT 3
- "dashboard-build" in quick start cant work well
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rocketmq-docker.