流控降级中间件Sentinel1.7.0版本正式发布,引入Envoy集群流控支持,properties文件配置,Consul/Etcd/SpringCloudConfig动态数据源适配匹配和许多其他新功能和改进。有关功能的详细列表,请参阅发行说明。欢迎大家使用和提出建议。让我们一起探索Sentinel1.7.0的重要特性。Envoy集群流量控制Envoy目前被广泛用作ServiceMesh的数据平面,作为sidecar承担路由、流量转发等任务。在ServiceMesh中,集群流控是保证整个集群稳定必不可少的一环,所以Sentinel1.7.0提供了EnvoyGlobalRateLimitinggRPCService的实现——SentinelRLStokenserver,借助Sentinel集群限流令牌serverto为Envoy服务网格提供集群流量控制能力。EnvoyRLSSentinel概述用户只需拉起SentinelRLStokenserver实例并配置集群流控规则,然后在Envoy中进行相应的配置即可快速接入Sentinel的集群限流。集群流控规则项对应Envoy的限速动作生成的描述符,支持source_cluster、destination_cluster、request_headers、remote_address、generic_key等几种策略(支持组合)。示例规则项:domain:foodescriptors:-resources:-key:"destination_cluster"value:"service_aliyun"count:1-resources:-key:"remote_address"value:"30.40.50.60"count:10上面的例子配置了两个有是foo所有域的两条规则(对应Envoy的配置),其中一条会控制对service_aliyun集群的所有请求,最大QPS为1;另一条规则将控制所有源IP为30.40.50.60的请求每秒不超过10个请求。我们提供了一个Kubernetes环境下的SentinelRLStokenserver示例,让您在K8s集群中快速体验Sentinel集群限流能力。在后续版本中,我们还将完善规则的动态配置,支持KubernetesCRD表单配置规则,并结合SentinelC++版本提供原生的EnvoyFilter。未来我们也会提供对Istio的支持,让Sentinel在ServiceMesh中发挥更重要的作用。Properties文件配置支持Sentinel1.7.0优化了启动配置项的加载方式,支持直接在properties文件中配置配置项。用户只需要通过-Dcsp.sentinel.config.file参数配置properties文件的路径,简化了通用配置的方式。动态数据源适配Sentinel1.7.0新增了对以下三种动态数据源的支持。用户可以使用这些动态数据源来保存和拉取规则:Etcd数据源Consul数据源SpringCloudConfig数据源到目前为止,Sentinel已经支持了七种常用的配置中心,可以覆盖大部分的规则推送场景。开始hacking值得注意的是,Sentinel1.7.0近一半的特性是由社区开发者贡献的,很多特性都是在社区充分讨论和审核后发布的,所以我们可以把Sentinel1.7.0称为一个共同定义的版本由社区。欢迎大家继续参与社区贡献,共同参与未来版本的演进。如果您愿意为社区做贡献,可以参考贡献指南开始,也欢迎您联系我们加入Sentinel核心贡献团队领取任务。我们将关注积极参与贡献的开发者,并有机会被提名为Committer。现在开始黑客攻击!原文链接本文为云栖社区原创内容,未经允许不得转载。
