加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

RebbitMQ

发布时间:2020-12-14 05:06:29 所属栏目:大数据 来源:网络整理
导读:核心概念 Producer:消息生产者,即投递消息的程序。 Broker:消息队列服务器实体。单个机器可以部署多个Broker Exchange:消息交换机,它指定消息按什么规则,路由到哪个队列。 Binding:绑定,它的作用就是把 Exchange 和 Queue 按照路由规则绑定起来。 Qu

核心概念

  • Producer:消息生产者,即投递消息的程序。
  • Broker:消息队列服务器实体。单个机器可以部署多个Broker
  • Exchange:消息交换机,它指定消息按什么规则,路由到哪个队列。
  • Binding:绑定,它的作用就是把 Exchange 和 Queue 按照路由规则绑定起来。
  • Queue:消息队列载体,每个消息都会被投入到一个或多个队列。
  • Consumer:消息消费者,即接受消息的程序。

Exchange 收到消息时,他是如何知道需要发送至哪些 Queue 呢?这里就需要了解 Binding 和 RoutingKey 的概念:

Binding 表示 Exchange 与 Queue 之间的关系,我们也可以简单的认为队列对该交换机上的消息感兴趣,绑定可以附带一个额外的参数 RoutingKey。Exchange 就是根据这个 RoutingKey 和当前 Exchange 所有绑定的 Binding 做匹配,如果满足匹配,就往 Exchange 所绑定的 Queue 发送消息,这样就解决了我们向 RabbitMQ 发送一次消息,可以分发到不同的 Queue。RoutingKey 的意义依赖于交换机的类型。

?

Exchange 的三种主要类型:Fanout(广播)Direct(直接)?和?Topic(通配符匹配)

?

Fanout Exchange 会忽略 RoutingKey 的设置,直接将 Message 广播到所有绑定的 Queue 中。

Direct Exchange 是 RabbitMQ 默认的 Exchange,完全根据 RoutingKey 来路由消息。设置 Exchange 和 Queue 的 Binding 时需指定 RoutingKey(一般为 Queue Name),发消息时也指定一样的 RoutingKey,消息就会被路由到对应的Queue。

Topic Exchange 和 Direct Exchange 类似,也需要通过 RoutingKey 来路由消息,区别在于Direct Exchange 对 RoutingKey 是精确匹配,而 Topic Exchange 支持模糊匹配。分别支持*和#通配符,*表示匹配一个单词,#则表示匹配没有或者多个单词。

?

q中的消息只要被ack就一定会被删除掉。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读