首页 > 其他分享 >路由规则

路由规则

时间:2023-08-06 11:56:34浏览次数:36  
标签:10.20 host 153.10 路由 规则 172.22

向注册中心写入路由规则:

RegistryFactory registryFactory = ExtensionLoader.getExtensionLoader(RegistryFactory.class).getAdaptiveExtension();
Registry registry = registryFactory.getRegistry(URL.valueOf("zookeeper://10.20.153.10:2181"));
registry.register(URL.valueOf("condition://0.0.0.0/com.foo.BarService?category=routers&dynamic=false&rule=" + URL.encode("http://10.20.160.198/wiki/display/dubbo/host = 10.20.153.10 => host = 10.20.153.11") + "));

其中:

  • 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") 表示路由规则的内容,必填。

条件路由规则

基于条件表达式的路由规则,如: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 等
  • 条件支持:
    • 等号 = 表示"匹配",如: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. 排除预发布机:

     => host != 172.22.3.91
    
  2. 白名单: 注意:一个服务只能有一条白名单规则,否则两条规则交叉,就都被筛选掉了)

     host != 10.20.153.10,10.20.153.11 =>
    
  3. 黑名单:

     host = 10.20.153.10,10.20.153.11 =>
    
  4. 服务寄宿在应用上,只暴露一部分的机器,防止整个集群挂掉:

     => host = 172.22.3.1*,172.22.3.2*
    
  5. 为重要应用提供额外的机器:

     application != kylin => host != 172.22.3.95,172.22.3.96
    
  6. 读写分离:

     method = find*,list*,get*,is* => host = 172.22.3.94,172.22.3.95,172.22.3.96
     method != find*,list*,get*,is* => host = 172.22.3.97,172.22.3.98
    
  7. 前后台分离:

     application = bops => host = 172.22.3.91,172.22.3.92,172.22.3.93
     application != bops => host = 172.22.3.94,172.22.3.95,172.22.3.96
    
  8. 隔离不同机房网段:

     host != 172.22.3.* => host != 172.22.3.*
    
  9. 提供者与消费者部署在同集群内,本机只访问本机的服务:

     => host = $host

标签:10.20,host,153.10,路由,规则,172.22
From: https://www.cnblogs.com/ixtao/p/17609247.html

相关文章

  • 前端学习笔记202304学习笔记第十九天-vue3.0-vue2的项目中创建路由2
      ......
  • 合并路由的query参数
    点击三级分类跳转的时候带上了query参数,然后再次点击关键字搜索,需要把keyword和原来的参数合并console.log("qury",this.$route.query);letquery=JSON.parse(JSON.stringify(this.$route.query))query.keyword=this.keywordthis.$......
  • BGP路由表中符号的理解
    解析:*:表示路由是有效路由,下一跳可达>:表示路由是BGP选出的最优路由 d:表示路由是衰减路由h:表示路由是历史路由i:表示路由是AS内部路由,来自于IBGP对等体s:处于stale状态路由,正在被删除。BGPGR过程中可能出现此标记network:BGP路由表中的网络地址nexthop:报文发送的下一跳地址MED:BGP路......
  • VueRouter4 路由
    import{createRouter,createWebHistory}from'vue-router'//createRouter创建路由实例,===>newVueRouter()//1.history模式:createWebHistory()http://xxx/user//2.hash模式:createWebHashHistory()http://xxx/#/user//vite的配置import.meta.env.BASE_......
  • 路由器简单配置及应用
    在数据链路层可以通过交换机进行vlan划分、中继链路、链路聚合的配置,达到组网的基本需求,但是无法将数据传输的更远,比如不同vlan的数据无法通信,所以需要借助网路层的功能实现更远端的通信(端--端的通信)网络层功能定义ip地址可以连接不同媒介的类型(不同范围网络、不同硬件、不同系......
  • 视频融合平台视频汇聚平台LiteCVR路由器可支持推送设备及本地经纬度信息
    RTMP流媒体服务器LiteCVR为了顺应安防市场的规模不断扩大与发展,开发出了具有强大的数据接入、处理及分发能力,除此之外还具有兼容性强、灵活拓展度强、安装部署设施轻松等特点,平台支持海量视频汇聚管理,可提供视频监控直播、云端录像、云存储、录像检索与回看、智能告警、平台级联、......
  • BGP-本地始发的BGP路由优于从其他对等体学习到的路由
    本地始发的路由优先级:手动聚合>自动聚合>network>import>从对等体学到的1、最优先的手动聚合bgb100ipv4-familyunicastaggregate10.0.0.08detail-suppressed//手动聚合可以自己定义掩码//detail-suppressed是抑制细节,可以组织明细显示,如果没有此命令将显示明细2、次优是自动聚......
  • vue 路由
    简介创建单页面应用,官方路由组件,实现前端路由功能 安装npminstallvue-router 简单路由创建路由规则文件将router挂载到vue实例中路由参数类型路径参数查询字符串参数路由跳转使用router-linkto属......
  • 视频融合平台视频汇聚平台LiteCVR路由器报跨域错误用户反馈案例分享
    LiteCVR视频融合云平台是基于云边端一体化架构为用户提供视频监控等相关功能服务的平台。具备很强的视频监控直播、录像、云存储、检索与回看、告警、集群、级联、共享等能力,为便于用户集成与调用、二次开发,平台向用户提供了丰富的API接口。我们近期正在整理以前到近期的用户反馈,今......
  • Vue 路由守卫使用文档
    一、概述Vue路由守卫是VueRouter提供的一种机制,用于在路由导航过程中对路由进行控制和过滤。通过使用路由守卫,我们可以在路由跳转前、跳转后以及跳转过程中执行一些自定义的逻辑。二、路由守卫的类型Vue路由守卫主要分为全局守卫、路由独享守卫和组件内守卫三种类型。全局守......