消息队列MQ

匿名 (未验证) 提交于 2019-12-02 23:49:02

1、MQ的应用场景
  a)主要解决异步消息
  b)应用解耦
  c)流量消峰等问题
  d)日志处理(kafka)

2、JMS消息模型
  a)P2P(Point to Point)点对点模式(也就是一个任务只能被一个消费者消费)
    1、包含三个角色:消息队列(Queue),发送者(Sender),接受者(Receiver)
    2、简单队列(一对一)
    3、工作队列(轮循队列)(一对多)
    4、平分队列(能者多劳)(一对多)
  b)Publish/Subscribe(Pub/Sub)发布订阅模式
    1、包含三个角色:主题(Topic),发布者(Publisher),订阅者(Subscriber)
    2、一个生产者,多个消息者
    3、每个消费者都有自己的队列
    4、生产者没有直接把消息发送到队列,而是发送到交换机 转发器exchange
    5、每个队列都要绑定到交换机上
    6、生产者发送的消息经过交换机到达队列,就能实现一个消息被多个消费者消费
    7、Exchange(交换机 转发器)
      1、一方面是接受生产者的消息,另一方面是向队列推送消息
      2、匿名转发
      3、Fanout(不处理路由键,广播)
      4、Direct(处理路由键,发布与订阅,完全匹配)

      5、Topic(主题,规则匹配)
  c)路由模式(路由键)
  d)Topicģʽ
    1、将路由键和某模式匹配
    2、"#"匹配一个或者多个
    3、“*”匹配一个
3、Rabbitmq的消息确认机制(事务+confirm)
  a)在rabbitmq中,可以通过持久化数据,解决rabbitmq服务器异常的数据丢失问题
  b)问题:生产者将消息发送出去之后,消息到底有没有达到rabbitmq服务器,默认是不知道的
    解决(两种方式):
      1、AMQP实现事务机制
      2、Confirm
  c)事务机制(txSelect,txCommit,txRollback)
    1、txSelect:用户将当前channel设置成transation模式
    2、txCommit:用于提交事务
    3、txRollback:回滚事务

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!