四、 脚本路由规则
脚本路由为流量管理提供了最大的灵活性,所有流量在执行负载均衡选址之前,都会动态的执行一遍规则脚本,根据脚本执行的结果确定可用的地址子集。
脚本路由只对消费者生效且只支持应用粒度管理,因此,key必须设置为消费者应用名;脚本语法支持多种,以Dubbo Java SDK为例,脚本语法支持Javascript、Groovy、Kotlin等,具体可参见每个语言实现的限制。
注:
脚本路由由于可以动态加载远端代码执行,因此存在潜在的安全隐患,在启用脚本路由前,一定要确保脚本规则在安全沙箱内运行。
1. ScriptRule
脚本路由规则主体。定义脚本规则生效的目标消费者应用、流量过滤脚本以及一些特定场景下的行为。
2. Script
script为脚本路由规则的主体,类型为一个具有符合结构的string字符串,具体取决于type指定的脚本语言。
以下是type: javascript的一个脚本规则示例: