Spring Boot RabbitMQ系列之基础概念

原理图

术语介绍

  1. Broker:消息队列服务实体
  2. Exchange:交换机,通过特定的方法路由到指定的队列
  3. Queue:消息载体,每个消息都会被路由到一个或多个队列
  4. Binding:绑定,把Exchange和Queue按照路由规则绑定起来
  5. RoutingKey:路由的key,Exchange根据该值进行消息投递
  6. Vhost:一个Broker可以创建多个Vhost,用作不同用户的权限分离
  7. Producer:消息生产者
  8. Consumer:消息消费者
  9. Channel:消息通道,一个连接可以创建多个Channel,一个Channel代表一个会话任务

注意: Exchange和Queue在创建的时候默认为持久化

为什么选择RabbitMQ

  1. 实现类AMQP协议
  2. 可靠性,提供了持久化支持
  3. 高并发,采用了Erlang语言
  4. 集群部署简单
  5. 社区活跃度高

信道(channel)

生产者在往RabbitMQ服务发送消息之前,需要和RabbitMQ服务创建一个TCP连接,并进行安全认证,认证通过之后会创建一个信道

为什么要创建信道而不直接使用创建的TCP连接进行通信?

  1. 首先AMQP协议要求每条AMQP命令必须在信道中传输
  2. 如果使用TCP连接,那么在高峰时期就会创建成千上万个TCP连接,很可能达到操作系统创建TCP连接的瓶颈,并且TCP连接的创建和销毁的代价是很昂贵的(三次握手、四次挥手)

总结:所以会在创建一个TCP连接后,会在该连接的基础上创建一条一条的channel,这样既可以保证性能,也可以保证每个连接的私密性。

代码地址

boot-example

转载于:https://juejin.im/post/5c949c7df265da6120098e98

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值