Sentinel 1.7.0 发布,支持 Envoy 集群流量控制

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 流控降级中间件 Sentinel 1.7.0 版本正式发布,引入了 Envoy 集群流量控制支持、properties 文件配置、Consul/Etcd/Spring Cloud Config 动态数据源适配等多项新特性与改进。

流控降级中间件 Sentinel 1.7.0 版本正式发布,引入了 Envoy 集群流量控制支持、properties 文件配置、Consul/Etcd/Spring Cloud Config 动态数据源适配等多项新特性与改进。详细特性列表请参考 Release Notes,欢迎大家使用并提出建议。

下面我们来一起探索一下 Sentinel 1.7.0 的重要特性。

Envoy 集群流量控制

Envoy 目前广泛用作 Service Mesh 的数据平面,作为 sidecar 承担路由和流量转发等任务。在 Service Mesh 中集群流量控制是保障整个集群稳定性必不可少的一环,因此 Sentinel 1.7.0 提供了 Envoy Global Rate Limiting gRPC Service 的实现 —— Sentinel RLS token server,借助 Sentinel 集群限流 token server 来为 Envoy 服务网格提供集群流量控制的能力。
68639837_d2266980_0540_11ea_8997_05084e2e47bb

Envoy RLS Sentinel overview

用户只需要拉起 Sentinel RLS token server 实例并配置集群流控规则,然后在 Envoy 中进行相应的配置即可快速接入 Sentinel 的集群限流。集群流控规则项与 Envoy 的 rate limit action 生成的 descriptor 相对应,支持 source_cluster、destination_cluster、request_headers、remote_address、generic_key 等几种策略(支持组合)。示例规则项:

domain: foo
descriptors:
  - resources:
    - key: "destination_cluster"
      value: "service_aliyun"
    count: 1
  - resources:
    - key: "remote_address"
      value: "30.40.50.60"
    count: 10

上面的示例配置了两条规则,针对的 domain 都是 foo(与 Envoy 的配置相对应),其中一条规则会对所有目标为 service_aliyun 集群的请求进行控制,QPS 最大为 1;另一条规则控制所有来源 IP 为 30.40.50.60 的请求每秒不超过 10 次。

我们提供了 Sentinel RLS token server 在 Kubernetes 环境的示例,方便大家在 K8s 集群中快速体验 Sentinel 集群限流的能力。

在后续的版本我们还会改进规则动态配置的方式,支持 Kubernetes CRD 的形式配置规则,同时结合 Sentinel C++ 版本提供原生的 Envoy Filter。未来我们还会提供 Istio 的支持,让 Sentinel 在 Service Mesh 中发挥更为重要的作用。

properties 文件配置支持

Sentinel 1.7.0 优化了加载启动配置项的方式,支持将配置项直接配置在 properties 文件中。用户只需要通过 -Dcsp.sentinel.config.file 参数配置 properties 文件的路径即可,从而简化了通用配置的方式。

动态数据源适配

Sentinel 1.7.0 新增了以下三种动态数据源的支持,用户可以利用这些动态数据源保存、拉取规则:

至此,Sentinel 已经支持了七种常用的配置中心,可以覆盖大部分的规则推送场景。

Start hacking

值得注意的是,Sentinel 1.7.0 有近一半的特性都是由社区开发者贡献的,许多的特性都是社区里面进行充分讨论和 review 后出炉的,因此我们可以称 Sentinel 1.7.0 是一个社区一起定义的版本。我们非常欢迎大家持续参与社区贡献,一起来参与未来版本的演进。若您有意愿参与社区贡献,可以参考 贡献指南 来入门,同时也欢迎联系我们加入 Sentinel 核心贡献小组认领任务。积极参与贡献的开发者我们会重点关注,有机会被提名为 Committer。Now start hacking!

相关文章
|
6月前
|
存储 NoSQL 调度
【Redis源码】集群之哨兵sentinel故障转移 (十二)
【Redis源码】集群之哨兵sentinel故障转移 (十二)
103 0
|
7月前
|
监控 Java 测试技术
实战:Springboot集成Sentinel实现流量控制、熔断降级、负载保护
实战:Springboot集成Sentinel实现流量控制、熔断降级、负载保护
|
自然语言处理 监控 Cloud Native
精华推荐 |【深入浅出Sentinel原理及实战】「原理探索专题」完整剖析Alibaba微服务架构体系之轻量级高可用流量控制组件Sentinel(1)
精华推荐 |【深入浅出Sentinel原理及实战】「原理探索专题」完整剖析Alibaba微服务架构体系之轻量级高可用流量控制组件Sentinel(1)
542 0
精华推荐 |【深入浅出Sentinel原理及实战】「原理探索专题」完整剖析Alibaba微服务架构体系之轻量级高可用流量控制组件Sentinel(1)
|
1月前
|
SQL SpringCloudAlibaba Sentinel
【八】SpringCloud Alibaba之整合Sentinel(实现流量控制3)
【八】SpringCloud Alibaba之整合Sentinel(实现流量控制3)
33 2
|
1月前
|
SpringCloudAlibaba Java 测试技术
【七】SpringCloud Alibaba之整合Sentinel(实现流量控制2)
【七】SpringCloud Alibaba之整合Sentinel(实现流量控制2)
26 1
|
1月前
|
SpringCloudAlibaba Java 测试技术
【六】SpringCloud Alibaba之整合Sentinel(实现流量控制)
【六】SpringCloud Alibaba之整合Sentinel(实现流量控制)
47 1
|
1月前
|
SQL Go 数据库
【Sentinel Go】新手指南、流量控制、熔断降级和并发隔离控制
【2月更文挑战第12天】随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件,主要以流量为切入点,从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性。
56 0
|
6月前
|
存储 NoSQL Redis
【Redis源码】集群之哨兵sentinel初识(十一)
【Redis源码】集群之哨兵sentinel初识(十一)
52 0
|
3月前
|
监控 NoSQL 程序员
Redis 高可用篇:你管这叫 Sentinel 哨兵集群原理
Redis 高可用篇:你管这叫 Sentinel 哨兵集群原理
77 5
|
3月前
|
NoSQL Linux Redis
Redis 6.X Sentinel 哨兵集群搭建
Redis 6.X Sentinel 哨兵集群搭建
32 5