1.消息队列的使用场景
在分布式系统中是如何处理高并发的: 由于在高并发的环境下来不及同步处理用户发送的请求,
则会导致请求发生阻塞(比如大量的inser、update请求。
可能导致无数的行锁和表锁,甚至会导致请求堆积很多,
从而去触发一个错误 too many connections)
2.消息的重发补偿解决思路
3.消息的幂等性解决思路
4.消息的堆积解决思路
5.自己如何实现消息队列
6.如何保证消息的有序性
7.交换机和队列是如何关联起来的?
看交换机类型,除了Fanout 交换机之外, direct 和topic 模式的交换机通过 routingKey绑定; Fanout Exchange不处理任何的路由键,生产者只需要简单定义队列名称 和交换机名称,消费者定义获取相同的交换机名称就能消费消息;Fanout 交换机转发消息是最快的。
8.常见的消息中间件,区别。
ActiveMq:
KAFKA: 关注吞吐量,不支持事物。(强调高性能,对于消息的重复,丢失,错误没有严格要求)依赖于Zookeeper
RocketMQ: 纯java语言编写,思路起源于KAFAKA,对于消息的可靠性及事务性做了优化。顺序消费。
RabbitMq: 基于AMQP 协议实现,可靠,安全(金融行业选择)。