It is ok to add a broker-role-status checking mechanism to avoid  ineffective 
sending.

The push-mechanism only notify the client to refresh metadata. After 
refreshment by the MQClientInstance,the broker role status could be updated.

发自我的 iPhone

> 在 2022年3月12日,下午7:04,WJL3333 <[email protected]> 写道:
> 
> Yes, I agree with you, both approach do the same thing.
> If we design in a pull-for-exception way. more work should be done.
> 
> I think the dledger-based rocketmq can introduce more broker status about 
> current broker role which can be a good indicator for client to refresh 
> metadata. if producer receive not-leader response code, refresh metadata is 
> needed. It should not send the message to the broker until the metadata 
> refresh. Nameserver-pushed way is async to the producer send code path. I 
> think this can be avoided.
> 
> 
>> On 2022/03/12 09:37:45 刘振东 wrote:
>> In fact,client-pull-for-exception is an alternative way. 
>> 
>> The push machanism is simple and effective. 
>> And, If the nameserver only push the topic names and only one nameserver 
>> node will do that, the load is reduced much.
>> 
>> Currently,I believe it is not easy to handle all the exceptions in client 
>> for metadata refreshment.
>> 
>> For example, if you want to refresh by topic,then you need to handle all the 
>> apis which contain topics,it introduces  too much code work. If you refresh 
>> by all,it will cause too much network load,especially in unstable network 
>> environment.
>> 
>> List all the exceptions is also not an easy thing. It needs to be designed 
>> more carefully.
>> 
>> Anyway,performance test is needed. If push-based mechanism invoked too much 
>> load,an carefully designed client-pull-for-exception will be considered 
>> again.
>> 
>> 发自我的 iPhone
>> 
>>> 在 2022年3月12日,下午4:17,王金龙 <[email protected]> 写道:
>>> 
>>> I think the design is a good point to shorten the unavailable time of 
>>> rocketmq when leader change.
>>> 
>>> I agree with most of the design point in the doc.
>>> 
>>> But the same as others. I think name server push-based topic route will 
>>> introduce a lot of load for nameserver. 
>>> 
>>> How about change to client pull route info when receive exception or 
>>> receive leader change-like response code.
>>> 
>>> 
>>>> On 2022/03/02 11:42:14 xijiu wrote:
>>>> Hi, RocketMQ Community, 
>>>> 
>>>> As discussed in the previous email, we launched a new RIP to optimize 
>>>> topic routing mechanism. Now the shepherds @dongeforever and @yukon are 
>>>> willing to support the RIP, so I think it is time to start an email thread 
>>>> to enter the voting process.
>>>> 
>>>> 
>>>> The vote will be open for at least 72 hours or until a necessary number of 
>>>> votes are reached.
>>>> 
>>>> Please vote accordingly:
>>>> 
>>>> [ ] +1 approve
>>>> [ ] +0 no opinion
>>>> [ ] -1 disapprove with the reason
>>>> 
>>>> 
>>>> Best Regards!
>>>> xijiu
>>>> 
>>>> links: 
>>>> https://shimo.im/docs/vVAXVrDNnoSrMBqm/

Reply via email to