zou8944
2022-10-27 15:49:28 +08:00
选 2 ,Spring Cloud 是以 SDK 提供微服务治理的形式,属于上一代产品。
如今云原生提得这么火,大方向就是将所有基础功能下沉到基础设施。如 7 楼所说,Spring Cloud 的每一个组件在 K8s 中都有对应的概念
- 服务注册和发现:对应 Service Name ,由 Core DNS 实现
- 负载均衡:对应 Kubeproxy ,走 iptables 和 LVS 那一套,这个不用自己配置,自带
- 网关:对应 Ingress 。只不过 K8s 自带的 Nginx Ingress Controller 功能比较弱,只能充当流量网关,如果需要业务网关,依然可以使用 Spring Cloud Gateway ,也可以使用 Kong 、ApiSix 之类的,不过个人感觉没必要
- 配置中心:config map 和 secret
监控三要素:tracing 、metrics 、logging ,分别对应
- skywalking
- prometheus
- ELK
当然,K8s 是一个非常复杂的东西,完全不建议自建,通常我们都会购买云服务,如阿里云的 ACK 。搭配其它云服务如 SLS 等,基本是不需要自己搭建任何东西的。你唯一需要做的就是熟练地使用它们。
个人认为云原生的最终形式就是 Serverless ,只不过目前由于技术原因 Serverless 有冷启动、资源分配不稳定等问题并不能应用到所有场景。