Health CheckLoad Balanceracceptedbughelp wantedlarge effortmedium effortproposal
仓库指标
- Star
- (8,137 star)
- PR 合并指标
- (平均合并 44天 17小时) (30 天内合并 6 个 PR)
描述
Hi Ocelot Team,
Please give advice for my current issue when using Load Balance configuration on Ocelot Gateway. My websocket implementation is for Microsof SignalR on my web client
## Expected Behavior / New Feature When one of server is down, not causing error and able redirect request to connect websocket to another server
Actual Behavior / Motivation for New Feature
1 Backend Server down causing Bad Gateway request and unable to a connect websocket to another backend server

Steps to Reproduce the Problem
- Server A installed with 1 Backend service (using .net core 3.1) and Gateway (Ocelot) service
- Server B installed with 1 Backend service
- When All service running, client able to connect websocket using gateway
- When Backend service is turned off on Server A and backend in server B is running, client unable to connect websocket via gateway
- When Backend service is turned off on Server B and backend in server A is running, client unable to connect websocket via gateway
- Http request is running fine.
Specifications
- Version: Ocelot 16.0.1
- Platform: .net Core 3.1
- Subsystem:
- Please see my config on my ocelot.json
{
"Routes": [
{
"DownstreamPathTemplate": "/OPUIAPI/api/{everything}",
"DownstreamScheme": "http",
"DownstreamHostAndPorts": [
{
"Host": "bthsa1163.infineon.com",
"Port": 8001
},
{
"Host": "bthtsa1030.infineon.com",
"Port": 8000
}
],
"UpstreamPathTemplate": "/gateway/opui/api/{everything}",
"UpstreamHttpMethod": [
"Get",
"Put",
"Post"
],
"AuthenticationOptions": null,
"FileCacheOptions": {
"TtlSeconds": 0
},
"LoadBalancerOptions": {
"Type": "LeastConnection"
}
},
{
"DownstreamPathTemplate": "/eqstatoui/api/{everything}",
"DownstreamScheme": "http",
"DownstreamHostAndPorts": [
{
"Host": "bthsa1163.infineon.com",
"Port": 8000
}
],
"UpstreamPathTemplate": "/gateway/eqstat/api/{everything}",
"UpstreamHttpMethod": [
"Get",
"Put",
"Post"
],
"AuthenticationOptions": null,
"FileCacheOptions": {
"TtlSeconds": 0
},
"LoadBalancerOptions": {
"Type": "LeastConnection"
}
},
{
"DownstreamPathTemplate": "/eqstatoui/signalr",
"DownstreamScheme": "ws",
"DownstreamHostAndPorts": [
{
"Host": "bthsa1163.infineon.com",
"Port": 8000
}
],
"UpstreamPathTemplate": "/gateway/eqstat/signalr",
"UpstreamHttpMethod": [
"Get",
"Put",
"Post",
"Delete",
"Options"
],
"AuthenticationOptions": null,
"FileCacheOptions": {
"TtlSeconds": 0
},
"LoadBalancerOptions": {
"Type": "LeastConnection"
}
},
{
"DownstreamPathTemplate": "/eqstatoui/signalr/{catchAll}",
"DownstreamScheme": "ws",
"DownstreamHostAndPorts": [
{
"Host": "bthsa1163.infineon.com",
"Port": 8000
}
],
"UpstreamPathTemplate": "/gateway/eqstat/signalr/{catchAll}",
"UpstreamHttpMethod": [
"Get",
"Put",
"Post",
"Delete",
"Options"
],
"AuthenticationOptions": null,
"FileCacheOptions": {
"TtlSeconds": 0
},
"LoadBalancerOptions": {
"Type": "LeastConnection"
}
},
{
"DownstreamPathTemplate": "/OPUIAPI/signalr",
"DownstreamScheme": "ws",
"DownstreamHostAndPorts": [
{
"Host": "bthsa1163.infineon.com",
"Port": 8001
},
{
"Host": "bthtsa1030.infineon.com",
"Port": 8000
}
],
"UpstreamPathTemplate": "/gateway/opui/signalr",
"UpstreamHttpMethod": [
"Get",
"Put",
"Post",
"Delete",
"Options"
],
"AuthenticationOptions": null,
"FileCacheOptions": {
"TtlSeconds": 0
},
"LoadBalancerOptions": {
"Type": "LeastConnection"
}
},
{
"DownstreamPathTemplate": "/OPUIAPI/signalr/{catchAll}",
"DownstreamScheme": "ws",
"DownstreamHostAndPorts": [
{
"Host": "bthsa1163.infineon.com",
"Port": 8001
},
{
"Host": "bthtsa1030.infineon.com",
"Port": 8000
}
],
"UpstreamPathTemplate": "/gateway/opui/signalr/{catchAll}",
"UpstreamHttpMethod": [
"Get",
"Put",
"Post",
"Delete",
"Options"
],
"AuthenticationOptions": null,
"FileCacheOptions": {
"TtlSeconds": 0
},
"LoadBalancerOptions": {
"Type": "LeastConnection"
}
}
],
"GlobalConfiguration": {
"BaseUrl": "https://localhost:5011"
}
}