Spring Cloud 和 Cloud Native(云原生)是两个紧密相关但又有所区别的技术体系,前者是基于 Spring 生态的微服务框架集合,后者是更广泛的云原生架构方法论及技术栈。以下是两者包含的主要技术框架和组件:

一、Spring Cloud 核心技术框架

Spring Cloud 专注于微服务架构的落地,提供了一系列组件解决服务治理、通信、配置等问题,核心包括:

  1. 服务注册与发现

    • Eureka:Netflix 开源的服务注册中心,支持高可用部署。
    • Consul:HashiCorp 开源,兼具服务发现、配置管理和分布式一致性能力。
    • Nacos:阿里开源,集服务注册发现、配置管理于一体,支持动态配置和服务治理。
    • Zookeeper:基于 ZAB 协议的分布式协调工具,可作为服务注册中心(Curator 框架常配合使用)。
  2. 配置中心

    • Spring Cloud Config:集中式配置管理,支持 Git 仓库存储配置。
    • Nacos:同时支持配置管理和服务发现,动态配置能力更强。
    • Apollo:携程开源,支持多环境、多集群配置管理,可视化界面丰富。
  3. 服务熔断与降级

    • Hystrix:Netflix 开源,解决服务雪崩问题(已停止维护,推荐替代方案)。
    • Resilience4j:轻量级熔断框架,专为 Java 8+ 和函数式编程设计,替代 Hystrix 的主流选择。
    • Sentinel:阿里开源,支持流量控制、熔断降级、系统负载保护,适配 Spring Cloud 生态。
  4. API 网关

    • Spring Cloud Gateway:Spring 官方推出的网关,基于 Netty 异步非阻塞,支持路由、过滤、负载均衡等。
    • Zuul:Netflix 开源的网关(Zuul 1 同步阻塞,Zuul 2 异步非阻塞,但应用较少)。
  5. 负载均衡

    • Ribbon:Netflix 开源的客户端负载均衡器(已停止维护)。
    • Spring Cloud LoadBalancer:Spring 官方推出的负载均衡组件,替代 Ribbon。
  6. 服务通信

    • OpenFeign:声明式 HTTP 客户端,基于 Ribbon/LoadBalance 实现负载均衡,简化服务间调用。
    • Spring Cloud Stream:消息驱动开发框架,适配 Kafka、RabbitMQ 等消息中间件,实现服务解耦。
  7. 分布式追踪

    • Spring Cloud Sleuth + Zipkin:Sleuth 生成追踪日志,Zipkin 收集并可视化分布式调用链路。
    • SkyWalking:国产分布式追踪、监控工具,支持 Spring Cloud 全链路追踪。
  8. 安全与认证

    • Spring Cloud Security:基于 Spring Security 的微服务安全框架,支持 OAuth2、JWT 等认证方式。
    • Spring Cloud Alibaba Sentinel:除熔断外,也支持接口权限控制。

二、Cloud Native(云原生)技术栈

Cloud Native 是一套构建和运行在云环境中的技术体系,强调容器化、微服务、DevOps 等理念,核心技术包括:

  1. 容器化技术

    • Docker:应用容器引擎,将应用及依赖打包为镜像,实现环境一致性。
    • containerd:Docker 剥离出的容器运行时核心组件,更轻量、标准化。
  2. 容器编排与调度

    • Kubernetes(K8s):云原生核心编排平台,负责容器的部署、扩缩容、负载均衡、自愈等。
    • K3s:轻量级 Kubernetes,适合边缘计算、物联网场景。
  3. 服务网格(Service Mesh)

    • Istio:最流行的服务网格,通过 Sidecar 代理实现流量管理、熔断、监控、安全(mTLS)等,解耦业务代码与治理逻辑。
    • Linkerd:轻量级服务网格,性能更优,配置简单。
  4. CI/CD 与 DevOps 工具链

    • Jenkins:老牌 CI/CD 工具,插件丰富,支持自动化构建、测试、部署。
    • GitLab CI/CD:与 GitLab 代码仓库集成的 CI/CD 工具,配置简单。
    • ArgoCD:基于 GitOps 理念的持续部署工具,专注于 Kubernetes 应用部署。
    • Tekton:Kubernetes 原生的 CI/CD 框架,可自定义流水线。
  5. 监控与可观测性

    • Prometheus:时序数据库,用于 metrics 数据采集和存储。
    • Grafana:配合 Prometheus 实现监控数据可视化(图表、告警)。
    • ELK Stack(Elasticsearch + Logstash + Kibana):日志收集、存储、分析与可视化。
    • Loki:轻量级日志聚合系统,与 Prometheus、Grafana 无缝集成。
  6. 消息队列与事件驱动

    • Kafka:高吞吐、低延迟的分布式消息系统,适合大数据场景。
    • RabbitMQ:支持多种消息模式(点对点、发布订阅等),易用性强。
    • Pulsar:多租户支持的云原生消息系统,兼容 Kafka 协议。
  7. 存储与数据库

    • MinIO:兼容 S3 协议的对象存储,适合云原生环境的文件存储。
    • Ceph:分布式存储系统,支持块存储、对象存储、文件系统。
    • 云原生数据库:Vitess(MySQL 分布式解决方案)、CockroachDB(分布式 SQL 数据库)等。
  8. Serverless 与无服务器架构

    • Knative:基于 Kubernetes 的 Serverless 框架,简化容器化应用的部署和扩缩容。
    • AWS Lambda/Azure Functions:公有云厂商提供的 Serverless 服务(非开源)。

总结

  • Spring Cloud 是微服务开发的“应用层”框架,聚焦于服务治理、通信等业务相关能力;
  • Cloud Native 是更底层的“基础设施层”技术体系,聚焦于容器化、编排、可观测性等云环境支撑能力。

实际项目中,两者常结合使用:用 Spring Cloud 开发微服务应用,再通过 Docker 容器化,最后部署到 Kubernetes 集群,配合 Istio、Prometheus 等工具实现云原生架构。