MQ面试题

#、RabbitMQ五种工作模式

参考   RabbitMQ五种工作模式 - howard4 - 博客园

1、简单队列: 一个生产者对应一个消费者!!!

2、work 模式:一个生产者对应多个消费者,但是一条消息只能有一个消费者获得消息(轮询分发、公平分发)!!!

3、发布/订阅模式:一个消费者将消息首先发送到交换器,交换器绑定到多个队列,然后被监听该队列的消费者所接收并消费。

4、路由模式:生产者将消息发送到direct交换器,在绑定队列和交换器的时候有一个路由key,生产者发送的消息会指定一个路由key,那么消息只会发送到相应key相同的队列,接着监听该队列的消费者消费消息。也就是让消费者有选择性的接收消息;

5、主题模式:上面的路由模式是根据路由key进行完整的匹配(完全相等才发送消息),这里的通配符模式通俗的来讲就是模糊匹配。符号“#”表示匹配一个或多个词,符号“*”表示匹配一个词。

​ 这五种工作模式,可以归为三类:

  1. 生产者,消息队列,一个消费者;
  2. 生产者,消息队列,多个消费者;
  3. 生产者,交换机,多个消息队列,多个消费者;

#、四种交换器

1、direct 如果路由键完全匹配的话,消息才会被投放到相应的队列。  

2、fanout 当发送一条消息到fanout交换器上时,它会把消息投放到所有附加在此交换器上的队列。

3、topic 设置模糊的绑定方式,“*”操作符将“.”视为分隔符,匹配单个字符;“#”操作符没有分块的概念,它将任意“.”均视为关键字的匹配部分,能够匹配多个字符。

4、header headers 交换器允许匹配 AMQP 消息的 header 而非路由键,除此之外,header 交换器和 direct 交换器完全一致,但是性能却差很多,因此基本上不会用到该交换器

#、RabbitMQ几个常用面试题

RabbitMQ几个常用面试题       RabbitMQ几个常用面试题 - woadmin - 博客园

#、为什么选择RabbitMQ?

  • ActiveMQ,性能不是很好,因此在高并发的场景下,直接被pass掉了。它的Api很完善,在中小型互联网公司可以去使用。

  • kafka,主要强调高性能,如果对业务需要可靠性消息的投递的时候。那么就不能够选择kafka了。但是如果做一些日志收集呢,kafka还是很好的。因为kafka的性能是十分好的。
  • RocketMQ,它的特点非常好。它高性能、满足可靠性、分布式事物、支持水平扩展、上亿级别的消息堆积、主从之间的切换等等。MQ的所有优点它基本都满足。但是它最大的缺点:商业版收费。因此它有许多功能是不对外提供的。

  • RabbitMQ的可靠性是非常好的,数据能够保证百分之百的不丢失。可以使用镜像队列,它的稳定性非常好。所以说在我们互联网的金融行业。对数据的稳定性和可靠性要求都非常高的情况下,我们都会选择RabbitMQ。当然没有kafka性能好,但是要比AvtiveMQ性能要好很多。也可以自己做一些性能的优化。

 

对比分析图

对比分析图


activeMQ

1、JMS中的一些关键接口。

  • ConnectionFactory:用于创建连接到消息中间件的连接工厂。
  • Connection:代表了应用程序和服务之间的连接通路。
  • Destination:指消息发布的地点,包括队列模式和主体模式。
  • Session:表示一个单线程的上下文,用于发送和接受消息。
  • MessageConsumer:由会话创建,用于接受发送到目的的消息。
  • MessageProducer:由会话创建,用于发送消息。
  • Message:是在消费者和生产者之间传递的对象,消息头,一组消息属性,和一个消息体。
     
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值