好程序员Java学习资源分享RabbitMQ介绍

好程序员Java 学习资源分享 RabbitMQ 介绍,前言,RabbitMQ 是基于 AMQP 协议( Advanced Message Queue Protocol )的消息中间件

什么是消息队列

消息队列属于进程间通信的一种方式,使用消息队列可以通过异步方式处理数据,借此可以提高系统性能。我们可以把消息当作存放数据的容器,消息的消费者可以从队列中获取数据,进行处理。常见的消息队列有:ActiveMQ RabbitMQ Kafka RocketMQ 等。

RabbitMQ 中用到基本概念

Broker :消息队列的服务器实体

   Exchange :消息交换机,它指定消息按什么规则,路由到哪个队列

   Queue :消息队列载体,每个消息都会被投入到一个或多个队列

   Binding :绑定,它主要是把 exchange queue 按照路由规则绑定起来

   Routing Key :路由关键字, exchange 根据这个关键字进行消息投递

   vhost :虚拟主机,一个 broker 里可以开设多个 vhost ,用作不同用户的权限分离

   producer :消息生产者,投递消息的程序

   consumer :消息消费者,接收消息的程序

   channel :消息通道,在客户端的每个连接里,可以建立多个 channel ,每个 channel 代表一个会话任务

RabbitMQ 中消息模式

简单队列

一个生产者对应一个消费者


工作队列


一个生产者,多个消费者,一个消息只能发给一个消费者,spring 中整合 rabbitmq 时,默认采用公平分发

 

发布订阅模式

传递一个消息到多个消费者中,借助该模式可以发布的消息将被广播给所有接收者。


使用该模式需要借助交换机,生产者将消息发送到交换机,再通过交换机到达队列。

RabbitMQ 中有四种交换机: direct/topic/headers/fanout 。默认交换机是 direct ,发布与订阅的实现使用 fanout

使用交换机时,每个消费者有自己的队列,生产者将消息发送到交换机(X),每个队列都要绑定到交换机。

4 路由模式

生产者将消息发送到direct 交换机(路由模式需要借助直连交换机实现),在绑定队列和交换机的时候有一个路由 key ,生产者发送的消息会指定一个路由 key ,那么消息只会发送到相应 key 相同的队列,接着监听该队列的消费者消费消息。也就是让消费者有选择性的接收消息。


主题模式

又称通配符模式。

使用直连交换机可以改善我们的系统,但是它仍有局限性,它不能实现多重条件的路由。在消息系统中,我们不仅想要订阅基于路由键的队列,还想订阅基于生产消息的源,这时候可以使用topic 交换机。

使用主题交换机时,路由键的语法形式是采用点分割的有意义的单词。例如"goods.stock.info"


其中:* 星号代表一个单词, # 井号代表 0 个或多个单词


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69913892/viewspace-2655602/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/69913892/viewspace-2655602/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值