- 发布日期:2024-12-21 15:57 点击次数:138
经典微服务架构的问题
耦合问题:上下游服务强依赖,服务稳定性差,调用链长,接口性能下降,数据库作为中心节点影响稳定性且难扩展。
接口膨胀问题:数据操作场景多、调用关系复杂,导致接口方法众多,如用户服务接口包含多种用户操作方法。
不同场景技术选型权衡:互联网场景注重高吞吐、易扩容和快速开发;金融交易场景强调低延迟、高稳定性和复杂业务易维护。
事件驱动型架构的方案
EDA主要特征:服务关系变更,实现异步化和数据自治,本质是解耦数据依赖,避免上下游依赖和接口膨胀问题。
事件类型与特征:包括有状态变更和无状态变更,驱动方式有数据驱动和请求驱动,涉及数据存储位置、结构、获取方式及可用性保障。
数据存储与获取:数据可存于本地缓存、旁路集中存储或可选快照文件;存储结构有流水和物化两种模式;获取数据时,原则上用统一方式,如SQL描述,且query和sub能力对等。
可用性保障:内存状态异常恢复可从流水或快照恢复,有状态服务高可用可通过同步消费实现,主备独立或同步内存状态,但各有优劣。
展开剩余81%事件驱动型架构的问题
事务难以支持:分布式 + 异步环境下,事务支持困难,需采用BASE思路,支持Batch能力。
异步通讯管理复杂:异步为松耦合,但易混乱,需围绕Topic&DTO进行管理,包括开发态定义和运行态生产/消费管理。
总线集中式风险:总线存在集中式风险,可采用完全隔离、多接或旁路桥接方式,但各有挑战。
总结和推荐建议:适用于能接受最终一致性的复杂业务场景,开发时先局部使用并上下游整体切换,发挥优势,同时需中台投入约束管理,因其与传统架构差异大,异步管理复杂且很多能力需自研。
免责声明:我们尊重知识产权、数据隐私,只做内容的收集、整理及分享,报告内容来源于网络,报告版权归原撰写发布机构所有,通过公开合法渠道获得,如涉及侵权,请及时联系我们删除,如对报告内容存疑,请与撰写、发布机构联系
发布于:广东省