可以把一个服务路由到另一个服务上也可以集中化管理业务逻辑规则和验证等等。它还有一个重要功能是消息队列和事件驱动的消息传递比如把服务转化成协议。各服务间可能有复杂的依赖关系。 微服务通常由重写一个模块开始。要把整个巨石型的应用重写是有很大的风险的也不一定必要。我们向微服务迁移的时候通常从
耦合度最低的模块或对扩展
性要求最高地重写可以尝试最新的技术和 加拿大华侨华人数据 语言和框架然 后单独布署。它通常不依赖其他服务。微服务中常用的 的模式主要目的也不是重用代码而是减少客户端和服务间的往来。 模式不等同与模式我们可以使用如之类的调用甚至返回不完整数据。喜欢水平服务微服务喜欢垂直服务 设计喜
欢给服务分层(如 模式)。我们常常见到一个服务层 客户互动记录等数据 的设计美其名曰 。这种设计要求所有的服务都通过这个服务层来获取数据。这种设计非常不灵活比如每次数据层的改动都可能影响到所有业务层的服务。而每个微服务通常有它自己独立的 。我们在拆分
数据库时可以适当的做些去范式化()让它不需要依赖其他服务的数据。 微服务通常是直接面对用户的每个微服务通常直接为用户提供某个功能。类似的功能可能针对手机有一个服务针对机顶盒是另外一个服务。在设计模式中这种情况通常会用到-的模式返回一个大而全的结果兼顾到所有的客户端的需求。喜欢自上而下微服务喜欢自下而上 架构在设计开始时会
先定义好服务合同
它喜欢集中管理所有的服务包括集中 买入铅 管理业务逻辑数据流程等等。它使用 和等方法来集中管理服务。架构通常会预先把每个模块服务接都定义好。模块系统间的通讯必须遵守这些接各服务是针对他们的调用者。 架构适用于之类的架构
方法论。 微服务则敏捷得多。只要用户用得到就先把这个服务挖出来。然后针对性的快速确认业务需求快速开发迭代。 六怎么具体实践微服务 要实际的应用微服务需要解决一下四点问题客户端如何访问这些服务每个服务之间如何通信如此多的服务如何
实现?服务挂了如何解决?备份方案应急处理机制客户端如何访问这些服务 原来的方式开发所有的服务都是本地的可以直接调用现在按功能拆分成独