软件架构模式与微服务基础解析
1. 企业服务总线(ESB)与面向服务架构(SOA)
在示例银行架构中,ESB 处于核心位置,负责业务流程编排、业务数据转换、消息格式更改以及提供与协议无关的传输。虽然可以构建不依赖 ESB 的 SOA 架构,但这样服务之间会直接依赖,形成紧密耦合且缺乏抽象。
SOA 架构实现和测试并不简单,但具有良好的可扩展性。不过,实现 SOA 成本较高,因为需要依赖第三方软件来构建 ESB,且可能并非需要 ESB 提供的所有功能。此外,ESB 可能成为单点故障。
2. 微服务架构模式
微服务架构模式倡导在有限的上下文中使用小型服务。它是一种分布式架构,与 SOA 有相似之处,但也存在差异。在微服务架构中,服务粒度更细,专注于特定目的;而在 SOA 中,服务更偏向企业级,涵盖一段功能。
在微服务架构中,应用程序被拆分为松散耦合的小型自包含组件,即服务。每个服务在一个进程中运行,必要时以协议感知的同步或异步方式与其他服务连接。每个微服务负责在有限的上下文中执行特定的业务功能,整个应用程序是这些松散耦合服务的集合。与 SOA 不同,微服务架构中不涉及消息总线,服务调用者需要了解被调用服务的契约和协议。
以酒店行业为例,应用程序不再是一个处理整个预订流程的单体应用,而是被拆分为多个特定领域的服务:
- 酒店信息服务 :负责酒店的所有信息,如人口统计信息、房间数量、设施信息、联系信息等。若要修改酒店相关信息,只需对该服务进行更改。
- 价格信息服务 :根据需求或即将到来的特定活动,管理特定酒店特定夜晚每种房型的价
超级会员免费看
订阅专栏 解锁全文
170万+

被折叠的 条评论
为什么被折叠?



