Easegress全功能型流量调度和编排系统

联合创作 · 2023-09-27 11:42

Easegress 是一个云原生流量编排系统,设计用于:



  • 高可用性:内置的 Raft 共识和领导者选举提供 99.99% 的可用性。

  • 流量编排:对每个流量管道的各种过滤器进行简单的编排。

  • 高性能:轻量级和基本功能可加快性能。

  • 可观察性:以可读的方式周期性地有许多有意义的统计数据。

  • 可扩展性:使用高级编程语言可以轻松开发自己的过滤器或控制器。

  • 集成:简单的接口使其易于与其他系统集成,例如 Kubernetes Ingress、EaseMesh sidecar、Workflow 等。


Easegress 的基本常见用法是为后端服务器快速设置代理。


Easegress 的架构:



特性:



  • 服务管理

    • 多种协议:

      • HTTP/1.1

      • HTTP/2

      • HTTP/3(QUIC)

      • MQTT(即将推出)


    • 丰富的路由规则:精确路径、路径前缀、路径的正则表达式、方法、标头。

    • 弹性和容错

      • 断路器:暂时阻断可能的故障。

      • 速率限制器:限制传入请求的速率。

      • 重试器:重复失败的执行。

      • 时间限制器:限制执行的持续时间。


    • 部署管理

      • 蓝绿策略:一次切换流量。

      • Canary 策略:稍微安排流量。


    • API 管理

      • API聚合:聚合多个API的结果。

      • API 编排:编排API的流程。


    • 安全

      • IP 过滤器:限制对 IP 地址的访问。

      • 静态 HTTPS:静态证书文件。

      • API 签名:支持HMAC验证。

      • JWT 验证:验证JWT 令牌

      • OAuth2:验证OAuth/2请求。

      • Let's Encrypt:自动管理证书文件。


    • 管道过滤机制

      • 责任链模式:编排过滤器链。

      • 过滤器管理:使开发新过滤器变得容易。


    • 服务网格

      • Mesh Master:是管理网格服务生命周期的控制平面。

      • Mesh Sidecar:以数据平面为端点,做流量拦截和路由。

      • Mesh Ingress Controller:是特定于网格的入口控制器,用于将外部流量路由到网格服务。

        注意:此功能由EaseMesh利用




    • 第三方集成

      • FaaS与无服务器平台 Knative 集成。

      • 服务发现与 Eureka、Consul、Etcd 和 Zookeeper 集成。

      • 入口控制器作为入口控制器与 Kubernetes 集成。



  • 可扩展性

  • 高性能和可用性

    • 适应:在处理链中适应请求、响应。

    • 验证:标头验证、OAuth2、JWT 和 HMAC 验证。

    • 负载均衡:循环、随机、加权随机、ip 哈希、头部哈希。

    • 缓存:用于后端服务器。

    • 压缩:压缩响应体。

    • 热更新:在不丢失连接的情况下更新 Easegress 的配置和二进制文件。


  • Operation

    • 易于集成:命令行( egctl)、MegaEase Portal、HTTP 客户端如 curl、postman 等。

    • 分布式追踪

    • 可观察性

      • 节点:角色(leader、writer、reader)、健康与否、上次心跳时间等

      • 流量:多维度:服务器和后端。

        • 吞吐量:请求计数、TPS/m1、m5、m15、错误百分比等的总数和错误统计。

        • 延迟: p25、p50、p75、p95、98、p99、p999。

        • 数据大小:请求和响应大小。

        • 状态代码: HTTP 状态代码。

        • TopN:按聚合API排序(仅在服务器维度)。




浏览 19
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报