程序设计:消息中间件的引入原因以及带来的问题
2021-04-22 17:52:27 6 举报
AI智能生成
从消息中间件的优劣势来分析程序设计时要不要引入消息中间件,和引入后需要考虑的问题。
作者其他创作
大纲/内容
使用场景(优势)
1.解耦
使用场景:
向外提供数据服务,与多个服务存在调用关系。
向外提供数据服务,与多个服务存在调用关系。
引入原因:
(1)无需根据接入方的接口标准定制开发数据接口,可以避免接入一个服务就要开发一类
接口的问题;
(2)上下游服务通过消息中间件生产、消费数据,无直接调用关系,一方服务变动时(消息结构不变)不会
影响另一方服务的运行。
(1)无需根据接入方的接口标准定制开发数据接口,可以避免接入一个服务就要开发一类
接口的问题;
(2)上下游服务通过消息中间件生产、消费数据,无直接调用关系,一方服务变动时(消息结构不变)不会
影响另一方服务的运行。
2.异步
使用场景:
与多个服务存在调用关系,对服务响应时间有较高的要求。
与多个服务存在调用关系,对服务响应时间有较高的要求。
引入原因:
(1)不用等待下游服务处理完成,可直接返回服务状态。
(1)不用等待下游服务处理完成,可直接返回服务状态。
3.削峰
使用场景:
请求高并发
请求高并发
引入原因:
(1)请求入中间件,分次消费、处理请求,来减少服务压力。
(1)请求入中间件,分次消费、处理请求,来减少服务压力。
需考虑的问题
1.系统的可用性降低
mq服务状态也会影响系统的可用性,mq挂掉了,也会导致服务对应的功能不可用
2.系统的复杂度提高
技术实现上:服务需添加mq基础API的代码,还要考虑消息重复消费、消息按顺序传递、消息丢失等问题
3.服务间数据的一致性难以保证
需确定下游服务对消息的消费状态,来保证多个服务数据的一致性
0 条评论
下一页