上QQ阅读APP看书,第一时间看更新
2.12 利用共享服务库
如果选择一致的微服务方法,那么拥有一个共享库(或多个库)是非常有用的,所有服务都可以使用这个库并实现许多横向交互,例如:
·配置
·密钥管理
·服务发现
·API封装
·日志
·分布式跟踪
这些库可以实现与其他微服务或第三方依赖交互的整个工作流,例如身份验证和授权,并可以为每个微服务完成繁重的工作。这样,微服务仅负责实现自己的功能并正确使用这些库就可以。
即使选择多语言编程,该方法也同样适用。你可以为所有支持的语言实现此库,然后在编写服务时可以根据实际情况选择不同的语言来实现。
然而,与共享库的维护和发展以及微服务使用它们的速度相关的成本是存在的。真正的危险是不同的微服务将使用不同版本的共享库,并且使用不同版本共享库的服务在尝试通信时,会导致一些细微(或不那么细微)的问题。
我们将在本书后面探讨的服务网格方法可以为该问题提供一些答案。