`
大涛学长
  • 浏览: 110773 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

阅读更多
流控降级中间件[ 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)

本文为云栖社区原创内容,未经允许不得转载。
分享到:
评论

相关推荐

    sentinel-dashboard-1.7.0.jar

    5. **集群流控**:在分布式环境中,Sentinel 支持集群模式的流量控制,可以在集群层面进行限流和降级,保证服务的集群稳定性。 6. **监控与统计**:Sentinel Dashboard 可以实时展示服务的运行状态,包括 QPS(每秒...

    sentinel-dashboard-1.7.0.zip

    Sentinel 是阿里巴巴开源的一款强大的流量控制、熔断降级组件,广泛应用于分布式系统中的服务治理。Sentinel Dashboard 是其可视化管理界面,版本1.7.0 提供了丰富的功能,帮助开发者实时监控服务的流量状态,并进行...

    sentinel-dashboard-1.7.0.rar

    总之,Sentinel Dashboard 是一个强大的工具,它可以帮助开发者实现微服务架构中的流量控制和系统稳定性,而 `sentinel-dashboard-1.7.0` 是其一个重要版本,提供了丰富的功能和优化,值得在实际项目中应用和探索。

    sentinel-1.7.0.zip

    总的来说,Sentinel 是一款强大的服务治理工具,它的功能涵盖了流量控制、熔断降级等多个方面,为 Java 开发者构建高可用、高性能的微服务系统提供了有力支持。通过 Sentinel-1.7.0.zip,我们可以轻松地将这些功能...

    Sentinel-1.7.0

    Sentinel(Sentinel-1.7.0.tar.gz、Sentinel-1.7.0.zip、sentinel-dashboard-1.7.0.jar、sentinel-envoy-rls-token-server-1.7.0.jar)随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为...

    sentinel-1.7.0.rar

    sentinel-1.7.0.rarsentinel-1.7.0.rarsentinel-1.7.0.rarsentinel-1.7.0.rarsentinel-1.7.0.rarsentinel-1.7.0.rarsentinel-1.7.0.rarsentinel-1.7.0.rarsentinel-1.7.0.rarsentinel-1.7.0.rarsentinel-1.7.0....

    Sentinel-1.7.0.zip

    总的来说,Sentinel-1.7.0.zip 包含了用于微服务架构的高级流量管理工具,通过自定义控制台和注册中心的集成,可以实现动态、可扩展的流量控制策略,为服务的稳定性和性能提供了强大的保障。对于开发和运维人员来说...

    Sentinel流量控制由浅入深学习笔记

    丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。 完备的实时监控:...

    Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件,主要以流量为切入点,从流量路由、流量控制、流量整形、熔断降级

    2019 年,Sentinel 朝着多语言扩展的方向不断探索,推出 C++ 原生版本,同时针对 Service Mesh 场景也推出了 Envoy 集群流量控制支持,以解决 Service Mesh 架构下多语言限流的问题。 2020 年,推出 Sentinel Go ...

    sentinel-dashboard-1.7.0.jar包的下载

    sentinel-dashboard-1.7.0.jar 环境:JDK 运行:(-Dserver.port=8080指定端口) 1. java -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=sentinel-dashboard -jar sentinel-...

    sentinel-dashboard-1.7.0.jar gitHub资源.zip

    Sentinel 是一个由 Alibaba 开源的流量控制组件,主要用于分布式系统的流量管理和保护。它提供了丰富的流量控制策略,如限流、降级、系统保护等,能够帮助开发者在微服务架构中构建高可用的服务。Sentinel Dashboard...

    Sentinel流量控制教程,包括原理分析,源码阅读,实战分享

    在具体的应用场景中,Sentinel 提供了多种流量控制模式,如单机限流、集群限流、热点参数限流等。单机限流针对单个服务实例,限制单位时间内处理的请求数量;集群限流则是在所有服务实例间共享流量配额,确保整个...

    sentinel-dashboard-1.7.2.jar 和 sentinel-envoy-rls-token-server-1.7.2.jar

    4. **可扩展性**:Sentinel-Envoy-RLS-Token-Server 支持与其他服务网格组件集成,如 Istio,增强了服务网格的流量管理能力。 总结起来,这两个 JAR 文件共同构建了 Sentinel 在微服务架构中的全面流量管理能力,...

    Sentinel 实战-集群限流环境搭建1

    在集群限流环境中,Sentinel 提供了集群流控功能,使得多个分布式节点可以协同工作,实现全局的流量控制。本篇实战将介绍如何在 C# 环境下搭建 Sentinel 的集群限流环境。 首先,为了使用集群流控,我们需要配置一...

    spring cloud流量控制 sentinel-dashboard.zip

    Spring Cloud流量控制 Sentinel-Dashboard是微服务架构中用于实现服务治理的重要组件,它专注于系统的流量管理和熔断机制。Sentinel是阿里巴巴开源的一款高可用的流量控制、熔断降级的Java库,它可以帮助开发者在...

    sentinel-dashboard.jar

    sentinel1.7.0 jar包

    sentinel-envoy-rls-token-server-1.7.2.jar

    随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。

Global site tag (gtag.js) - Google Analytics