RabbitMQ学习记录

RabbitMQ核心组成部分
在这里插入图片描述

Server:又称Broker,接受客户端的连接,实现AMQP实体服务,安装rabbitmq-server
Connection:连接,应用程序与Broker的网络连接TCP/IP,三次握手四次挥手
Channel:信道,几乎所有操作都在Channel进行,Channel是进行消息读写的通道,客户端可以建立多个Channel,每个Channel代表一个会话任务
Message :消息:服务与应用程序之间传送的数据,由Properties和body组成,Properties可是对消息进行修饰,比如消息的优先级,延迟等高级特性,Body则就是消息体的内容。
Virtual Host 虚拟地址,用于进行逻辑隔离,最上层的消息路由,一个虚拟主机理由可以有若干个Exhange和Queueu,同一个虚拟主机里面不能有相同名字的Exchange
Exchange:交换机,接受消息,根据路由键发送消息到绑定的队列。(不具备消息存储的能力,接收后发送给队列,队列无法直接接收消息)
Bindings:Exchange和Queue之间的虚拟连接,binding中可以保护多个routing key.
Routing key:是一个路由规则,虚拟机可以用它来确定如何路由一个特定消息。
Queue:队列:也成为Message Queue,消息队列,保存消息并将它们转发给消费者。

RabbitMQ有几种交换机

1.Direct Exchange(直连交换机) 直连交换机的特点是消息队列通过routingKey与交换机进行绑定

2.Fanout Exchange(扇出交换机) 扇出交换机的特点是类似于广播,只要队列与该类型的交换机绑定,所有发送到该交换机的信息都会被转发到所有与之绑定的队列,与routingKey无关。

3.Topic Exchange(主题交换机) 应用范围最广的交换机类型,消息队列通过消息主题与交换机绑定。一个队列可以通过多个主题与交换机绑定,多个消息队列也可以通过相同消息主题和交换机绑定。并且可以通过通配符(*或者#)进行多个消息主题的适配。

4.Header Exchenge(头交换机) 与routingKey无关,匹配机制是匹配消息头中的属性信息。在绑定消息队列与交换机之前声明一个map键值对,通过这个map对象实现消息队列和交换机的绑定。当消息发送到RabbitMQ时会取到该消息的headers与Exchange绑定时指定的键值对进行匹配;如果完全匹配则消息会路由到该队列,否则不会路由到该队列。

匹配规则x-match有下列两种类型:
x-match = all :表示所有的键值对都匹配才能接受到消息
x-match = any:表示只要有键值对匹配就能接受到消息

RabbitMQ六种常用模式

简单模式 Simple:一对一消息发送接收

工作模式 Work:轮询分发不会因为速度影响分发的条数、公平分发会因为速度影响分发的条数,能者多劳

发布与订阅模式 Publish/Subscribe:一对多都会收到消息,类型fanout

路由模式 Routing:根据RoutingKey(路由key)发送和接收消息,类型direct

主题模式 Topics

RPC远程调用模式(远程调用,不太算MQ;暂不作介绍)

RabbitMQ使用场景

解耦、异步编程可以达到流量削峰,高内聚低耦合,分布式事务的可靠消费和可靠生产,日志监控,下单、订单分发、抢票

Springboot整合RabbitMQ
添加依赖

   <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-amqp</artifactId>
     </dependency>

配置端口和账号

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值