Sentinel 1.7.0 发布,支持 Envoy 集群流量控制_C/C++_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > C/C++ > Sentinel 1.7.0 发布,支持 Envoy 集群流量控制

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

 2019/11/26 20:50:46  大涛学长  程序员俱乐部  我要评论(0)
  • 摘要:流控降级中间件[Sentinel1.7.0](https://yq.aliyun.com/go/articleRenderRedirect?url=https%3A%2F%2Fgithub.com%2Falibaba%2FSentinel%2Freleases%2Ftag%2F1.7.0)版本正式发布,引入了Envoy集群流量控制支持、properties文件配置、Consul/Etcd/SpringCloudConfig动态数据源适配等多项新特性与改进
  • 标签:发布
流控降级中间件[?Sentinel 1.7.0?](https://yq.aliyun.com/go/articleRenderRedirect?url=https%3A%2F%2Fgithub.com%2Falibaba%2FSentinel%2Freleases%2Ftag%2F1.7.0)版本正式发布,引入了 Envoy 集群流量控制支持、properties 文件配置、Consul/Etcd/Spring Cloud Config 动态数据源适配等多项新特性与改进。详细特性列表请参考?[Release Notes](https://yq.aliyun.com/go/articleRenderRedirect?url=https%3A%2F%2Fgithub.com%2Falibaba%2FSentinel%2Freleases%2Ftag%2F1.7.0),欢迎大家使用并提出建议。

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

Envoy 集群流量控制
------------

[Envoy](https://yq.aliyun.com/go/articleRenderRedirect?url=https%3A%2F%2Fwww.envoyproxy.io%2F)?目前广泛用作 Service Mesh 的数据平面,作为 sidecar 承担路由和流量转发等任务。在 Service Mesh 中集群流量控制是保障整个集群稳定性必不可少的一环,因此 Sentinel 1.7.0 提供了?[Envoy Global Rate Limiting gRPC Service](https://yq.aliyun.com/go/articleRenderRedirect?url=https%3A%2F%2Fwww.envoyproxy.io%2Fdocs%2Fenvoy%2Flatest%2Fintro%2Farch_overview%2Fother_features%2Fglobal_rate_limiting%23arch-overview-rate-limit)?的实现 ——?[Sentinel RLS token server](https://yq.aliyun.com/go/articleRenderRedirect?url=https%3A%2F%2Fgithub.com%2Falibaba%2FSentinel%2Ftree%2Fmaster%2Fsentinel-cluster%2Fsentinel-cluster-server-envoy-rls),借助 Sentinel 集群限流 token server 来为 Envoy 服务网格提供集群流量控制的能力。 
![68639837_d2266980_0540_11ea_8997_05084e2e47bb](https://yqfile.alicdn.com/20b6b3f8b5ab18e0cf45d417adb0b5552880fd33.png)

Envoy RLS Sentinel overview
---------------------------

用户只需要拉起 Sentinel RLS token server 实例并配置集群流控规则,然后在 Envoy 中进行相应的配置即可快速接入 Sentinel 的集群限流。集群流控规则项与 Envoy 的?[rate limit action](https://yq.aliyun.com/go/articleRenderRedirect?url=https%3A%2F%2Fwww.envoyproxy.io%2Fdocs%2Fenvoy%2Flatest%2Fapi-v2%2Fapi%2Fv2%2Froute%2Froute.proto%23envoy-api-msg-route-ratelimit)?生成的 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
```

![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== "点击并拖拽以移动")

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

我们提供了?[Sentinel RLS token server 在 Kubernetes 环境的示例](https://yq.aliyun.com/go/articleRenderRedirect?url=https%3A%2F%2Fgithub.com%2Falibaba%2FSentinel%2Ftree%2Fmaster%2Fsentinel-cluster%2Fsentinel-cluster-server-envoy-rls%2Fsample%2Fk8s),方便大家在 K8s 集群中快速体验 Sentinel 集群限流的能力。

在后续的版本我们还会改进规则动态配置的方式,支持 Kubernetes CRD 的形式配置规则,同时结合?[Sentinel C++](https://yq.aliyun.com/go/articleRenderRedirect?url=https%3A%2F%2Fgithub.com%2Falibaba%2Fsentinel-cpp)?版本提供原生的 Envoy Filter。未来我们还会提供 Istio 的支持,让 Sentinel 在 Service Mesh 中发挥更为重要的作用。

properties 文件配置支持
-----------------

Sentinel 1.7.0 优化了加载[启动配置项](https://yq.aliyun.com/go/articleRenderRedirect?url=https%3A%2F%2Fgithub.com%2Falibaba%2FSentinel%2Fwiki%2F%25E5%2590%25AF%25E5%258A%25A8%25E9%2585%258D%25E7%25BD%25AE%25E9%25A1%25B9)的方式,支持将配置项直接配置在 properties 文件中。用户只需要通过 -Dcsp.sentinel.config.file 参数配置 properties 文件的路径即可,从而简化了通用配置的方式。

动态数据源适配
-------

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

*   [Etcd 数据源](https://yq.aliyun.com/go/articleRenderRedirect?url=https%3A%2F%2Fgithub.com%2Falibaba%2FSentinel%2Ftree%2Fmaster%2Fsentinel-extension%2Fsentinel-datasource-etcd)
*   [Consul 数据源](https://yq.aliyun.com/go/articleRenderRedirect?url=https%3A%2F%2Fgithub.com%2Falibaba%2FSentinel%2Ftree%2Fmaster%2Fsentinel-extension%2Fsentinel-datasource-consul)
*   [Spring Cloud Config 数据源](https://yq.aliyun.com/go/articleRenderRedirect?url=https%3A%2F%2Fgithub.com%2Falibaba%2FSentinel%2Ftree%2Fmaster%2Fsentinel-extension%2Fsentinel-datasource-spring-cloud-config)

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

Start hacking
-------------

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

 

 

[原文链接](https://yq.aliyun.com/articles/726761?utm_content=g_1000089748)

本文为云栖社区原创内容,未经允许不得转载。
上一篇: 两个大数字乘法 下一篇: 没有下一篇了!
发表评论
用户名: 匿名