433 lines
15 KiB
JSON
433 lines
15 KiB
JSON
////*****************************单地址多实例负载均衡+Consul********************************
|
||
//{
|
||
// "Routes": [
|
||
// {
|
||
// "DownstreamPathTemplate": "/api/{url}", //服务地址--url变量
|
||
// "DownstreamScheme": "http",
|
||
// "UpstreamPathTemplate": "/T/{url}", //网关地址--url变量
|
||
// "UpstreamHttpMethod": [ "Get", "Post" ],
|
||
// "UseServiceDiscovery": true,
|
||
// "ServiceName": "ZhaoxiService", //consul服务名称
|
||
// "LoadBalancerOptions": {
|
||
// "Type": "RoundRobin" //轮询 LeastConnection-最少连接数的服务器 NoLoadBalance不负载均衡
|
||
// }
|
||
// }
|
||
// ],
|
||
// "GlobalConfiguration": {
|
||
// "BaseUrl": "http://127.0.0.1:6299", //网关对外地址
|
||
// "ServiceDiscoveryProvider": {
|
||
// "Host": "47.95.2.2",
|
||
// "Port": 8089,
|
||
// "Type": "Consul" //由Consul提供服务发现, 每次请求去consul
|
||
// } //Ocelot没有支持配置多个Consul
|
||
|
||
// //,"ServiceDiscoveryProvider": {
|
||
// // "Host": "localhost",
|
||
// // "Port": 8500,
|
||
// // "Type": "PollConsul", //由Consul提供服务发现,
|
||
// // "PollingInterval": 1000 //轮询consul,频率毫秒--down掉是不知道的
|
||
// // //"Token": "footoken"//需要ACL的话
|
||
// //}
|
||
// }
|
||
//}
|
||
|
||
|
||
|
||
//*****************************Ocelot+Consul********************************
|
||
{
|
||
"Routes": [
|
||
{
|
||
"UpstreamPathTemplate": "api/api/{url}", //上游请求地址--网关
|
||
"UpstreamHttpMethod": [ "Get", "Post", "Put", "PATCH", "Delete", "Options" ],
|
||
"UseServiceDiscovery": true,
|
||
"ServiceName": "ApiMicroservice",
|
||
"LoadBalancerOptions": {
|
||
"Type": "RoundRobin" //轮询 LeastConnection-最少连接数的服务器 NoLoadBalance不负载均衡
|
||
},
|
||
"DownstreamPathTemplate": "api/api/{url}", //服务地址--url变量
|
||
"DownstreamScheme": "https",
|
||
"DownstreamHeaderTransform": {
|
||
"Access-Control-Allow-Origin": "*", //不存在就添加
|
||
"Access-Control-Allow-Methods": "*",
|
||
"Access-Control-Allow-Headers": "*"
|
||
}
|
||
},
|
||
{
|
||
"UpstreamPathTemplate": "api/item/{url}", //上游请求地址--网关
|
||
"UpstreamHttpMethod": [ "Get", "Post", "Put", "PATCH", "Delete", "Options" ],
|
||
"UseServiceDiscovery": true,
|
||
"ServiceName": "PageDetail",
|
||
"LoadBalancerOptions": {
|
||
"Type": "RoundRobin" //轮询 LeastConnection-最少连接数的服务器 NoLoadBalance不负载均衡
|
||
},
|
||
"DownstreamPathTemplate": "api/item/{url}", //服务地址--url变量
|
||
"DownstreamScheme": "https",
|
||
"DownstreamHeaderTransform": {
|
||
"Access-Control-Allow-Origin": "*", //不存在就添加
|
||
"Access-Control-Allow-Methods": "*",
|
||
"Access-Control-Allow-Headers": "*"
|
||
}
|
||
}
|
||
],
|
||
"GlobalConfiguration": {
|
||
"BaseUrl": "http://127.0.0.1:7200", //网关对外地址
|
||
"ServiceDiscoveryProvider": {
|
||
"Host": "192.168.2.128",
|
||
"Port": 8500,
|
||
"Type": "Consul" //由Consul提供服务发现, 每次请求去consul
|
||
},
|
||
"RateLimitOptions": {
|
||
"QuotaExceededMessage": "你的请求过于频繁,请稍后再试!", // 当请求过载被截断时返回的消息
|
||
"HttpStatusCode": 666 // 当请求过载被截断时返回的http status
|
||
//"ClientIdHeader": "client_id" // 用来识别客户端的请求头,默认是 ClientId
|
||
}
|
||
|
||
//,"ServiceDiscoveryProvider": {
|
||
// "Host": "localhost",
|
||
// "Port": 8500,
|
||
// "Type": "PollConsul", //由Consul提供服务发现,
|
||
// "PollingInterval": 1000 //轮询consul,频率毫秒--down掉是不知道的
|
||
// //"Token": "footoken"//需要ACL的话
|
||
//}
|
||
}
|
||
}
|
||
|
||
////*****************************单地址--无Consul********************************
|
||
//{
|
||
// "Routes": [
|
||
// {
|
||
// "UpstreamPathTemplate": "/api/auth/{url}", //上游请求地址--网关
|
||
// "UpstreamHttpMethod": [ "Get", "Post", "Put", "PATCH", "Delete", "Options" ],
|
||
// "DownstreamHostAndPorts": [
|
||
// {
|
||
// "Host": "localhost",
|
||
// "Port": 7200 //网关api 端口
|
||
// }
|
||
// ],
|
||
// "DownstreamPathTemplate": "/api/{url}", //服务地址--url变量
|
||
// "DownstreamScheme": "http",
|
||
// "DownstreamHeaderTransform": {
|
||
// "Access-Control-Allow-Origin": "*", //不存在就添加
|
||
// "Access-Control-Allow-Methods": "*",
|
||
// "Access-Control-Allow-Headers": "*"
|
||
// }
|
||
// }
|
||
// ]
|
||
//}
|
||
|
||
////*****************************单地址全匹配********************************
|
||
//{
|
||
// "Routes": [
|
||
// {
|
||
// "DownstreamPathTemplate": "/{url}", //服务地址--url变量
|
||
// "DownstreamScheme": "http",
|
||
// "DownstreamHostAndPorts": [
|
||
// {
|
||
// "Host": "localhost",
|
||
// "Port": 5726 //服务端口
|
||
// }
|
||
// ],
|
||
// "UpstreamPathTemplate": "/{url}", //网关地址--url变量 //冲突的还可以加权重Priority
|
||
// "UpstreamHttpMethod": [ "Get", "Post" ]
|
||
// }
|
||
// ]
|
||
//}
|
||
|
||
////*****************************多地址多实例********************************
|
||
//{
|
||
// "Routes": [
|
||
// {
|
||
// "DownstreamPathTemplate": "/api/{url}", //服务地址--url变量
|
||
// "DownstreamScheme": "http",
|
||
// "DownstreamHostAndPorts": [
|
||
// {
|
||
// "Host": "localhost",
|
||
// "Port": 5726 //服务端口
|
||
// }
|
||
// ],
|
||
// "UpstreamPathTemplate": "/T5726/{url}", //网关地址--url变量
|
||
// "UpstreamHttpMethod": [ "Get", "Post" ]
|
||
// },
|
||
// {
|
||
// "DownstreamPathTemplate": "/api/{url}", //服务地址--url变量
|
||
// "DownstreamScheme": "http",
|
||
// "DownstreamHostAndPorts": [
|
||
// {
|
||
// "Host": "localhost",
|
||
// "Port": 5727 //服务端口
|
||
// }
|
||
// ],
|
||
// "UpstreamPathTemplate": "/T5727/{url}", //网关地址--url变量
|
||
// "UpstreamHttpMethod": [ "Get", "Post" ]
|
||
// },
|
||
// {
|
||
// "DownstreamPathTemplate": "/api/{url}", //服务地址--url变量
|
||
// "DownstreamScheme": "http",
|
||
// "DownstreamHostAndPorts": [
|
||
// {
|
||
// "Host": "localhost",
|
||
// "Port": 5728 //服务端口
|
||
// }
|
||
// ],
|
||
// "UpstreamPathTemplate": "/T5728/{url}", //网关地址--url变量
|
||
// "UpstreamHttpMethod": [ "Get", "Post" ]
|
||
// }
|
||
// ]
|
||
//}
|
||
|
||
//////MVC的路由规则是近水楼台先得月--
|
||
////*****************************路由冲突+带权匹配********************************
|
||
//{
|
||
// "Routes": [
|
||
// {
|
||
// "DownstreamPathTemplate": "/{url}", //服务地址--url变量
|
||
// "DownstreamScheme": "http",
|
||
// "DownstreamHostAndPorts": [
|
||
// {
|
||
// "Host": "localhost",
|
||
// "Port": 5726 //服务端口
|
||
// }
|
||
// ],
|
||
// "UpstreamPathTemplate": "/{url}", //网关地址--url变量 //冲突的还可以加权重Priority
|
||
// "UpstreamHttpMethod": [ "Get", "Post" ],
|
||
// "Priority": 0 //默认是0 加个1
|
||
// },
|
||
// {
|
||
// "DownstreamPathTemplate": "/api/users/get?id={id}", //服务地址--url变量
|
||
// "DownstreamScheme": "http",
|
||
// "DownstreamHostAndPorts": [
|
||
// {
|
||
// "Host": "localhost",
|
||
// "Port": 5727 //服务端口
|
||
// }
|
||
// ],
|
||
// "UpstreamPathTemplate": "/api/users/get/{id}", //网关地址--url变量 //冲突的还可以加权重Priority
|
||
// "UpstreamHttpMethod": [ "Get", "Post" ],
|
||
// "Priority": 1 //默认是0 加个1
|
||
// },
|
||
// {
|
||
// "DownstreamPathTemplate": "/api/users/{url}?id={id}", //服务地址--url变量
|
||
// "DownstreamScheme": "http",
|
||
// "DownstreamHostAndPorts": [
|
||
// {
|
||
// "Host": "localhost",
|
||
// "Port": 5728 //服务端口
|
||
// }
|
||
// ],
|
||
// "UpstreamPathTemplate": "/api/users/{url}/{id}", //网关地址--url变量 //冲突的还可以加权重Priority
|
||
// "UpstreamHttpMethod": [ "Get", "Post" ],
|
||
// "Priority": 2 //默认是0 加个1
|
||
// }
|
||
// ]
|
||
//}
|
||
|
||
////*****************************单地址多实例负载均衡********************************
|
||
//{
|
||
// "Routes": [
|
||
// {
|
||
// "DownstreamPathTemplate": "/api/{url}", //服务地址--url变量
|
||
// "DownstreamScheme": "http",
|
||
// "DownstreamHostAndPorts": [
|
||
// {
|
||
// "Host": "47.95.2.2",
|
||
// "Port": 5726
|
||
// }, //Ocelot负载均衡
|
||
// {
|
||
// "Host": "47.95.2.2",
|
||
// "Port": 5727
|
||
// },
|
||
// {
|
||
// "Host": "47.95.2.2",
|
||
// "Port": 5728
|
||
// }
|
||
// ],
|
||
// "UpstreamPathTemplate": "/T/{url}", //网关地址--url变量 //冲突的还可以加权重Priority
|
||
// "UpstreamHttpMethod": [ "Get", "Post" ],
|
||
// "LoadBalancerOptions": {
|
||
// "Type": "RoundRobin" //轮询 //"LeastConnection" //最少连接数的服务器 "NoLoadBalance" //不负载均衡 //"CookieStickySessions" //会话粘滞 //
|
||
// }
|
||
// //"LoadBalancerOptions": {
|
||
// // "Type": "CookieStickySessions",
|
||
// // "Key": "ASP.NET_SessionId",
|
||
// // "Expiry": 1800000
|
||
// //}
|
||
// }
|
||
// ]
|
||
//}
|
||
|
||
////*****************************单地址多实例负载均衡+Consul********************************
|
||
//{
|
||
// "Routes": [
|
||
// {
|
||
// "DownstreamPathTemplate": "/api/{url}", //服务地址--url变量
|
||
// "DownstreamScheme": "http",
|
||
// "UpstreamPathTemplate": "/T/{url}", //网关地址--url变量
|
||
// "UpstreamHttpMethod": [ "Get", "Post" ],
|
||
// "UseServiceDiscovery": true,
|
||
// "ServiceName": "ZhaoxiService", //consul服务名称
|
||
// "LoadBalancerOptions": {
|
||
// "Type": "RoundRobin" //轮询 LeastConnection-最少连接数的服务器 NoLoadBalance不负载均衡
|
||
// }
|
||
// }
|
||
// ],
|
||
// "GlobalConfiguration": {
|
||
// "BaseUrl": "http://127.0.0.1:6299", //网关对外地址
|
||
// "ServiceDiscoveryProvider": {
|
||
// "Host": "47.95.2.2",
|
||
// "Port": 8089,
|
||
// "Type": "Consul" //由Consul提供服务发现, 每次请求去consul
|
||
// } //Ocelot没有支持配置多个Consul
|
||
|
||
// //,"ServiceDiscoveryProvider": {
|
||
// // "Host": "localhost",
|
||
// // "Port": 8500,
|
||
// // "Type": "PollConsul", //由Consul提供服务发现,
|
||
// // "PollingInterval": 1000 //轮询consul,频率毫秒--down掉是不知道的
|
||
// // //"Token": "footoken"//需要ACL的话
|
||
// //}
|
||
// }
|
||
//}
|
||
|
||
////*****************************Consul+缓存Cache********************************
|
||
//{
|
||
// "Routes": [
|
||
// {
|
||
// "DownstreamPathTemplate": "/api/{url}", //服务地址--url变量
|
||
// "DownstreamScheme": "http",
|
||
// "UpstreamPathTemplate": "/T/{url}", //网关地址--url变量
|
||
// "UpstreamHttpMethod": [ "Get", "Post" ],
|
||
// "UseServiceDiscovery": true,
|
||
// "ServiceName": "ZhaoxiService", //consul服务名称
|
||
// "LoadBalancerOptions": {
|
||
// "Type": "RoundRobin" //轮询 LeastConnection-最少连接数的服务器 NoLoadBalance不负载均衡
|
||
// },
|
||
// "FileCacheOptions": {
|
||
// "TtlSeconds": 15, //Second
|
||
// "Region": "UserCache" //可以调用Api缓存清理
|
||
// }
|
||
// }
|
||
// ],
|
||
// "GlobalConfiguration": {
|
||
// "BaseUrl": "http://127.0.0.1:6299", //网关对外地址
|
||
// "ServiceDiscoveryProvider": {
|
||
// "Host": "47.95.2.2",
|
||
// "Port": 8089,
|
||
// "Type": "Consul" //由Consul提供服务发现, 每次请求去consul
|
||
// }
|
||
// //"ServiceDiscoveryProvider": {
|
||
// // "Host": "localhost",
|
||
// // "Port": 8500,
|
||
// // "Type": "PollConsul", //由Consul提供服务发现,
|
||
// // "PollingInterval": 1000 //轮询consul,频率毫秒--down掉是不知道的
|
||
// // //"Token": "footoken"//需要ACL的话
|
||
// //}
|
||
// }
|
||
//}
|
||
|
||
////*****************************超时+限流+熔断+降级+Consul+Polly********************************
|
||
//{
|
||
// "Routes": [
|
||
// {
|
||
// "DownstreamPathTemplate": "/api/{url}", //服务地址--url变量
|
||
// "DownstreamScheme": "http",
|
||
// "UpstreamPathTemplate": "/T/{url}", //网关地址--url变量
|
||
// "UpstreamHttpMethod": [ "Get", "Post" ],
|
||
// "UseServiceDiscovery": true,
|
||
// "ServiceName": "ZhaoxiService", //consul服务名称
|
||
// "LoadBalancerOptions": {
|
||
// "Type": "RoundRobin" //轮询 LeastConnection-最少连接数的服务器 NoLoadBalance不负载均衡
|
||
// },
|
||
// "RateLimitOptions": {
|
||
// "ClientWhitelist": [ "eleven", "seven" ], //白名单 ClientId 区分大小写
|
||
// "EnableRateLimiting": true,
|
||
// "Period": "5m", //1s, 5m, 1h, 1d
|
||
// "PeriodTimespan": 30, //多少秒之后客户端可以重试
|
||
// "Limit": 5 //统计时间段内允许的最大请求数量
|
||
// },
|
||
// "AuthenticationOptions": {
|
||
// "AuthenticationProviderKey": "UserGatewayKey",
|
||
// "AllowedScopes": []
|
||
// },
|
||
// "QoSOptions": {
|
||
// "ExceptionsAllowedBeforeBreaking": 3, //允许多少个异常请求
|
||
// "DurationOfBreak": 10000, // 熔断的时间,单位为ms
|
||
// "TimeoutValue": 2000 //单位ms 如果下游请求的处理时间超过多少则自如将请求设置为超时 默认90秒
|
||
// }
|
||
// //"FileCacheOptions": {
|
||
// // "TtlSeconds": 15,
|
||
// // "Region": "UserCache" //可以调用Api清理
|
||
// //}
|
||
// }
|
||
// ],
|
||
// "GlobalConfiguration": {
|
||
// "BaseUrl": "http://127.0.0.1:6299", //网关对外地址
|
||
// "ServiceDiscoveryProvider": {
|
||
// "Host": "47.95.2.2",
|
||
// "Port": 8089,
|
||
// "Type": "Consul" //由Consul提供服务发现
|
||
// },
|
||
// "RateLimitOptions": {
|
||
// "QuotaExceededMessage": "Too many requests, maybe later? 11", // 当请求过载被截断时返回的消息
|
||
// "HttpStatusCode": 666, // 当请求过载被截断时返回的http status
|
||
// //"ClientIdHeader": "client_id" // 用来识别客户端的请求头,默认是 ClientId
|
||
// }
|
||
// }
|
||
//}
|
||
|
||
////*****************************请求聚合Aggregator********************************
|
||
//{
|
||
// "Routes": [
|
||
// {
|
||
// "DownstreamPathTemplate": "/api/users/all",
|
||
// "DownstreamScheme": "http",
|
||
// "DownstreamHostAndPorts": [
|
||
// {
|
||
// "Host": "localhost",
|
||
// "Port": 5726 //服务端口
|
||
// } //可以多个,自行负载均衡
|
||
// ],
|
||
// "UpstreamPathTemplate": "/T5726/users/all",
|
||
// "UpstreamHttpMethod": [ "Get", "Post" ],
|
||
// "key": "T5726"
|
||
// },
|
||
// {
|
||
// "DownstreamPathTemplate": "/api/users/all",
|
||
// "DownstreamScheme": "http",
|
||
// "DownstreamHostAndPorts": [
|
||
// {
|
||
// "Host": "localhost",
|
||
// "Port": 5727 //服务端口
|
||
// }
|
||
// ],
|
||
// "UpstreamPathTemplate": "/T5727/users/all",
|
||
// "UpstreamHttpMethod": [ "Get", "Post" ],
|
||
// "key": "T5727"
|
||
// },
|
||
// {
|
||
// "DownstreamPathTemplate": "/api/users/all",
|
||
// "DownstreamScheme": "http",
|
||
// "DownstreamHostAndPorts": [
|
||
// {
|
||
// "Host": "localhost",
|
||
// "Port": 5728 //服务端口
|
||
// }
|
||
// ],
|
||
// "UpstreamPathTemplate": "/T5728/users/all",
|
||
// "UpstreamHttpMethod": [ "Get", "Post" ],
|
||
// "key": "T5728"
|
||
// }
|
||
// ],
|
||
// "Aggregates": [
|
||
// {
|
||
// "RouteKeys": [
|
||
// "T5726",
|
||
// "T5727",
|
||
// "T5728"
|
||
// ],
|
||
// "UpstreamPathTemplate": "/UserAggregator", //如果某个404 是不影响返回,当成null
|
||
// "Aggregator": "CustomUserAggregator" //自定义聚合器
|
||
// }
|
||
// ]
|
||
//}
|
||
|