fixed image alt

This commit is contained in:
oopsguy
2017-09-29 01:01:57 +08:00
parent 62997fac7d
commit 25a0549930

View File

@ -23,7 +23,7 @@ Martin Fowler 将这种应用现代化策略称为[杀手应用](http://www.mart
应用此方法后,系统架构如图 7-1 所示。
![图 7-1、将新功能实现为单独的服务而不是将模块添加到单体](resources/7-2.png)
![图 7-1、将新功能实现为单独的服务而不是将模块添加到单体](resources/7-2.png)
除了新服务和传统的单体还有另外两个组件。第一个是请求路由它处理传入的HTTP请求类似于[第二章](2-using-an-api-gateway.md)中描述的 API 网关。路由向新服务发送与新功能相对应的请求。它将遗留的请求路由到单体。
@ -73,7 +73,7 @@ Martin Fowler 将这种应用现代化策略称为[杀手应用](http://www.mart
## 7.4.2、如何提取模块
提取模块的第一步是在模块和单体之间定义一个粗粒度的接口。因为单体需要服务拥有的数据,它很可能是一个双向 API反之亦然。由于模块和应用程序的其余之间存在着复杂的依赖关系和细粒度的交互模式因此实现这样的 API 通常存在挑战。由于领域模型类之间的众多关联,使用[领域模型模式](http://martinfowler.com/eaaCatalog/domainModel.html)来实现的业务逻辑尤其具有挑战性。您通常需要进行重大的代码更改才能打破这些依赖。图 7-3 展示了重构。
![图7-3、来自单体模块可以成为微服务器。](resources/7-3.png)
![图7-3、单体模块可转换为微服务](resources/7-3.png)
一旦实现了粗粒度的接口您就可以将模块变成独立的服务。要做到这点您必须编写代码以使单体和服务通过使用进程间通信IPC机制的 API 进行通信。图 7-3 显示了重构前、重构中和重构后的架构。