当前位置:   article > 正文

mq的面试题 20200908

mq的面试题 20200908

1、如何使用 ActiveMQ 解决分布式事务?

   在互联网应用中,基本都会有用户注册的功能。在注册的同时,我们会做出如下操作:
   1. 收集用户录入信息,保存到数据库
   2. 向用户的手机或邮箱发送验证码
   等等…    如果是传统的集中式架构,实现这个功能非常简单:开启一个本地事务,往本地数据库中插入一条用户数据,发送
   验证码,提交事物。
    但是在分布式架构中,用户和发送验证码是两个独立的服务,它们都有各自的数据库,那么就不能通过本地事物
    保证操作的原子性。这时我们就需要用到 ActiveMQ(消息队列)来为我们实现这个需求。
     在用户进行注册操作的时候,我们为该操作创建一条消息,当用户信息保存成功时,把这条消息发送到消息队列。
   验证码系统会监听消息,一旦接受到消息,就会给该用户发送验证码。
   问题:
        1.如何防止消息重复发送?
       解决方法很简单:增加消息状态表。通俗来说就是一个账本,用来记录消息的处理状态,每次处理消息之前,都去
      状态表中查询一次,如果已经有相同的消息存在,那么不处理,可以防止重复发送。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
   2、了解哪些消息队列? ActiveMQ、RabbitMQ、kafka。 RabbitMQ: RabbitMQ 是使用 Erlang    编写的一个开源的消息队列,本身支持很多的协议:AMQP,XMPP, SMTP, 
    声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/628239
    推荐阅读
    相关标签
      

    闽ICP备14008679号