当前位置: 首页 > news >正文

南阳企业网站推广方法自适应网站导航是怎么做的

南阳企业网站推广方法,自适应网站导航是怎么做的,大连哪里有手机自适应网站建设维护,wordpress模板 科技路径匹配 不论是使用传统路由的配置方式还是服务路由的配置方式#xff0c;我们都需要为每个路由规则定义匹配表达式#xff0c;也就是上面所说的path参数。在Zuul中#xff0c;路由匹配的路径表达式采用了Ant风格定义。 Ant风格的路径表达式使用起来非常简单#xff0c;…路径匹配 不论是使用传统路由的配置方式还是服务路由的配置方式我们都需要为每个路由规则定义匹配表达式也就是上面所说的path参数。在Zuul中路由匹配的路径表达式采用了Ant风格定义。 Ant风格的路径表达式使用起来非常简单它一共有下面这三种通配符 通配符说明?匹配任意的单个字符*匹配任意数量的字符**匹配任意数量的字符支持多级目录 我们可以通过下表的示例来进一步理解这三个通配符的含义并参考着来使用 URL路径说明/user-service/?它可以匹配/user-service/之后拼接一个任务字符的路径比如/user-service/a、/user-service/b、/user-service/c/user-service/*它可以匹配/user-service/之后拼接任意字符的路径比如/user-service/a、/user-service/aaa、/user-service/bbb。但是它无法匹配/user-service/a/b/user-service/**它可以匹配/user-service/*包含的内容之外还可以匹配形如/user-service/a/b的多级目录路径 另外当我们使用通配符的时候经常会碰到这样的问题一个URL路径可能会被多个不同路由的表达式匹配上。比如有这样的一个场景我们在系统建设的一开始实现了user-service服务并且配置了如下路由规则 zuul.routes.user-service.path/user-service/**zuul.routes.user-service.serviceIduser-service但是随着版本的迭代我们对user-service服务做了一些功能拆分将原属于user-service服务的某些功能拆分到了另外一个全新的服务user-service-ext中去而这些拆分的外部调用URL路径希望能够符合规则/user-service/ext/**这个时候我们需要就在配置文件中增加一个路由规则完整配置如下 zuul.routes.user-service.path/user-service/**zuul.routes.user-service.serviceIduser-servicezuul.routes.user-service-ext.path/user-service/ext/**zuul.routes.user-service-ext.serviceIduser-service-ext这个时候调用user-service-ext服务的URL路径实际上会同时被/user-service/**和/user-service/ext/**两个表达式所匹配。在逻辑上API网关服务需要优先选择/user-service/ext/**路由然后再匹配/user-service/**路由才能实现上述需求。但是如果使用上面的配置方式实际上是无法保证这样的路由优先顺序的。 从下面的路由匹配算法中我们可以看到它在使用路由规则匹配请求路径的时候是通过线性遍历的方式在请求路径获取到第一个匹配的路由规则之后就会返回并结束匹配过程。所以当存在多个匹配的路由规则时匹配结果完全取决于路由规则的保存顺序。 Overridepublic Route getMatchingRoute(final String path) { ... ZuulRoute route null; if (!matchesIgnoredPatterns(adjustedPath)) { for (EntryString, ZuulRoute entry : this.routes.get().entrySet()) { String pattern entry.getKey(); log.debug(Matching pattern: pattern); if (this.pathMatcher.match(pattern, adjustedPath)) { route entry.getValue(); break; } } } log.debug(route matched route); return getRoute(route, adjustedPath);}下面所示代码是基础的路由规则加载算法我们可以看到这些路由规则是通过LinkedHashMap保存的也就是说路由规则的保存是有序的而内容的加载是通过遍历配置文件中路由规则依次加入的所以导致问题的根本原因是对配置文件中内容的读取。 protected MapString, ZuulRoute locateRoutes() { LinkedHashMapString, ZuulRoute routesMap new LinkedHashMapString, ZuulRoute(); for (ZuulRoute route : this.properties.getRoutes().values()) { routesMap.put(route.getPath(), route); } return routesMap;}由于properties的配置内容无法保证有序所以当出现这种情况的时候为了保证路由的优先顺序我们需要使用YAML文件来配置以实现有序的路由规则比如使用下面的定义 zuul: routes: user-service-ext: path: /user-service/ext/** serviceId: user-service-ext user-service: path: /user-service/** serviceId: user-service忽略表达式 通过path参数定义的Ant表达式已经能够完成API网关上的路由规则配置功能但是为了更细粒度和更为灵活的配置路由规则Zuul还提供了一个忽略表达式参数zuul.ignored-patterns。该参数可以用来设置不希望被API网关进行路由的URL表达式。 比如以快速入门中的示例为基础如果我们不希望/hello接口被路由那么我们可以这样设置 zuul.ignored-patterns/**/hello/**zuul.routes.api-a.path/api-a/**zuul.routes.api-a.serviceIdhello-service然后可以尝试通过网关来访问hello-service的/hello接口http://localhost:5555/api-a/hello。虽然该访问路径的完全符合path参数定义的/api-a/**规则但是由于该路径符合zuul.ignored-patterns参数定义的规则所以不会被正确路由。同时我们在控制台或日志中还能看到没有匹配路由的输出信息 o.s.c.n.z.f.pre.PreDecorationFilter : No route found for uri: /api-a/hello另外该参数在使用时还需要注意它的范围并不是对某个路由而是对所有路由的。所以在设置的时候需要全面的考虑URL规则防止忽略了不该被忽略的URL路径。
http://www.zqtcl.cn/news/682847/

相关文章:

  • 两学一做网上答题网站做网站域名是赠送的吗
  • 江苏住房城乡建设厅网站WordPress上传Excel
  • 广州淘宝网站建设济南高新区网站建设
  • 如何注册一个网站长沙的科技公司
  • 温州网络公司网站建设永久免费云linux服务器网页
  • 中国教育网站官网网站建设是半年的持久战
  • 为什么营销型网站比普通网站建站贵常州seo排名收费
  • 商贸公司寮步网站建设极致发烧学网站建设基础
  • 二手汽车手机网站模板四川百度推广排名查询
  • 做火情监控网站需要用什么系统做一个网站多少费用
  • 成都建设网站首页贺州网站建设
  • 硚口区建设局网站海绵宝宝的网页设计html源代码
  • 旅游网站建设合同成年做羞羞的视频网站
  • 海门网站建设制作道德建设 网站
  • 苏州 规划建设局网站网页设计师培训费用图
  • 怎么做视频解析的网站QQ空间可以建设网站吗
  • 视频网站 php源码甘肃 网站建设
  • 响应式网站和自适应便宜做网站8818
  • 湖南网站建设mxtia网站建设的流程图
  • 西安网站开发公司电话装修设计网站有哪些
  • 多少钱网站建设个人主页网页设计教程
  • 嘉兴品牌网站建设网站开发项目拖延周期
  • 网站版面布局结构网站建设公司公司
  • 给新公司建网站中国互联网企业排名前十名
  • 中国建设银行网站会员用户名网站建设应列入啥费用
  • 网站上面的水印怎么做的广东网站建设公
  • 爱站网关键词长尾挖掘工具wordpress文章外链
  • 做视频剪辑接私活的网站网站商城系统设计
  • thinkphp5做网站做网站需要准备资料
  • 门户网站平台建设方案建e室内设计网cad