rabbitmq 的优缺点
- 同步变异步:可以使用线程池将同步变成异步,但是缺点是要自己实现线程池,并且强耦合。使用消息队列可以轻松将同步请求变成异步请求。
- 低内聚高耦合:解耦,减少强依赖。
- 流量削峰:通过消息队列设置请求阈值,超过阀值的抛弃或者转到错误界面。
- 网络通信性能提高:tcp 的创建和销毁开销大,创建 3 次握手,销毁 4 次分手,高峰时成千上万条的链接会造成资源的巨大浪费,而且操作系统每秒处理 tcp 的数量也是有数量限制的,必定造成性能瓶颈。
##rabbitmq 的交换器
- 广播式交换器类型 (fanout)
不分析所接收到消息中的 routing key,默认将消息转发到所有与该交换器绑定的队列中去。
- 直接式交换器类型 (direct)
需要精确匹配 routing key 与 binding key,如消息的 routing key = cloud,那么该条消息只能被转发至 binding key = cloud 的消息队列中去。
- 主题式交换器 (topic exchange)
通过消息的 routing key 与 binding key 的模式匹配,将消息转发至所有符合绑定规则的队列中。
灵感来源: