-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Open
Labels
Health CheckPOC Health ChecksPOC Health ChecksLoad BalancerOcelot feature: Load BalancerOcelot feature: Load BalanceracceptedBug or feature would be accepted as a PR or is being worked onBug or feature would be accepted as a PR or is being worked onbugIdentified as a potential bugIdentified as a potential bughelp wantedNot actively being worked on. If you plan to contribute, please drop a note.Not actively being worked on. If you plan to contribute, please drop a note.large effortLikely over a week of development effortLikely over a week of development effortmedium effortLikely a few days of development effortLikely a few days of development effortproposalProposal for a new functionality in OcelotProposal for a new functionality in Ocelot
Description
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"
}
}
Metadata
Metadata
Assignees
Labels
Health CheckPOC Health ChecksPOC Health ChecksLoad BalancerOcelot feature: Load BalancerOcelot feature: Load BalanceracceptedBug or feature would be accepted as a PR or is being worked onBug or feature would be accepted as a PR or is being worked onbugIdentified as a potential bugIdentified as a potential bughelp wantedNot actively being worked on. If you plan to contribute, please drop a note.Not actively being worked on. If you plan to contribute, please drop a note.large effortLikely over a week of development effortLikely over a week of development effortmedium effortLikely a few days of development effortLikely a few days of development effortproposalProposal for a new functionality in OcelotProposal for a new functionality in Ocelot