微服务系统梳理维护
微服务系统需要定期梳理,以跟踪系统的变更和分析可能存在的瓶颈。
梳理系统服务属于系统维护与治理职责。
服务治理(SOA Governance) 起源于 SOA 面向服务架构,随微服务架构的火热而变的普及,但其最终目的是要对微服务框架下的大量微服务可能出现的问题进行治理。
服务治理本身一个大而泛的概念,没有明确的官方或标准化组织对其给出定义;服务治理的概念、内涵和实践,在业界还没有达成共识,更无法形成行业标准。随着系统的复杂程度越来越高,服务治理的需求越来越紧迫,并已成为一大痛点。
分布式环境的一个非常重要的理论是 CAP 原则,即一个分布式系统不可能同时满足 C(一致性)、A(可用性) 和 P(分区容错)。而分区容错是分布式架构中必须要保证的,因此只能在 A 与 C 之间进行权衡。
Zookeeper 保证的是 CP , 而 Eureka 保证的则是 AP。
在 Spring Cloud 微服务架构中,使用 Spring Boot Admin 对微服务进行监控和管理。
关于 Spring Boot Admin 的基本应用,可参考 Spring Boot 2实践系列(十六):Spring Boot Admin - Actuator 监控管理 Web 框架 ,Spring Boot Actuator 可参考 Spring Boot 2实践系列(六):应用监控模块 Actuator 详解和集成 ,Spring Boot Admin 2.14 官方文档。
微服务之间的相互调用,需要一套认证机制来确认调用是安全的。这不同于在 API 网关的统一认证,主要是防止在微服务暴露在外网的情况下,内部接口被外部恶意调用。
如果微服务是在内网,对外暴露的只有 API 网关,则可以不用做认证。本篇以 JWT 技术来实现安全认证。更多关于 JWT ,可参考分布式应用系列(一):详细理解 JWT(Json Web Token)。