技术编程微服务架构的核心关键点( 二 )


- 微服务的统一配置 -
单体应用中可以直接在所开发项目中进行配置管理 。 而在微服务架构中 , 一个应用被拆成众多的微服务 , 并由不同的团队负责 , 而这些微服务中会存在一些共同的配置数据 , 如果还是分散在各个项目中分别进行管理 , 那么面对数十个、上百个应用实例 , 可以预见变更一个配置数据时的难度 。 此外 , 我们也不希望某个应用实例可以独立进行变更 , 从而造成更大的混乱 。 因此 , 如何统一对配置进行管理和发布更新 , 就需要在构建微服务之初进行思考 。
- 微服务的监控 -
微服务的灵活和强大也为开发者带来了“噩梦”一般的调试和跟踪分析体验 。 单体架构下所有的应用都在一起 , 根本不存在难以调试的问题 。 对于调用和跟踪分析的重要性不言而喻 , 特别是当应用正式上线时 , 通过日志分析可以快速定位到问题所在 。
而在微服务场景下调试将难以进行 , 因为一个用户请求会涉及多个微服务应用 , 要在多个应用下统一进行调试将会非常困难 。 应用上线后 , 日志多由服务实例自己管理 , 如何将分散在多个日志之间的调用串联起来 , 形成一个完整的请求调用链 , 将是另外一个非常大的挑战 。 因此 , 针对这个问题及需求 , 业界在微服务监控中提供了日志聚合、日志可视化分析、调用链跟踪等解决方案 , 都可为我们所构建的微服务应用的运维提供强有力的武器 。
- 微服务的部署 -
【技术编程微服务架构的核心关键点】在动辄几十个甚至上百个服务实例在线 , 并且不断上线、下线的场景下 , 开发者一定不愿意通过手工构建和部署这些服务实例 。 此时 , 开发者更愿意将这些处理交付给自动化工具去做 , 一方面可以提升工作效率 , 另一方面通过自动化的方式才能够保障所构建和部署的服务实例一致化 。 因此 , 业界针对这种需求提出了相应的解决方案 , 包括通过构建—发布管道来构建自动化发布流程 。 可以通过Docker工具来快速部署 , 通过k8s来构建自动化部署编排等 。


推荐阅读