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
>>>> 
>>>> 不知道有没有朋友遇到过相似的问题~
>>> 
>> 
>