微服务之集成(四)
1. 寻找理想的集成技术 微服务之间通信的方式的选择非常多样化,但哪个是正确的呢?SOAP ? XML-RPC ? REST ? Protocol Buffers?后面会逐一讨论。 首先,我们要考虑的是,我们到底希望从这些技术中得到什么。 1.1 避免破坏性修改 有时候,对某个服务做的一些修改会导致该服务的消费方也随之发生改变。但是,我们希望选用的技术可以尽量避免这种情况的发生。 1.2 保证API的技术无关性 保证微服务之间的通信方式的技术无关性是非常重要的。这就意味着,不应该选择哪种对微服务的具体实现技术有限制的集成方式。 1.3 使你的服务易于消费方使用 消费方应该很容易的使用我们的服务。理想情况下,消费方应该可以使用任何技术来实现,从另一方面来说,提供一个客户端库也可以简化消费方的使用。但是通常这种库与其他我们想要得到的东西不可兼得。例如,使用客户端库对于消费方来说很方便,但是会造成耦合的增加。 1.4 隐藏内部实现细节 我们不希望消费方与服务的内部实现细节绑定在一起,因为这会增加耦合。所以,所有倾向于暴露内部实现细节的技术都不应该被采用。 2.为用户创建接口 3.共享数据库 目前业界最常见的集成形式应该就是数据库集成了。使用这种方式时,如果其他服务想要从一个服务获取信息,可以直接访问数据库。如果想要修改,也可以直接在数据库中修改。 这种方式看起来非常简单