Skip to content

Latest commit

 

History

History
148 lines (125 loc) · 8.4 KB

README.zh-CN.md

File metadata and controls

148 lines (125 loc) · 8.4 KB

Easegress

Go Report Card GitHub Workflow Status (branch) codecov Docker pulls License GitHub go.mod Go version Join Easegress Slack

Easegress logo

Easegress 简介

Easegress是一个云原生流量协调系统,具有以下特性:

  • 高可用性: 内置 Raft 共识和选举算法,提供 99.99% 的可用性。
  • 流量编排: 支持多种流量过滤器,轻松编排流量处理流程(Pipeline)。
  • 高性能: 基础功能采用轻量级方法实现,性能优异。
  • 可观察性: 周期性报告多种统计数据,系统状态尽在掌握。
  • 可扩展性: 良好的 API 设计,不必知道底层细节,也能自己开发过滤器和控制器。
  • 集成性: 接口简单,易于与其他系统集成,如: Kubernetes Ingress Controller、EaseMesh 边车、工作流等。

下面是其架构图:

架构

功能

  • 服务管理
    • 支持多种协议
      • HTTP/1.1
      • HTTP/2
      • HTTP/3(QUIC)
      • MQTT
    • 路由规则:精确路径、路径前缀、路径的正则表达式、方法、标头、客户端IP地址。
    • 弹性和容错
      • 断路器: 暂时阻止可能的故障。
      • 速率限制: 限制请求的速率。
      • 重试:重试失败的请求。
      • 时间限制:限制请求的执行时间。
    • 部署管理
      • 蓝绿部署:一次性切换流量。
      • 金丝雀部署:按着色编排流量。
    • API管理
      • API聚合:聚合多个API的结果。
      • API编排:编排API的处理流程。
    • 安全
      • IP过滤:限制对IP地址/地址段的访问。
      • 静态HTTPS:静态证书文件。
      • API签名:支持 HMAC 验证。
      • JWT验证:验证 JWT Token
      • OAuth2:验证 OAuth/2 请求。
      • Let's Encrypt: 自动管理证书文件。
    • 管道过滤机制
      • 过滤器管理:轻松开发新过滤器。
    • 服务网格
      • 网格主控:是管理网格服务生命周期的控制平面。
      • 边车:是数据平面,作为端点进行流量拦截和路由。
      • 网格入口控制器:是针对网格的入口控制器,将外部流量路由到网格服务。

        注意,EaseMesh使用了此功能。

    • 第三方的集成
      • FaaS:与 ServerLess 平台 Knative 集成。
      • 服务发现:与 Eureka、Consul、Etcd 和 Zookeeper 集成。
      • 入口控制器:与 Kubernetes 集成,作为入口控制器。
  • 扩展性
    • WebAssembly:执行用户开发的 WebAssembly 代码。
  • 高性能和可用性
    • 改编:使用过滤器改编请求和应答。
    • 验证:标头验证、OAuth2、JWT 和 HMAC 验证。
    • 负载平衡:轮询、随机、加权随机、IP哈希、标头哈希,支持会话锁定。
    • 缓存:缓存后端服务的应答,减少对后端服务的请求量。
    • 压缩:减少应答数据的体积。
    • 热更新:线上更新 Easegress 的配置和二进制文件,服务不中断。
  • 操作
    • 易于集成:命令行(egctl)、Easegress Portal,以及 HTTP 客户端,如 curl、postman 等。
    • 分布式跟踪
    • 可观察性
      • 节点:角色(primary、secondary)、是不是Leader,健康状态、最后一次心跳时间,等等。
      • 多维度的服务器和后端流量数据
        • 吞吐量:请求数、TPS/m1、m5、m15 和错误百分比等。
        • 延迟:p25、p50、p75、p95、p98、p99、p999。
        • 数据大小:请求和响应大小。
        • 状态代码:HTTP状态代码。
        • TopN:按 API 聚合并排序(仅服务器维度)。

用户案例

下面的例子展示了如何在不同场景下使用 Easegress。

完整的列表请参见 TutorialsCookbook

入门

文档

社区

许可证

Easegress 采用 Apache 2.0 许可证。详见 LICENSE 文件。