RabbitMQ简介

RabbitMQ

MQ全称为Message Queue,即消息队列, RabbitMQ是由erlang语言开发,基于AMQP(Advanced Message Queue 高级消息队列协议)协议实现的消息队列,它是一种应用程序之间的通信方法,消息队列在分布式系统开 发中应用非常广泛。RabbitMQ官方地址:http://www.rabbitmq.com/

应用 场景

1.任务异步处理

降不需要同步处理的并且耗时长的操作由消息队列通知消息方进行异步处理。提高应用程序的响应时间。

2、应用程序解耦合

MQ相当于一个中介,生产方通过MQ与消费方交互,它将应用程序进行解耦合

RabbitMQ优点

1、使得简单,功能强大。

2、基于AMQP协议。

3、社区活跃,文档完善。

4、高并发性能好,这主要得益于Erlang语言。

5、Spring Boot默认已集成RabbitMQ

RabbitMQ工作原理

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UYI03k2d-1571639713420)(C:\Users\Administrator\Desktop\1571624091(1)].png)

组成部分说明

  • Broker:消息队列的服务进程,此进程包括两大部分:Exchange和Queue 【交换机和队列】
  • Exchange:消息队列交换机,按一定的规则将消息路由转发给某个队列,对消息进行过滤
  • Queue:消息队列,存储消息的队列,消息到达队列并转发给指定的消息方。
  • Producer:消息生产者,即生产客户单,生产方客户端将消息发送到MQ。
  • Consumer:消息消费者,即消费方客户端,接收MQ转发的消息。
消息发布接收流程

发送消息

  • 生产者和Broker建立TCP连接
  • 生产者和Broker建立通道
  • 生产者通过通道消息发布发送到Broker,由Exchange将消息进行转发。
  • Exchange将消息转发到指定的Queue

接收消息

  • 消费者和Broker建立TCP连接

  • 消费者和Broker建立通道

  • 消费者监听指定的Queue

  • 当有消息到达Queue时Broker默认将消息推送给消费者

  • 消费者接收到消息

    测试

public class Producer{
   
    //队列名称
    private static final String QUEUE ="helloworld";
    public static void main(String[] args)throws IOException,TimeoutException{
   
        Connection connection =null;
        Channel channel =null;
        
        try{
   
            ConnectionFactory factory = new ConnectionFactory();
            factory.setHost("localhost");
            factory.setPort("5672");
            factory.setUsername("guest");
        	
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值