RocketMQ同步双写问题

GentlemanQc 发布于 2016/11/09 16:15
阅读 1K+
收藏 0

解读下一代网络:算力网络正从理想照进现实!>>>

@tantexian 你好,想跟你请教个问题:

您好,我阅读了您写的RocketMQ同步双写的文章,很有帮助。但是我自己操作验证时,发现一个问题。我的测试环境是116和118为主broker,brokerRole为SYNC_MASTER,117为116的备节点,119为118的备节点。我发送消息后,消息存放在了116上。这时,我关闭116和117的broker节点,然后启动消费者消费消息,发现无法消费到我发送的消息。按照我的理解,同步双写的话,就是116和118之间也进行了消息同步,所以当116和117挂掉时,118上有同步来的消息,所以应该可以消费到这条消息的呀。请您给予帮助,等待您的回复,谢谢!!!

加载中
0
tantexian
tantexian
同步双写应该是指的会同时写到116和117,至于116/117及118/119之间的切换,在开源版本是没有这个功能的,阿里内部版本据说是有的
GentlemanQc
GentlemanQc
回复 @tantexian : 将两个机房作为一个整体,用统一的一套nameserver管理?这种方案也考虑过,一个是nameserver跨机房部署,对性能这块的影响;另一个是两个机房相同的应用,存在机房二的消费者消费了机房一生产者发送的消息,实际上机房二只是作为备用,不参与业务处理
tantexian
tantexian
@GentlemanQc 回复@GentlemanQc : 我没碰到过这种问题。我认为如果是两个机房,不知道是否为两地三中心那种,如果不是的话,那么两个地方只要网络能够互通,做rocketmq自身的集群高可用方案就可以解决吧
GentlemanQc
GentlemanQc
@tantexian 回复@tantexian : 现在在跨机房情况下,如何做到主机房RocketMQ里存放的消息,能够同步到备机房,在备机房里可以继续消费?
tantexian
tantexian
@GentlemanQc 回复@GentlemanQc : 一般不这么弄,会牺牲可用性和性能
GentlemanQc
GentlemanQc
@tantexian 回复@tantexian : 您好,请问RocketMQ能扩展把消息入库吗?
下一页
0
GentlemanQc
GentlemanQc

引用来自“tantexian”的评论

同步双写应该是指的会同时写到116和117,至于116/117及118/119之间的切换,在开源版本是没有这个功能的,阿里内部版本据说是有的
回复 @tantexian : 还有一个问题,请教一下您。我现在负责实现业务双中心的功能,这里RocketMQ的使用中遇到一个问题,生产者是否可以知道消息有多少个消费者消费了,或者说消费者消费消息后是否可以通知生产者?
0
tantexian
tantexian
可以参考rabbitmq的callback机制,在消费者消费完消息通知生产者,rocketmq没有此功能,需要自己实现
GentlemanQc
GentlemanQc
回复@tantexian : 嗯嗯。这样改动的话,我得看源码了,才可以很好的进行二次开发,加以改造。主要是时间不允许,所以想找个快速的方案
返回顶部
顶部