You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@rocketmq.apache.org by chuenfai <ch...@163.com> on 2018/06/06 01:27:24 UTC
Re: 消费方日志
有朋友可以帮忙解下疑惑嘛~~
-----------------------------
Hi,
非常感谢两位朋友的回复。
第一个问题已经了解了,谢谢。
第二个问题也已经解决了,不过排查过程中有三个疑问,需要明白的朋友解答下
1)因为我本地环境是多网卡服务器,一开始没有配置IP2和haMasterAddr,发现报SLAVE_NOT_AVAILABLE错误,看源码发现注册broker会定时拉取新的haServerAddress去更新haMasterAddress, 而haServerAddress是由IP2+haListenPort得到的,我的疑问是brokerIP2和haMasterAddress分成两个字段,但是用途都是一样的是设计上有什么考虑嘛,另外,通过对从节点显式配置brokerIP2地址(值等于master节点的brokerIP1),发现依然报SLAVE_NOT_AVAILABLE错误,brokerIP2地址没有用?这是第一个比较疑惑的地方。
2)另外就是defaultMessageStore的ha地址为什么不和slaveSynchronize的地址保持一致呢?这是第二个较困惑的地方。
3)通过主从节点设置haMasterAddress,问题解决了,不过排查时发现haService是使用InetSocketAddress任意获取了一个本地地址,这里多网卡情况下是否会出现获取的本地地址和brokerIP1不一致导致slave依然找不到master的情况?这是第三个比较疑惑的地方。
在 2018年5月23日,11:41,Zhanhui Li <li...@gmail.com> 写道:
1. RocketMQ为了优化IO写操作, 有预分配文件.
2. 你怎么判断同步数据又问题的? 可以看下主/备机store.log, 如果有问题, 日志会很清楚的提示.
在 2018年5月22日,下午6:06,chuenfai <ch...@163.com> 写道:
Hi ALL,
问两个比较奇怪的问题,我本地搭建了一个主从集群,
1 Slave启动时(初始时Master和Slave的数据目录都是空的,且没有向集群发过任何消息),会在commitLog创建两个文件,而且显示文件特别大,不清楚这个是怎么来的。
<PastedGraphic-2.png>
2 测试时发现Slave无法从Master同步到commitlog消息,但是消费记录等配置可以同步到
我的配置环境是:Rocketmq-4.2, Java1.8, Master的角色是ASYNC_MASTER
不知道有没有朋友遇到过相似的问题~
Re: 消费方日志
Posted by 亓杨 <qi...@qianbaocard.com>.
Hi,我说下自己的理解
1).brokerIP2和haMasterAddress分别是两个不同的用处,broker会定时拉取新的haServerAddress去更新haMasterAddress。这里是正确的,但是broker拉取的haServerAddress是master
broker的haServerAddress.通过这里将master的haServerAddress动态同步到本地的haMasterAddress。brokerIP2配置的本地的HAService
IP. haMasterAddress则表示master的HAService
address。所以说下面你这个配置应该是错误的
->`另外,通过对从节点显式配置brokerIP2地址(值等于master节点的brokerIP1)`。
2).defaultMessageStore和slaveSynchronize在做不能同的工作。一个是在同步commitLog,一个是同步Broker的一些信息,例如TopicConfig之类。是监听的不同的端口。
3).内部调用的是anyLocalAddress(typically 0.0.0.0 or ::0)
嗯~如果有理解错误的地方还请指出。
在 2018/6/6 9:27, chuenfai 写道:
>
> 有朋友可以帮忙解下疑惑嘛~~
> -----------------------------
>
> Hi,
>
> 非常感谢两位朋友的回复。
>
> 第一个问题已经了解了,谢谢。
>
> 第二个问题也已经解决了,不过排查过程中有三个疑问,需要明白的朋友解答下
>
> 1)因为我本地环境是多网卡服务器,一开始没有配置IP2和haMasterAddr,发现报SLAVE_NOT_AVAILABLE错误,看源码发现注册broker会定时拉取新的haServerAddress去更新haMasterAddress,
> 而haServerAddress是由IP2+haListenPort得到的,我的疑问是brokerIP2和haMasterAddress分成两个字段,但是用途都是一样的是设计上有什么考虑嘛,另外,通过对从节点显式配置brokerIP2地址(值等于master节点的brokerIP1),发现依然报SLAVE_NOT_AVAILABLE错误,brokerIP2地址没有用?这是第一个比较疑惑的地方。
>
>
>
> 2)另外就是defaultMessageStore的ha地址为什么不和slaveSynchronize的地址保持一致呢?这是第二个较困惑的地方。
>
> 3)通过主从节点设置haMasterAddress,问题解决了,不过排查时发现haService是使用InetSocketAddress任意获取了一个本地地址,这里多网卡情况下是否会出现获取的本地地址和brokerIP1不一致导致slave依然找不到master的情况?这是第三个比较疑惑的地方。
>
>
>> 在 2018年5月23日,11:41,Zhanhui Li <lizhanhui@gmail.com
>> <ma...@gmail.com>> 写道:
>>
>> 1. RocketMQ为了优化IO写操作, 有预分配文件.
>>
>> 2. 你怎么判断同步数据又问题的? 可以看下主/备机store.log, 如果有问题,
>> 日志会很清楚的提示.
>>
>>> 在 2018年5月22日,下午6:06,chuenfai <chyang_10@163.com
>>> <ma...@163.com>> 写道:
>>>
>>> Hi ALL,
>>>
>>> 问两个比较奇怪的问题,我本地搭建了一个主从集群,
>>>
>>> 1
>>> Slave启动时(初始时Master和Slave的数据目录都是空的,且没有向集群发过任何消息),会在commitLog创建两个文件,而且显示文件特别大,不清楚这个是怎么来的。
>>> <PastedGraphic-2.png>
>>>
>>> 2
>>> 测试时发现Slave无法从Master同步到commitlog消息,但是消费记录等配置可以同步到
>>> 我的配置环境是:Rocketmq-4.2, Java1.8, Master的角色是ASYNC_MASTER
>>>
>>> 不知道有没有朋友遇到过相似的问题~
>>
>
Re: 消费方日志
Posted by chuenfai <ch...@163.com>.
非常感谢回复,如醍醐灌顶!
> 在 2018年6月6日,16:57,亓杨 <qi...@qianbaocard.com> 写道:
>
> Hi,我说下自己的理解
>
> 1).brokerIP2和haMasterAddress分别是两个不同的用处,broker会定时拉取新的haServerAddress去更新haMasterAddress。这里是正确的,但是broker拉取的haServerAddress是master broker的haServerAddress.通过这里将master的haServerAddress动态同步到本地的haMasterAddress。brokerIP2配置的本地的HAService IP. haMasterAddress则表示master的HAService address。所以说下面你这个配置应该是错误的 -> `另外,通过对从节点显式配置brokerIP2地址(值等于master节点的brokerIP1)`。
>
> 2).defaultMessageStore和slaveSynchronize在做不能同的工作。一个是在同步commitLog,一个是同步Broker的一些信息,例如TopicConfig之类。是监听的不同的端口。
>
> 3).内部调用的是anyLocalAddress(typically 0.0.0.0 or ::0)
>
> 嗯~如果有理解错误的地方还请指出。
>
>
> 在 2018/6/6 9:27, chuenfai 写道:
>>
>> 有朋友可以帮忙解下疑惑嘛~~
>> -----------------------------
>>
>> Hi,
>>
>> 非常感谢两位朋友的回复。
>>
>> 第一个问题已经了解了,谢谢。
>>
>> 第二个问题也已经解决了,不过排查过程中有三个疑问,需要明白的朋友解答下
>>
>> 1)因为我本地环境是多网卡服务器,一开始没有配置IP2和haMasterAddr,发现报SLAVE_NOT_AVAILABLE错误,看源码发现注册broker会定时拉取新的haServerAddress去更新haMasterAddress, 而haServerAddress是由IP2+haListenPort得到的,我的疑问是brokerIP2和haMasterAddress分成两个字段,但是用途都是一样的是设计上有什么考虑嘛,另外,通过对从节点显式配置brokerIP2地址(值等于master节点的brokerIP1),发现依然报SLAVE_NOT_AVAILABLE错误,brokerIP2地址没有用?这是第一个比较疑惑的地方。
>> <PastedGraphic-5.png>
>>
>> <PastedGraphic-3.png>
>>
>> 2)另外就是defaultMessageStore的ha地址为什么不和slaveSynchronize的地址保持一致呢?这是第二个较困惑的地方。
>> <PastedGraphic-6.png>
>>
>> 3)通过主从节点设置haMasterAddress,问题解决了,不过排查时发现haService是使用InetSocketAddress任意获取了一个本地地址,这里多网卡情况下是否会出现获取的本地地址和brokerIP1不一致导致slave依然找不到master的情况?这是第三个比较疑惑的地方。
>> <PastedGraphic-4.png>
>>
>>
>>> 在 2018年5月23日,11:41,Zhanhui Li <lizhanhui@gmail.com <ma...@gmail.com>> 写道:
>>>
>>> 1. RocketMQ为了优化IO写操作, 有预分配文件.
>>>
>>> 2. 你怎么判断同步数据又问题的? 可以看下主/备机store.log, 如果有问题, 日志会很清楚的提示.
>>>
>>>> 在 2018年5月22日,下午6:06,chuenfai <chyang_10@163.com <ma...@163.com>> 写道:
>>>>
>>>> Hi ALL,
>>>>
>>>> 问两个比较奇怪的问题,我本地搭建了一个主从集群,
>>>>
>>>> 1 Slave启动时(初始时Master和Slave的数据目录都是空的,且没有向集群发过任何消息),会在commitLog创建两个文件,而且显示文件特别大,不清楚这个是怎么来的。
>>>> <PastedGraphic-2.png>
>>>>
>>>> 2 测试时发现Slave无法从Master同步到commitlog消息,但是消费记录等配置可以同步到
>>>> 我的配置环境是:Rocketmq-4.2, Java1.8, Master的角色是ASYNC_MASTER
>>>>
>>>> 不知道有没有朋友遇到过相似的问题~
>>>
>>
>