分布式系统初学:消息中间件

要学习分布式系统,消息中间件是必不可少的。消息中间件也可以称消息队列,是指用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息队列模型,可以在分布式环境下扩展进程的通信。当下主流的消息中间件有RabbitMQ、Kafka、ActiveMQ、RocketMQ等。其能在不同平台之间进行通信,常用来屏蔽各种平台协议之间的特性,实现应用程序之间的协同。其优点在于能够在客户端和服务器之间进行同步和异步的连接,并且在任何时刻都可以将消息进行传送和转发。是分布式系统中非常重要的组件,主要用来解决应用耦合、异步通信、流量削峰等问题。

消息中间件的作用
• 应用解耦
• 弹性伸缩
• 冗余存储
• 流量削峰
• 异步通信
• 数据同步

这里我学习的是RabbitMQ

以下是RabbitMQ的五种工作模式:

  1. 简单模式


生产者将消息通过连接直接传递给消息队列,然后由消费者连接接收
适用场景:短信,聊天

  1. 工作模式

在这里插入图片描述
生产者将消息通过连接传递给消息队列,消息中间件通过绑定将消息传递给多个消费者中的一个,这事就需要争抢资源。
适用场景:抢红包

  1. 发布订阅 publish/subscribe

在这里插入图片描述
这种工作模式加入了交换机,由生产者将消息传递给交换机,这种模式下,交换机是FANOUT(群发)类型,会把消息分发到各个队列中,再由各个队列传递给消费者
适用场景:邮件群发,垃圾广告

  1. 路由模式 routing

在这里插入图片描述
此模式下交换机为DIRECT类型,消息队列通过bindingKey与交换机绑定,生产者传递消息给交换机,消息中包含routingKey,对比routingKey和bindingKey,传递消息到对应的队列里,再由消费者获取
适用场景:单发邮件

  1. 主题订阅模式 topic

在这里插入图片描述
此模式下交换机为TOPIC类型,bindingKey添加了模糊匹配,
bindingkey可以使用通配符 * # 代表通配符 , . 分隔符

  • *代表一个单词
  • #代表零个或多个单词
    适用场景:基本以上提到的所有场景都可以使用
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值