微服务设计 (4-集成)
集成
理想集成技术的条件
- 避免破坏性修改
有时候,对某个服务做的一些修改会导致该服务的消费方也随之发生改变。但是我们希望选用的技术可以尽量避免这种情况的发生。比如,如果一个微服务在一个响应中添加了一个字段,那么已有的消费方不应该受到影响。
- 保证 A P I 的技术无关性
保证微服务之间通信方式的技术无关性是非常重要的。这就意味着,不应该选择那种对微服务的具体实现技术有限制的集成方式。
使你的服务易于消费方使用
隐藏内部实现细节
为用户创建接口
创建客户这个业务,乍一看似乎就是简单的 CRUD 操作,但对于大多数系统来说并不止这些。添加新客户可能会触发一个新的流程,比如进行付账设置、发送欢迎邮件等。而且修改或者删除客户也可能会触发其他的业务流程。
共享数据库
如果其他服务想要从一个服务获取信息,可以直接访问数据库。如果想修改,也可以直接在数据库中修改。
缺点:
外部系统能够查看内部实现细节,并与其绑定在一起
消费方与特定的技术选择绑定在了一起
降低内聚性
同步与异步
两种不同的通信模式有着各自的协作风格,即请求/ 响应或者基于事件。对于请求/ 响应来说,客户端发起一个请求,然后等待响应。这种模式能够与同步通信模式很好地匹配,但异步通信也可以使用这种模式。我可以发起一个请求,然后注册一个回调,当服务端操作结束之后,会调用该回调。
转载请注明:转载自srzyhead的博客(https://srzyhead.github.io)
本文链接地址: 微服务设计 (4-集成)