.NET Core开源API网关 – Ocelot中文文档 (2)

下面这个配置信息就是将用户的请求 /post/1 转发到 localhost/api/post/1

{ "DownstreamPathTemplate": "/api/post/{postId}", "DownstreamScheme": "https", "DownstreamHostAndPorts": [ { "Host": "localhost", "Port": 80, } ], "UpstreamPathTemplate": "/post/{postId}", "UpstreamHttpMethod": [ "Get"] }

DownstreamPathTemplate:下游戏

DownstreamScheme:下游服务http schema

DownstreamHostAndPorts:下游服务的地址,如果使用LoadBalancer的话这里可以填多项

UpstreamPathTemplate: 上游也就是用户输入的请求Url模板

UpstreamHttpMethod: 上游请求http方法,可使用数组

万能模板

万能模板即所有请求全部转发,UpstreamPathTemplate 与DownstreamPathTemplate 设置为 “/{url}”

{ "DownstreamPathTemplate": "/{url}", "DownstreamScheme": "https", "DownstreamHostAndPorts": [ { "Host": "localhost", "Port": 80, } ], "UpstreamPathTemplate": "/{url}", "UpstreamHttpMethod": [ "Get" ] }

万能模板的优先级最低,只要有其它的路由模板,其它的路由模板则会优先生效。

上游Host
上游Host也是路由用来判断的条件之一,由客户端访问时的Host来进行区别。比如当a.jesetalk.cn/users/{userid}和b.jessetalk.cn/users/{userid}两个请求的时候可以进行区别对待。

{ "DownstreamPathTemplate": "http://www.likecs.com/", "DownstreamScheme": "https", "DownstreamHostAndPorts": [ { "Host": "10.0.10.1", "Port": 80, } ], "UpstreamPathTemplate": "http://www.likecs.com/", "UpstreamHttpMethod": [ "Get" ], "UpstreamHost": "a.jessetalk.cn" }

Prioirty优先级
对多个产生冲突的路由设置优化级

{ "UpstreamPathTemplate": "/goods/{catchAll}" "Priority": 0 } { "UpstreamPathTemplate": "/goods/delete" "Priority": 1 }

比如你有同样两个路由,当请求/goods/delete的时候,则下面那个会生效。也就是说Prority是大的会被优先选择。

路由负载均衡

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyyyzy.html