亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

docker安裝RocketMQ的實(shí)現(xiàn)(附填坑經(jīng)驗(yàn)connect to failed)

 更新時(shí)間:2024年06月27日 09:39:32   作者:郭咖啡  
本文主要介紹了docker安裝RocketMQ(附填坑經(jīng)驗(yàn)connect to failed)

本人安裝版本:最新版(rocketmq-4.4.0),以下均對(duì)應(yīng)4.4.0版本

一、docker部署RocketMQ

1、簡(jiǎn)易說(shuō)明

在RocketMQ中,有三個(gè)關(guān)鍵組件:Namesrv(Name Server)、Broker和Console-ng(管理控制臺(tái))。

  • Namesrv(Name Server):Namesrv是RocketMQ的命名服務(wù),負(fù)責(zé)管理整個(gè)RocketMQ集群的路由信息。每個(gè)RocketMQ集群中都至少需要一個(gè)Namesrv實(shí)例。它維護(hù)了Broker的網(wǎng)絡(luò)信息、Topic的路由規(guī)則以及Consumer的消費(fèi)進(jìn)度等元數(shù)據(jù),并提供給Producer和Consumer使用。

  • Broker:Broker是RocketMQ的消息存儲(chǔ)和處理節(jié)點(diǎn),負(fù)責(zé)存儲(chǔ)消息、處理消息的讀寫(xiě)請(qǐng)求和轉(zhuǎn)發(fā)消息等功能。在RocketMQ集群中,可以有多個(gè)Broker實(shí)例,各個(gè)Broker通過(guò)與Namesrv交互來(lái)維護(hù)消息的元數(shù)據(jù)和路由信息,以實(shí)現(xiàn)高可用、負(fù)載均衡的消息傳輸。

  • Console-ng(管理控制臺(tái)):Console-ng是RocketMQ官方提供的管理控制臺(tái),用于管理和監(jiān)控RocketMQ集群。它提供了圖形化界面,可以進(jìn)行Topic、Consumer等的配置管理、消息查詢與追蹤、監(jiān)控指標(biāo)展示等操作。Console-ng對(duì)于集群的監(jiān)控和運(yùn)維非常有用。

這三個(gè)組件共同構(gòu)成了RocketMQ的核心架構(gòu),并協(xié)同工作以實(shí)現(xiàn)高可用、高性能的消息傳輸和數(shù)據(jù)管理。您可以通過(guò)啟動(dòng)Namesrv、Broker來(lái)搭建一個(gè)RocketMQ集群,并使用Console-ng進(jìn)行集群的管理與監(jiān)控。

2、docker拉取RocketMQ鏡像\RocketMQ控制臺(tái)

拉取最新的RocketMQ,如果下載指定版本可以去docker官網(wǎng)查看
注:Namesrv、Broker均采用rocketmqinc/rocketmq同一個(gè)鏡像

# 最新(rocketmq)
docker pull rocketmqinc/rocketmq
# 指定版本號(hào)(rocketmq)
docker pull rocketmqinc/rocketmq:<版本號(hào)>

# 最新(RocketMQ控制臺(tái))
docker pull  pangliang/rocketmq-console-ng

3、獲取RocketMQ配置文件

可以啟動(dòng)RocketMQ,然后從docker容器中拷貝出配置文件,拷出配置文件后啟動(dòng)的容器就可以刪除了

docker run -d --name rmqnamesrv -p 9876:9876 rocketmqinc/rocketmq:latest sh mqnamesrv
# 進(jìn)入容器(用于進(jìn)入容器找到broker.conf 的位置)
docker exec -it 容器ID /bin/bash
# 從容器中下載文件到虛擬機(jī)
docker cp 容器ID:/opt/rocketmq-4.4.0/conf/broker.conf 虛擬機(jī)路徑

4、RocketMQ配置文件描述

ongPollingEnable=true
offsetCheckInSlave=false
# nameServer地址,分號(hào)分割
namesrvAddr=172.16.234.150:9876
fetchNamesrvAddrByAddressServer=false
#是否允許 Broker 自動(dòng)創(chuàng)建訂閱組,建議線下開(kāi)啟,線上關(guān)閉
autoCreateSubscriptionGroup=true
#是否允許 Broker 自動(dòng)創(chuàng)建Topic,建議線下開(kāi)啟,線上關(guān)閉
autoCreateTopicEnable=true
sendThreadPoolQueueCapacity=100000
clusterTopicEnable=true
filterServerNums=1
pullMessageThreadPoolNums=20
# broker名字,名字可重復(fù),為了管理,每個(gè)master起一個(gè)名字,他的slave同他,eg:Amaster叫broker-a,他的slave也叫broker-a
brokerName=knBroker
#rocketmqHome=/usr/local/alibaba-rocketmq/
sendMessageThreadPoolNums=24
# 0 表示 Master,>0 表示 Slave
brokerId=0
brokerIP1=172.16.234.150
brokerTopicEnable=true
brokerPermission=6
shortPollingTimeMills=1000
clientManageThreadPoolNums=16
adminBrokerThreadPoolNums=16
flushConsumerOffsetInterval=5000
flushConsumerOffsetHistoryInterval=60000
# 在發(fā)送消息時(shí),自動(dòng)創(chuàng)建服務(wù)器不存在的topic,默認(rèn)創(chuàng)建的隊(duì)列數(shù)
defaultTopicQueueNums=8
rejectTransactionMessage=false
notifyConsumerIdsChangedEnable=true
pullThreadPoolQueueCapacity=100000
# # 所屬集群名字
brokerClusterName=DefaultCluster
putMsgIndexHightWater=600000
maxTransferBytesOnMessageInDisk=65536
#檢測(cè)物理文件磁盤(pán)空間
diskMaxUsedSpaceRatio=75
checkCRCOnRecover=true
haSlaveFallbehindMax=268435
deleteConsumeQueueFilesInterval=100
cleanResourceInterval=10000
maxMsgsNumBatch=64
flushConsumeQueueLeastPages=2
syncFlushTimeout=5000
#刪除文件時(shí)間點(diǎn),默認(rèn)凌晨 4點(diǎn)
deleteWhen=04
#Broker 的角色
brokerRole=ASYNC_MASTER
destroyMapedFileIntervalForcibly=120000
#commitLog每個(gè)文件的大小默認(rèn)1G
mapedFileSizeCommitLog=1073741824
haSendHeartbeatInterval=5000
#刷盤(pán)方式
flushDiskType=ASYNC_FLUSH
cleanFileForciblyEnable=true
haHousekeepingInterval=20000
redeleteHangedFileInterval=120000
#限制的消息大小
maxMessageSize=524288
flushCommitLogTimed=false
haMasterAddress=
maxTransferCountOnMessageInDisk=4
flushIntervalCommitLog=1000
#文件保留時(shí)間,默認(rèn) 48 小時(shí)
fileReservedTime=72
flushCommitLogThoroughInterval=10000
maxHashSlotNum=5000
maxIndexNum=20000
messageIndexEnable=true
#存儲(chǔ)路徑
storePathRootDir=/root/store
#commitLog 存儲(chǔ)路徑
storePathCommitLog=/root/store/commitlog
#消費(fèi)隊(duì)列存儲(chǔ)路徑存儲(chǔ)路徑
storePathConsumeQueue=/root/store/consumequeue
#消息索引存儲(chǔ)路徑
storePathIndex=/root/store/index
haListenPort=10912
flushDelayOffsetInterval=10000
haTransferBatchSize=32768
deleteCommitLogFilesInterval=100
maxTransferBytesOnMessageInMemory=262144
accessMessageInMemoryMaxRatio=40
flushConsumeQueueThoroughInterval=60000
flushIntervalConsumeQueue=1000
maxTransferCountOnMessageInMemory=32
messageIndexSafe=false
#ConsumeQueue每個(gè)文件默認(rèn)存30W條,根據(jù)業(yè)務(wù)情況調(diào)整
mapedFileSizeConsumeQueue=6000000
messageDelayLevel=1s 5s 10s 30s 1m 2m 3m 4m 5m 6m 7m 8m 9m 10m 20m 30m 1h 2h
flushCommitLogLeastPages=4
serverChannelMaxIdleTimeSeconds=120
#Broker 對(duì)外服務(wù)的監(jiān)聽(tīng)端口
listenPort=10911
serverCallbackExecutorThreads=0
serverAsyncSemaphoreValue=64
serverSocketSndBufSize=131072
serverSelectorThreads=3
serverPooledByteBufAllocatorEnable=false
serverWorkerThreads=8
serverSocketRcvBufSize=131072
serverOnewaySemaphoreValue=256
clientWorkerThreads=4
connectTimeoutMillis=3000
clientSocketRcvBufSize=131072
clientOnewaySemaphoreValue=2048
clientChannelMaxIdleTimeSeconds=120
clientPooledByteBufAllocatorEnable=false
clientAsyncSemaphoreValue=2048
channelNotActiveInterval=60000
clientCallbackExecutorThreads=2
clientSocketSndBufSize=131072

5、docker啟動(dòng)RocketMQ

以下將配置文件、日志、存儲(chǔ)均掛載在本地

# 1、namesrv
docker run -d -p 9876:9876 \
-v /mydata/rocketmq/namesrv/logs:/root/logs \
-v /mydata/rocketmq/namesrv/store:/root/store \
-v /mydata/rocketmq/conf/broker.conf:/opt/rocketmq-4.4.0/conf/broker.conf \
--name rmqnamesrv \
rocketmqinc/rocketmq:latest sh mqnamesrv


# 2、broker
docker run -d  -p 10911:10911 -p 10909:10909 \
-v /mydata/rocketmq/broker/logs:/root/logs \
-v /mydata/rocketmq/broker/store:/root/store \
-v /mydata/rocketmq/conf/broker.conf:/opt/rocketmq-4.4.0/conf/broker.conf \
--name rmqbroker \
--add-host namesrv:172.16.234.150 \
-e "NAMESRV_ADDR=namesrv:9876" \
rocketmqinc/rocketmq:latest \
sh mqbroker -n namesrv:9876 \
-c /opt/rocketmq-4.4.0/conf/broker.conf autoCreateTopicEnable=true

# 3、Console-ng
docker run --name rocketmq-console \
-e "JAVA_OPTS=-Drocketmq.namesrv.addr=172.16.234.150:9876 \
-Dcom.rocketmq.sendMessageWithVIPChannel=false" \
-p 8080:8080 -t styletang/rocketmq-console-ng

6、進(jìn)入RocketMQ控制臺(tái)

地址(IP+rocketmq-console端口):http://172.16.234.150:8080/#/

在這里插入圖片描述

二、填坑經(jīng)驗(yàn)

錯(cuò)誤一: connect to <172.17.0.3:10909> failed

1、在啟動(dòng)Java項(xiàng)目后,發(fā)送MQ消息是報(bào)以下錯(cuò)誤
2、RocketMQ控制臺(tái),集群地址顯示為docker分配的IP

進(jìn)入RocketMQ控制臺(tái),控制臺(tái)顯示的集群地址為172.17.0.3:10909,并非172.16.234.150:10909,172.17.0.3實(shí)際為docker內(nèi)部分配的ID,需要此IP修改為虛擬機(jī)的IP

為了解決以上問(wèn)題使用docker創(chuàng)建了一個(gè)網(wǎng)格【docker network create rocketmq-net + docker run -d --network rocketmq-net …】,但是沒(méi)有解決此問(wèn)題,實(shí)際導(dǎo)致此問(wèn)題的是RocketMQ配置文件,請(qǐng)核查RocketMQ配置文件,或者采用上方提供的配置文件

com.himyidea.framework.mq.MQRuntimeException: EC = 900101: MSG = 900101 | msg=MQ Client Failure
	at com.himyidea.framework.mq.producer.impl.GeneralMQProducer.doSend(GeneralMQProducer.java:130)
	at com.himyidea.framework.mq.producer.impl.GeneralMQProducer.sendMessage(GeneralMQProducer.java:105)
	at java.lang.Thread.run(Thread.java:748)
Caused by: com.alibaba.rocketmq.client.exception.MQClientException: Send [3] times, still failed, cost [9073]ms, Topic: report_data_topic, BrokersSent: [broker-a, broker-a, broker-a]
See http://docs.aliyun.com/cn#/pub/ons/faq/exceptions&send_msg_failed for further details.
	at com.alibaba.rocketmq.client.impl.producer.DefaultMQProducerImpl.sendDefaultImpl(DefaultMQProducerImpl.java:522)
	at com.alibaba.rocketmq.client.impl.producer.DefaultMQProducerImpl.send(DefaultMQProducerImpl.java:1030)
	at com.alibaba.rocketmq.client.impl.producer.DefaultMQProducerImpl.send(DefaultMQProducerImpl.java:989)
	at com.alibaba.rocketmq.client.producer.DefaultMQProducer.send(DefaultMQProducer.java:90)
	at com.himyidea.framework.mq.producer.impl.GeneralMQProducer.doSend(GeneralMQProducer.java:126)
	... 85 more
Caused by: com.alibaba.rocketmq.remoting.exception.RemotingConnectException: connect to <172.17.0.3:10909> failed
	at com.alibaba.rocketmq.remoting.netty.NettyRemotingClient.invokeSync(NettyRemotingClient.java:360)
	at com.alibaba.rocketmq.client.impl.MQClientAPIImpl.sendMessageSync(MQClientAPIImpl.java:267)
	at com.alibaba.rocketmq.client.impl.MQClientAPIImpl.sendMessage(MQClientAPIImpl.java:251)
	at com.alibaba.rocketmq.client.impl.MQClientAPIImpl.sendMessage(MQClientAPIImpl.java:214)
	at com.alibaba.rocketmq.client.impl.producer.DefaultMQProducerImpl.sendKernelImpl(DefaultMQProducerImpl.java:671)
	at com.alibaba.rocketmq.client.impl.producer.DefaultMQProducerImpl.sendDefaultImpl(DefaultMQProducerImpl.java:440)

錯(cuò)誤二: maybe your broker machine memory too small

內(nèi)存不足,以為是docker啟動(dòng)命令中未傳內(nèi)存信息,實(shí)際是虛擬機(jī)可用內(nèi)存空間不足

Caused by: com.alibaba.rocketmq.client.exception.MQBrokerException: CODE: 14  DESC: service not available now, maybe disk full, CL:  0.99 CQ: -1.00 INDEX: -1.00, maybe your broker machine memory too small.

到此這篇關(guān)于docker安裝RocketMQ的實(shí)現(xiàn)(附填坑經(jīng)驗(yàn)connect to failed)的文章就介紹到這了,更多相關(guān)docker安裝RocketMQ內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • docker配置靜態(tài)ip的實(shí)現(xiàn)示例

    docker配置靜態(tài)ip的實(shí)現(xiàn)示例

    如果不配置會(huì)docker會(huì)自動(dòng)分配ip地址給容器,但是每次重啟后ip地址會(huì)改變,本文主要介紹了docker配置靜態(tài)ip的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-12-12
  • Docker容器不識(shí)別宋體等字體的解決方案

    Docker容器不識(shí)別宋體等字體的解決方案

    這篇文章主要介紹了Docker容器不識(shí)別宋體等字體的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-03-03
  • Docker?環(huán)境?Nacos2?MySQL8的詳細(xì)操作

    Docker?環(huán)境?Nacos2?MySQL8的詳細(xì)操作

    本文介紹?docker?環(huán)境下安裝并單機(jī)運(yùn)行?Nacos2,使用?docker?環(huán)境下的?MySQL?8?存儲(chǔ)數(shù)據(jù)?,對(duì)Docker?環(huán)境?Nacos2?MySQL8相關(guān)知識(shí)感興趣的朋友跟隨小編一起看看吧
    2022-09-09
  • Docker 集成KingBase的詳細(xì)過(guò)程

    Docker 集成KingBase的詳細(xì)過(guò)程

    這篇文章主要介紹了Docker 集成KingBase的詳細(xì)過(guò)程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2025-04-04
  • Docker 容器日志查看和清理的實(shí)現(xiàn)步驟

    Docker 容器日志查看和清理的實(shí)現(xiàn)步驟

    在處理Docker容器的過(guò)程中,經(jīng)常需要查看容器的日志輸出來(lái)排查問(wèn)題或者進(jìn)行系統(tǒng)監(jiān)控,本文主要介紹了Docker容器日志查看和清理的實(shí)現(xiàn)步驟,感興趣的可以了解一下
    2023-11-11
  • Docker Stack 部署web集群的方法步驟

    Docker Stack 部署web集群的方法步驟

    這篇文章主要介紹了Docker Stack 部署web集群的方法步驟,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-02-02
  • Kubernetes(k8s)基礎(chǔ)介紹

    Kubernetes(k8s)基礎(chǔ)介紹

    今天小編就為大家分享一篇關(guān)于Kubernetes(k8s)基礎(chǔ)介紹,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-10-10
  • Docker容器導(dǎo)致磁盤(pán)空間不足無(wú)法訪問(wèn)的解決方法

    Docker容器導(dǎo)致磁盤(pán)空間不足無(wú)法訪問(wèn)的解決方法

    本文主要介紹了Docker容器導(dǎo)致磁盤(pán)空間不足無(wú)法訪問(wèn)的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • Docker容器簡(jiǎn)單部署nginx過(guò)程解析

    Docker容器簡(jiǎn)單部署nginx過(guò)程解析

    這篇文章主要介紹了Docker容器簡(jiǎn)單部署nginx過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • 使用Docker 安裝 Jenkins的方法

    使用Docker 安裝 Jenkins的方法

    這篇文章主要介紹了使用Docker 安裝 Jenkins的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01

最新評(píng)論