首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设置RocketMQ集群:从设备不可见且不复制

设置RocketMQ集群:从设备不可见且不复制
EN

Stack Overflow用户
提问于 2017-10-03 16:54:17
回答 1查看 459关注 0票数 1

我正在尝试设置一个RocketMQ集群,只有一个名称服务器,一个主服务器和两个从服务器。但是,我遇到了一些问题。

我正在运行的版本是从github/rocketmq-all-4.1.0-incubating.zip下载的。

代理是使用mqbroker -c broker.conf运行的,其中主和从的broker.conf是不同的。对于大师,我有:

代码语言:javascript
复制
listenPort=10911
brokerName=mybroker
brokerClusterName=mybrokercluster
brokerId=0
deleteWhen=04
fileReservedTime=48
brokerRole=SYNC_MASTER
flushDiskType=ASYNC_FLUSH

对于奴隶:

代码语言:javascript
复制
listenPort=10911
brokerName=mybroker
brokerClusterName=mybrokercluster
brokerId=1
deleteWhen=04
fileReservedTime=48
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH

第二个从站有brokerId=2。Broker启动得很好,日志的某些部分是从属的:

代码语言:javascript
复制
2017-10-02 20:31:35 INFO main - brokerRole=ASYNC_MASTER
2017-10-02 20:31:35 INFO main - flushDiskType=ASYNC_FLUSH
(...)
2017-10-02 20:31:35 INFO main - Replace, key: brokerId, value: 0 -> 1
2017-10-02 20:31:35 INFO main - Replace, key: brokerRole, value:
ASYNC_MASTER -> SLAVE
(...)
2017-10-02 20:31:37 INFO main - Set user specified name server address:
172.22.1.38:9876
2017-10-02 20:31:37 INFO ShutdownHook - Shutdown hook was invoked, 1
2017-10-02 20:31:37 INFO ShutdownHook - shutdown thread
PullRequestHoldService interrupt false
2017-10-02 20:31:37 INFO ShutdownHook - join thread PullRequestHoldService
eclipse time(ms) 0 90000
2017-10-02 20:31:37 WARN ShutdownHook - unregisterBroker Exception,
172.22.1.38:9876
org.apache.rocketmq.remoting.exception.RemotingConnectException: connect to
<172.22.1.38:9876> failed
at
org.apache.rocketmq.remoting.netty.NettyRemotingClient.invokeSync(NettyRemotingClient.java:359)
~[rocketmq-remoting-4.1.0-incubating.jar:4.1.0-incubating]
at
org.apache.rocketmq.broker.out.BrokerOuterAPI.unregisterBroker(BrokerOuterAPI.java:221)
~[rocketmq-broker-4.1.0-incubating.jar:4.1.0-incubating]
at
org.apache.rocketmq.broker.out.BrokerOuterAPI.unregisterBrokerAll(BrokerOuterAPI.java:198)
~[rocketmq-broker-4.1.0-incubating.jar:4.1.0-incubating]
at
org.apache.rocketmq.broker.BrokerController.unregisterBrokerAll(BrokerController.java:623)
[rocketmq-broker-4.1.0-incubating.jar:4.1.0-incubating]
at
org.apache.rocketmq.broker.BrokerController.shutdown(BrokerController.java:589)
[rocketmq-broker-4.1.0-incubating.jar:4.1.0-incubating]
at org.apache.rocketmq.broker.BrokerStartup$1.run(BrokerStartup.java:218)
[rocketmq-broker-4.1.0-incubating.jar:4.1.0-incubating]
at java.lang.Thread.run(Thread.java:748) [na:1.8.0_141]
2017-10-02 20:31:37 INFO ShutdownHook - Shutdown hook over, consuming total
time(ms): 25
2017-10-02 20:31:45 INFO BrokerControllerScheduledThread1 - dispatch behind
commit log 0 bytes
2017-10-02 20:31:45 INFO BrokerControllerScheduledThread1 - Slave fall
behind master: 0 bytes
2017-10-02 20:31:45 INFO BrokerControllerScheduledThread1 - register broker
to name server 172.22.1.38:9876 OK
2017-10-02 20:32:15 INFO BrokerControllerScheduledThread1 - register broker
to name server 172.22.1.38:9876 OK

由于我怀疑代理正在尝试连接到最初未运行的名称服务器,因此它会重试并最终成功吗?

但是,稍后尝试clusterList时,我只看到列出了一个代理,它恰好是一个从代理(172.22.1.17),并且在配置中具有brokerId=2 (尽管在这里它被列为0):

代码语言:javascript
复制
$ ./mqadmin clusterList -n 172.22.1.38:9876
#Cluster Name     #Broker Name            #BID  #Addr
 #Version                #InTPS(LOAD)       #OutTPS(LOAD) #PCWait(ms) #Hour
#SPACE
mybrokercluster     mybroker                  0     172.22.1.17:10911
 V4_1_0_SNAPSHOT          0.00(0,0ms)         0.00(0,0ms)          0
418597.80 -1.0000

此外,当向主服务器发送消息时,我会得到SLAVE_NOT_AVAILABLE

为什么会这样呢?代理配置是否正确?如果是这样,为什么clusterList会错误地报告它们?

EN

回答 1

Stack Overflow用户

发布于 2018-03-09 15:54:42

您应该更改从端口,因为您知道10911已经被其他进程(主节点)使用,从节点应该使用不同的tcp端口(例如10921/10931等)。

小贴士:我的集群部署在一台机器上,所以我更改了tcp端口并成功启动,如果你的主备部署在不同的机器上并且启动失败,你应该访问rocketmq错误日志以获取更多信息。

注意:一台主机有多台从机,brokerId应该不一样

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46540719

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档