集成

理想集成技术的条件

  • 避免破坏性修改

有时候,对某个服务做的一些修改会导致该服务的消费方也随之发生改变。但是我们希望选用的技术可以尽量避免这种情况的发生。比如,如果一个微服务在一个响应中添加了一个字段,那么已有的消费方不应该受到影响。

  • 保证 A P I 的技术无关性

保证微服务之间通信方式的技术无关性是非常重要的。这就意味着,不应该选择那种对微服务的具体实现技术有限制的集成方式。

  • 使你的服务易于消费方使用

  • 隐藏内部实现细节

为用户创建接口

创建客户这个业务,乍一看似乎就是简单的 CRUD 操作,但对于大多数系统来说并不止这些。添加新客户可能会触发一个新的流程,比如进行付账设置、发送欢迎邮件等。而且修改或者删除客户也可能会触发其他的业务流程。

共享数据库

如果其他服务想要从一个服务获取信息,可以直接访问数据库。如果想修改,也可以直接在数据库中修改。

缺点:

  • 外部系统能够查看内部实现细节,并与其绑定在一起

  • 消费方与特定的技术选择绑定在了一起

  • 降低内聚性

同步与异步

两种不同的通信模式有着各自的协作风格,即请求/ 响应或者基于事件。对于请求/ 响应来说,客户端发起一个请求,然后等待响应。这种模式能够与同步通信模式很好地匹配,但异步通信也可以使用这种模式。我可以发起一个请求,然后注册一个回调,当服务端操作结束之后,会调用该回调。

转载请注明:转载自srzyhead的博客(https://srzyhead.github.io)

本文链接地址: 微服务设计 (4-集成)