博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring Boot RabbitMQ系列之基础概念
阅读量:6863 次
发布时间:2019-06-26

本文共 714 字,大约阅读时间需要 2 分钟。

原理图

术语介绍

  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,这样既可以保证性能,也可以保证每个连接的私密性。

代码地址

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

你可能感兴趣的文章
敏捷开发签名人建议开发者放弃“敏捷”
查看>>
加速企业数字化转型,首届Spring Summit技术峰会圆满落幕
查看>>
iPhone 7 256GB版停售原因分析
查看>>
影谱科技宣布完成13.6亿D轮融资 商汤软银等多家参与
查看>>
春运背后默默守护高铁安全的“隐形人”
查看>>
张家界举行“火王”争霸赛 众人街头“玩火”
查看>>
台铁宣布3月起停驶行包列车 摩托车托运将走入历史
查看>>
中国民航局:2019年春运中国民航旅客运输量将创历史新高
查看>>
台湾澎湖县启动返乡包机 春节疏运增加25个航班
查看>>
甘肃黄土山地数十载现“满眼绿” 护林员四季不歇护植被
查看>>
行将消失的烧瓦匠人:“仿古”热潮下迎新生曙光
查看>>
最前线|爱奇艺低调上线“好多视频”,短视频战场的主动防御
查看>>
看看40万程序猿怎么评论:对于程序员英语真的重要吗?
查看>>
你们网购遇到过这种店铺吗?我吓得第二天就退货了
查看>>
Tumblr扫黄正式开始!AI鉴黄也许是老司机们的头号敌人
查看>>
GopherChina 2018 区块链+容器+Go底层实现
查看>>
深度|从Go高性能日志库zap看如何实现高性能Go组件
查看>>
Github Pages+Hexo+阿里云域名绑定
查看>>
WEB应用常见15种安全漏洞一览
查看>>
使用 ThinkJS + Vue.js 开发博客系统
查看>>