金三银四跳槽季(三)消息中间件

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/dreamsunday/article/details/79950729

1、如何解决消息失败重发

如果发送失败,则尝试将消息存储到db,由后台线程定时重试,保证消息一定到达Broker。

2、如何解决消息发送的顺序性的

根据业务把消息,比如说订单号相同的消息发送到同一个队列中

3、如何解决消息中间件重复发送消息的

一般来说只有网络异常,Consumer启停等异常情况下会出现消息重复,此问题的本质原因是网络调用存在不确定性,既不成功也不失败的第三种状态,所以才产生了消息重复性问题,最直接的解决办法就是消费端去重,消费过程做到消息幂等性。

4、如何解决消息丢失

通常来说,消息丢失发生在某个broker不可用或者宕机,造成消息不能发送,导致消息丢失。
解决此类问题最好方式就是多master多slave节点


单master节点,一旦Broker重启或者宕机时,会导致整个服务不可用。
多master节点,单台机器宕机期间,这台机器上未被消费的消息在机器恢复之前不可订阅,消息实时性会受到受到影响。


为什么说多master多slave节点能解决此类问题呢,比如单个master broker宕机,不影响通信,如果masterslave之间是异步复制,可能会遗漏消息(master宕机并且没有及时复制到salve上去),但是只要master恢复过来,消息还是不会丢失,如果master硬盘损坏,就无法恢复了,这也是它的弊端,然而它的效率稍高。
另一种就是采用同步双写方式,masterslave必须同时写入才会成功,这样哪怕maser宕机,还有slave

1)mq的原理是什么:有点大。。都可以说;
2)mq如何保证实时性;
3)mq的持久化是怎么做的;

1)什么是推模式,什么是拉模式
2)有没有消息丢失情况,如何防止
3)MQ用来解决什么问题
4)你们用的什么MQ,为什么要用这个,它的最大吞吐量是多少

消息队列使用的场景介绍和作用(应用耦合、异步消息、流量削锋等);

如何解决消息队列丢失消息和重复消费问题;

Kafka使用过吗,什么是幂等性?怎么保证一致性,持久化怎么做,分区partition的理解,LEO是什么意思,如何保证多个partition之间数据一致性的(ISR机制),为什么Kafka可以这么快(基于磁盘的顺序读写);

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页