消息中间件介绍

消息中间件是用于应用程序之间进行通信,系统通过消息传递完成交互。

消息中间件的主要特点有以下几个:

  1、分布式:消息中间件都是分布式的,因此才可以提供异步、解耦等功能。

  2、可靠性:基于消息的通信是可靠的,消息不会丢失。大多数消息中间件都提供将消息持久化到磁盘的功能。

  3、 异步:通过消息中间件,可将远程同步调用拆解成为异步调用。对于不需要获取远程调用结果的应用场景来说,性能提升明  显。

  4、松耦合:消息直接由中间件存储和分发。消息生产者只需关注如何将消息发送给消息中介服务器;消费者只需关注如何从中介服务器订阅。生产者和消费者之间是完全解耦的,不需要知道彼此的存在。

  5、事件驱动:可以将复杂的应用系统重构成为事件驱动的系统。事件溯源(Event Sourcing),表示一个对象从创建到消亡,会经过的多种状态。如果把对象的状态变化都存储下来,不但可以根据状态变化记录获取对象的当前状态,也可以回溯对象的变化过程。消息中间件能很好地支持这样的系统设计方式,将触发对象状态变化的事件放入消息队列。

同样,一个消息中间件也有一些值得思考的问题:

1、分布式带来的复杂性:消息中间件都是分布式的,引入分布式会大大增加系统复杂度,在不同主机、不同进程之间的调用和调试,会带来更多的不稳定性。分布式系统还会增加对外部系统的依赖。即使自己的系统没有问题,也可能会因为依赖系统出问题而导致系统不稳定。因此,Martin Fowler曾说:分布式调用的第一原则就是不要分布式。

2、同步调用应该考虑其他方式:尽管消息中间件也可用于同步调用,但这并不是它的长项,同步调用可以考虑使用HTTP、NIO等其他方式。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值