我对消息中间件的理解

 

 什么是Message Queue?

 提到消息中间件,那么首先就必须理解一下所谓的Message Queue。


 在平常的开发中,应用开发人员完全可以通过发送和接受消息的方式来方便的与应用程序进行可靠的通信,并且消息的处理为我们提供了方便的消息传递和许多业务处理的可靠的防止故障的方法。


 但消息传递与传统的应用程序交互又有区别?最明显的区别就是实时性了。Message Queue不适合实时性要求比较高的场景,因为Message Queue通过异步的方式与server端进行交互,不用担心server端的长时间处理过程。


 举个例子,平常的应用程序之间的调用大部分都是通过暴漏接口的形式进行相互的调用,一旦业务复杂起来,接口之间的管理也会很麻烦。这时候如果通过Message Queue的方法的话,只要在需要的时候把消息发送到Queue Manage就可以,这时候Message Queue就成了嫁接各个系统之间的桥梁。


 上面也提到了实时性的问题,比如一个生成报表的功能,为了给用户更好的体验度,我们不可能让用户等待很长的时间,这时可以把对报表的处理使用MQ,客户端只需要把必要的报表请求和一些必要的报表条件放置到Queue中处理,处理好后,再给用户发送一个消息即可。


 下面也简单的介绍几个专业的术语?

 消息:两台计算机之间传送的数据单位,例如字符串、文本等


 消息队列:消息的容器,用于在消息传递的过程中保存消息的容器,充当消息源和目标之间的中间桥梁。队列的只要目的就在于提供路由保证消息的传递。


 消息队列网络:是指能够相互之间发送消息的一组计算机。网络中不同的计算机在消息处理过程中扮演者不同的角色,有的是发送者,有的是接受者。


 消息中间件简介?

 上面对消息队列有了一定的了解,那么消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,可以再分布式环境下扩展进程间的通信。

 那么对于消息中间件,常见的角色大致也就有Producer(生产者)、Consumer(消费者)、Broker(中转角色),有这么几个主要的角色,那么消息中间件能为我们带来那些功能呢?


 1.Message Priority

 Producer把消息发送给Broker来存储,那么我们就可以再消息队列中对我们的消息来进行排序,实现不同的优先级。从而满足我们复杂的业务需求。


 2.Message Order

 消息排序,有的消息的处理是需要按照一定的顺序进行处理的,比如用户的创建订单、订单付款、订单完成。那么对于消费者也需要按照这个流程来消费,否则就没有意义了。


 3.Message Filter


 在消息对立中,也可以对我们的消息进行过滤,比如按照消息类型等条件来过滤


 4.Message Persistence


 消息的持久化,一般有以下几种方式

 (1)持久化到数据库,比如mysql

 (2)持久哈到KV存储,比如redis

 (3)文件形式持久化

 消息的持久化,防止了系统挂掉后,仍然能够从之前备份中恢复出来。


 5.Broker的Buffer满了怎么办?


 我们知道Broker是用来存储需要处理的消息,如果消息过多,导致Buffer满了怎么办?

 这时候就会采取一定的策略来丢弃已有的消息。


 6.事务的支持


 正如上面所谈到的订单的操作,因此消息中间件中也会提供对分布式事务的支持。


 7.定时消息


 在实际应用中,有时也会需要定时消费的功能,因此中间件中,也会对消息进行排序,然后实现定时发送或者消费消息的业务需求。


 8.消息重试

 考虑一下这个问题,如果消息消费失败后,怎么办,是等待处理这个消息呢?还是让消费者在此消费一次呢?通常情况下,采取后者的形式,因为大多数情况下,消费失败的原因在于该消息本身的原因,如果在此消费这个消息的话,还是会出现失败的情况,因此通常采取在此发送消息在此消费消息的方式。


 9.回溯消费

 什么是回溯消费呢?对于已经消费成功的消息,是不是在Broker中就丢弃该消息呢?显而易见是不可能的,因此需要中间件对该功能支持,支持已经消费的信息进行时间段内的存储,等待某一刻内该消息会被重新消费的可能。







  • 11
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
分布式消息中间件实践PDF是指一本关于分布式消息中间件实践的电子书,通过PDF文件的形式呈现给读者。分布式消息中间件是一种用于实现分布式系统之间消息通信的技术,它可以提供可靠的消息传递、消息订阅和发布、消息队列等功能。 这本电子书主要介绍了分布式消息中间件的概念、原理、设计和实践。它从理论到实践的角度,详细讲解了分布式消息中间件的实现方式、架构设计、优化以及常见问题的解决方案。 在分布式系统中,消息中间件可以起到解耦、异步通信和削峰填谷等作用,可以提高系统的可伸缩性、可靠性和性能。而这本电子书提供了一些实践中的经验和教训,帮助读者更好地理解和应用分布式消息中间件。 这本电子书主要内容包括:分布式消息中间件的基本概念和原理、分布式消息中间件的常见实现方式、分布式消息中间件的架构设计、如何使用分布式消息中间件解决一些常见问题、如何进行分布式消息中间件的性能优化等。 通过阅读这本电子书,读者可以了解分布式消息中间件的基本概念和原理,了解分布式消息中间件的常见实现方式,学习分布式消息中间件的架构设计和性能优化,掌握使用分布式消息中间件解决实际问题的方法和技巧。这对于从事分布式系统开发和架构设计的人员来说是一本很有价值的参考资料。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值