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

联合创作 · 2023-09-27

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排序(仅在服务器维度)。
浏览 6
点赞
评论
收藏
分享

手机扫一扫分享

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

手机扫一扫分享

编辑
举报