路由规则
| 2.2.0以上版本支持 | 
| 路由规则扩展点:路由扩展 | 
向注册中心写入路由规则:(通常由监控中心或治理中心的页面完成)
其中:
- condition://
 - 0.0.0.0
	
- 表示对所有IP地址生效,如果只想对某个IP的生效,请填入具体IP,必填。
 
 - com.foo.BarService
	
- 表示只对指定服务生效,必填。
 
 - category=routers
	
- 表示该数据为动态配置类型,必填。
 
 - dynamic=false
	
- 表示该数据为持久数据,当注册方退出时,数据依然保存在注册中心,必填。
 
 - enabled=true
	
- 覆盖规则是否生效,可不填,缺省生效。
 
 - force=false
	
- 当路由结果为空时,是否强制执行,如果不强制执行,路由结果为空的路由规则将自动失效,可不填,缺省为flase。
 
 - runtime=false
	
- 是否在每次调用时执行路由规则,否则只在提供者地址列表变更时预先执行并缓存结果,调用时直接从缓存中获取路由结果。
 - 如果用了参数路由,必须设为true,需要注意设置会影响调用的性能,可不填,缺省为flase。
 
 - priority=1
	
- 路由规则的优先级,用于排序,优先级越大越靠前执行,可不填,缺省为0。
 
 - rule=URL.encode("host = 10.20.153.10 => host = 10.20.153.11")
	
- 表示路由规则的内容,必填。
 
 
条件路由规则
(#)
基于条件表达式的路由规则,如:
规则:
- "=>"之前的为消费者匹配条件,所有参数和消费者的URL进行对比,当消费者满足匹配条件时,对该消费者执行后面的过滤规则。
 - "=>"之后为提供者地址列表的过滤条件,所有参数和提供者的URL进行对比,消费者最终只拿到过滤后的地址列表。
 - 如果匹配条件为空,表示对所有消费方应用,如:=> host != 10.20.153.11
 - 如果过滤条件为空,表示禁止访问,如:host = 10.20.153.10 =>
 
表达式:
- 参数支持:
	
- 服务调用信息,如:method, 
argument等(暂不支持参数路由) - URL本身的字段,如:protocol, host, port 等
 - 以及URL上的所有参数,如:application, organization 等
 
 - 服务调用信息,如:method, 
 - 条件支持:
	
- 等号"="表示"匹配",如:host = 10.20.153.10
 - 不等号"!="表示"不匹配",如:host != 10.20.153.10
 
 - 值支持:
	
- 以逗号","分隔多个值,如:host != 10.20.153.10,10.20.153.11
 - 以星号"*"结尾,表示通配,如:host != 10.20.*
 - 以美元符"$"开头,表示引用消费者参数,如:host = $host
 
 
示例:
1. 排除预发布机:
2. 白名单:(注意:一个服务只能有一条白名单规则,否则两条规则交叉,就都被筛选掉了)
3. 黑名单:
4. 服务寄宿在应用上,只暴露一部分的机器,防止整个集群挂掉:
5. 为重要应用提供额外的机器:
6. 读写分离:
7. 前后台分离:
8. 隔离不同机房网段:
9. 提供者与消费者部署在同集群内,本机只访问本机的服务:
脚本路由规则
(#)
| 支持JDK脚本引擎的所有脚本,比如:javascript,jruby,groovy等,通过type=javascript参数设置脚本类型,缺省为javascript。 | 
| 脚本没有沙箱约束,可执行任意代码,存在后门风险 | 
基于脚本引擎的路由规则,如:
        
            Labels:
        
        
            
                None
            
            
                            
                    
        
        
    
0 Comments
comments.show.hideAnonymous replies:
Help Tips
- Text formatting
 
     
     
    - Headings
    
  
     
    - Lists
 
     
     
Full notation guide*bold*bold_italic_italich1.Large headingh5.Small heading*Bulleted point#Numbered point