知识卡片
烟囱式微内核事件驱动是SOA登场前的三次拆分尝试
内容
在SOA正式登场前,业界摸索出三种递进的单体拆分模式,各自解决了前一种模式暴露 的新问题。烟囱式架构(信息孤岛)最简单:不同子系统各自独立,互不通信——但现实 中的系统很少真正毫无交互,人员/组织/权限这类主数据往往需要共享,烟囱式的”完全 不通信”因此不现实。微内核架构(插件式架构)把人员权限等公共数据和服务抽成一个 所有业务都依赖的核心(Kernel),具体业务作为插件挂载——但它假设插件之间互不 认识、不直接交互,这个假设在很多真实场景里也不成立。事件驱动架构则在子系统间 搭建事件队列管道:外部消息以事件形式进管道,各子系统按需订阅、处理、甚至发布 新事件,第一次真正做到”既能独立部署又能顺畅通信”。事件驱动架构成熟、加上远程 调用领域SOAP协议诞生后,SOA登台所需的全部前置条件才算齐备。三者演进的共同 逻辑是:每一步都在”独立自治”和”能够协作”这对矛盾上找到更好的平衡点。
参考来源
- 位置:《凤凰架构:构建可靠的大型分布式系统》第1章"服务架构演进史"1.3节
"SOA时代"(源文件:_epub-src对应OEBPS/Text/chapter7.xhtml)
- 结论依据:原文依次介绍烟囱式(完全独立但无法共享公共数据)、微内核(共享
核心但插件间不直接交互)、事件驱动(通过事件队列实现独立且能通信)三种
模式,并说明事件驱动架构成熟后SOA才具备登场条件,直接支撑三者是递进
拆分尝试这一结论。
- 原始内容:为了能让子系统互相通信,一种可行的方案是在子系统之间建立一套
事件队列管道……如此,每一条消息的处理者都是独立的、高度解耦的,但又能与
其他处理者通过事件管道进行交互……当架构演化至事件驱动架构时……SOA已经
有了登上软件架构舞台所需要的全部前置条件。