Giter Site home page Giter Site logo

Comments (10)

CyJaySong avatar CyJaySong commented on August 17, 2024 4

@francisoliverlee

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.

francisoliverlee avatar francisoliverlee commented on August 17, 2024

can you share you docker-compose.yaml ?

from rocketmq-docker.

huangzulin avatar huangzulin commented on August 17, 2024

set broker dir permission @CyJaySong

this issues

from rocketmq-docker.

CyJaySong avatar CyJaySong commented on August 17, 2024

set broker dir permission @CyJaySong

this issues

broker 正常启动了的只是,客户端无法链接

from rocketmq-docker.

peng-huang-ch avatar peng-huang-ch commented on August 17, 2024

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.

zhyblack avatar zhyblack commented on August 17, 2024

我使用的官方例子也出现了这个问题,解决了
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.

huiliaoning avatar huiliaoning commented on August 17, 2024

Reference

遇到了同样的问题

from rocketmq-docker.

mi1chstrasse avatar mi1chstrasse commented on August 17, 2024

连接的服务应该是 8081 端口

from rocketmq-docker.

leizhiyuan avatar leizhiyuan commented on August 17, 2024

8081 是grpc 的端口,需要放开。
private Integer grpcServerPort = 8081;

from rocketmq-docker.

huangsunting avatar huangsunting commented on August 17, 2024

官方文档比较坑,甚至没有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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.