请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

router 模式 怎么数据持久化?

rabbitMQ 数据持久化的问题?

我先打开go run RabbitMQRouting/publishRouting.go
再打开go run RabbitMQRouting/recieveImoocTwo.go
这样的化,会丢掉这个时间差的所有消息

这个如果在生成环境下,万一消费端重启了,那重启的这段时间的消息不就全丢了??求老师指点?

正在回答 回答被采纳积分+3

插入代码

1回答

Cap 2020-11-24 12:04:52

当你消费地时候队列生产会一直加在队列里,当接入消费者的时候才会继续消费,如果对消息一致性有要求可以在加个课程里说的ack确认机制,保障消费完成后才从消息队列里删除消息

1 回复 有任何疑惑可以回复我~
  • 提问者 starxigua #1
    有具体的案例吗??请指教一下? 我自己没弄好。
    
    用router模式,生产消息端每秒生产一条消息,等1分钟钟后再开消费终端,这个时候接受的消息是从61个开始了,意味着前面60个消息丢失。
    
    这个根本不能用在实战上线。请cap老师花点时间,通过代码的方式,从实战的角度,带着我们学一下。
    回复 有任何疑惑可以回复我~ 2020-11-24 12:17:43
  • Cap #2
    要不丢消息要更具这个需求换rabbitmq消费模式,不能用类似广播的模式,这种模式下就是广播性质的消息。
    回复 有任何疑惑可以回复我~ 2020-11-24 12:33:35
  • Cap #3
    每种模式的特性要首先清楚下时候在那些场景使用,比如这个路由模式就是,可以更具条件筛选出需要的日志消息,相对于业务系统来说这种广播性质的不适合做强一致性要求的业务需求
    回复 有任何疑惑可以回复我~ 2020-11-24 12:36:15
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号