引入 Istio 将原有 Spring Cloud Kubernetes 架构替换为 Spring Boot Istio,与基于 Spring Cloud 编程式基础设施彻底脱钩。
在原本由 Kubernetes 提供的 服务发现、服务配置、负载均衡基础上,追加上服务网格实现的:
- 熔断降级
- arch-iam 登录 RPC 调用 arch-user 模块,Envoy Proxy 将提供熔断器功能
- 认证授权
- /arch-app/ping 接口仅允许保护 JWT 令牌的用户访问
- /arch-users/rpc/user/{username} 接口仅允许微服务内部访问(为了验证角色控制,也允许 Role 为 ADMIN 的请求用户访问)
- sanzang/sanzang 账户正常访问
- wukong/wukong 账户访问,返回 403 RBAC: access denied
- API 网关
- 提供 /serviceId/** 前缀的反向代理
- 提供 /api-docs 的 API 文档聚合
至此将 Spring Cloud 编程式实现的微服务基础设施完全交给云原生实现,使的开发人员只关注业务层面。