当前位置: 首页 > news >正文

云原生微服务中间件选型

Envoy 是一个非常核心且强大的中间件,但云原生微服务生态系统非常庞大,除了 Envoy,还有许多其他关键中间件,它们各有侧重,共同构成了完整的微服务技术栈。

我们可以将这些中间件按功能范畴进行分类梳理:


一、服务网格(Service Mesh)—— Envoy 的“集大成者”

服务网格是微服务通信的基础设施层,而 Envoy 通常是其数据平面的实现。因此,与 Envoy 同层级比较的,是整个服务网格产品

  1. Istio

    • 简介:目前最流行、功能最全的服务网格之一。它使用 Envoy 作为数据平面代理,自身提供强大的控制平面。

    • 特点:流量管理、安全(mTLS、RBAC)、可观测性(集成 Jaeger, Zipkin, Prometheus, Grafana)功能极其丰富。

    • 定位:适合需要高度可控、复杂路由策略和安全要求严苛的大型企业。

  2. Linkerd

    • 简介:CNCF 毕业项目,标榜“轻量级”和“高性能”。它的数据平面使用用 Rust 编写的 Linkerd2-proxy,而非 Envoy。

    • 特点:资源消耗远小于 Istio,安装和运维非常简单,对应用零侵入。安全性(自动 mTLS)和基础的可观测性功能都具备。

    • 定位:追求简单、高效、低开销,希望快速获得服务网格基础好处的团队。“Just works” 是它的哲学。

  3. Kuma

    • 简介:由 Kong 公司捐赠给 CNCF 的项目,Envoy 是其数据平面。

    • 特点:天生支持多集群、多云和混合环境(Kubernetes 和 VM 统一管理)。与 Kong API 网关有很好的集成。

    • 定位:环境复杂,需要统一管理 Kubernetes 和传统虚拟机服务的用户。

  4. Consul Connect

    • 简介:HashiCorp Consul(服务发现和配置工具)内置的服务网格功能。

    • 特点:与 Consul 的服务发现无缝集成,数据平面支持 Envoy 和自身开发的代理。适合已经广泛使用 HashiCorp 生态(Terraform, Vault)的公司。

    • 定位:HashiCorp 生态的忠实用户,希望一站式解决服务发现、配置和服务网格需求。


二、API 网关(API Gateway)—— 南北向流量的守门员

API 网关处理外部客户端到集群内部的流量,常与服务网格协同工作(服务网格处理东西向流量)。

  1. Kong

    • 简介:基于 Nginx/OpenResty 的高性能、可扩展的 API 网关和微服务管理平台。CNCF 项目。

    • 特点:插件生态非常丰富(认证、限流、日志等),性能和稳定性久经考验。有开源版和企业版。

    • 与 Envoy 关系:Kong 也有基于 Envoy 的现代版本 Kong Mesh 和 Kong for Kubernetes

  2. Apache APISIX

    • 简介:动态、实时、高性能的 API 网关,CNCF 毕业项目。是 Kong 的一个强力竞争者。

    • 特点:性能极高(测试中常优于 Kong),所有配置都可动态热更新,无需重启。插件生态同样丰富。

    • 与 Envoy 关系:APISIX 支持使用 APISIX-Ingress-Controller 来管理 Envoy 作为数据平面。

  3. Gloo Edge

    • 简介:由 Solo.io 开发,专为云原生和微服务架构设计的 API 网关,其数据平面就是 Envoy

    • 特点:对 gRPC、HTTP/2 和函数(如 AWS Lambda)有很好的支持。其“功能路由”概念可以智能地将 API 请求路由到最合适的后端。

  4. Emissary-ingress(原 Ambassador)

    • 简介:一个基于 Envoy 的、为 Kubernetes 设计的开源 API 网关/Ingress 控制器。

    • 特点:完全通过 Kubernetes 的 CRD 进行配置,对于 Kubernetes 用户来说非常自然和友好。


三、核心中间件(按功能划分)

这些是构建微服务架构所必需的独立组件。

  1. 服务发现与配置中心

    • Consul:HashiCorp 出品,提供服务发现、健康检查、键值存储(配置)功能。

    • Nacos:阿里巴巴开源,更符合国内生态,集服务发现、配置管理于一身,功能类似 Spring Cloud Config + Eureka。

    • ZooKeeper:老牌的分布式协调服务,被很多大数据和分布式项目(如 Kafka, Dubbo)作为基础依赖。

    • etcd:Kubernetes 的核心数据库,也可单独用作高可用的键值存储和配置中心。

  2. RPC 框架(远程过程调用)

    • gRPC:Google 开源的高性能、跨语言的 RPC 框架,基于 HTTP/2 和 Protocol Buffers。是现代微服务通信的首选之一。

    • Apache Dubbo:阿里巴巴开源的高性能 Java RPC 框架,在国内有非常广泛的应用。

    • Thrift:Apache 项目,跨语言服务开发框架。

  3. 消息中间件(异步通信)

    • Apache Kafka:高吞吐量的分布式消息队列,常用于实时流数据处理、事件溯源等场景。

    • RabbitMQ:实现了高级消息队列协议(AMQP)的开源消息代理,功能丰富,可靠性高。

    • Apache RocketMQ:阿里巴巴开源的低延迟、高可用的分布式消息队列。

    • NATS:轻量级、高性能的云原生消息系统,特别适合微服务间的简单通信。

  4. 可观测性(Observability)

    • 链路追踪JaegerZipkinSkyWalking

    • 指标监控Prometheus(事实标准),Grafana(可视化)。

    • 日志Loki(轻量级日志聚合,来自 Grafana Labs),ELK/EFK Stack(Elasticsearch, Logstash/Fluentd, Kibana)。

  5. 安全

    • SPIFFE/SPIRE:为每个工作负载提供安全身份的标准框架,是实现自动 mTLS 的基石。

    • OAuth2 Proxy / Keycloak:负责身份认证和授权的中间件。


总结与选型建议

类别核心问题推荐选项
服务网格需要精细化治理服务间通信、增强安全性和可观测性?Istio(功能全面)、Linkerd(简单轻量)
API 网关需要统一管理外部 API 访问、鉴权、限流?Kong / APISIX(生态成熟)、Gloo Edge(云原生友好)
服务发现/配置如何动态发现服务和管理配置?Consul(生态集成)、Nacos(Java/Spring Cloud 生态)
RPC 框架服务间用什么协议进行高效通信?gRPC(性能、跨语言)、Dubbo(Java 技术栈)
消息中间件如何实现服务间的异步和解耦?Kafka(高吞吐、流处理)、RabbitMQ(功能丰富、稳定)

核心思想:Envoy 是一个强大的底层网络代理组件,而上面列出的大多数产品是构建在底层组件之上、提供特定领域功能的解决方案。例如,Istio 和 Gloo Edge 都是基于 Envoy 构建的,但它们解决的是不同层面的问题(服务网格 vs API 网关)。

在实际选型时,应根据你的具体需求(团队规模、技术栈、复杂度容忍度、性能要求)来组合这些中间件,形成最适合自己的技术栈。

http://www.dtcms.com/a/403029.html

相关文章:

  • Python/JS/Go/Java同步学习(第二十四篇)四语言“元组概念“对照表: 雷影“老板“发飙要求员工下班留校培训风暴(附源码/截图/参数表/避坑指南)
  • vue3在 script 中定义组件
  • 【CSRF】防御
  • vue从template模板到真实渲染在页面上发生了什么
  • 从构建工具到状态管理:React项目全栈技术选型指南
  • 做彩票网站电话多少钱湛江网站网站建设
  • 云手机性能会受到哪些因素的影响?
  • app网站维护网站开发众包平台
  • [iOS] OC高级编程 - 引用计数 (1)
  • MyBatis-Plus实用指南:玩转自动化与高效CRUD
  • 揭开AI神秘面纱:大语言模型原理与Python极简开发
  • cmake详解
  • RabbitMQ-高可用机制
  • 云手机对网络游戏的重要性
  • 莱州做网站设计院一般年薪
  • Java 将 PDF 转换为 HTML:高效解决方案与实践
  • 从Prompt到Answer:详解AI Agent架构中的ReAct模式与工具调用
  • 六、OpenCV中的图像读写
  • 设计案例的网站pc开奖网站建设
  • 10月底实习准备-Mysql(按面试频率准备)
  • Flink Watermark机制解析
  • Windows系统Web UI自动化测试学习系列2--环境搭建--Python-PyCharm-Selenium
  • 实战:基于HarmonyOS 5构建分布式聊天通讯应用
  • 承德网站建设公司网页设计模板设计
  • HCIP-IoT/H52-111 真题详解(章节C),接入技术和网络设计 /Part1
  • 灵画-AI绘画小程序
  • 从拆盒到共创:手办盲盒抽赏小程序的多元体验与文化联结
  • 做网站必须学php吗现在感染症状有哪些
  • 如何在电脑上备份Redmi
  • 云计算实验1——CentOS中hadoop的安装