Hello,
I’m testing retries in service-routers
and it seems that if I chain a router and a splitter, the same split destination is always used in case of retry.
Here’s an example :
kind = "service-router"
name = "backend"
routes = [
{
match {
http {
path_prefix = "/v2"
}
}
destination {
service = "echo2"
}
},
{
match {
http {
path_prefix = "/"
}
}
destination {
service = "echo1"
num_retries = 3
retry_on_status_codes = [500]
}
},
]
kind = "service-splitter"
name = "echo1"
splits = [
{
weight = 90
},
{
weight = 10
service = "chaos"
},
]
NB : the chaos
service always returns a 500
.
The observed behavior is each time the traffic resolves on chaos
, the retries will all go there too. Is there a way to change that ?
I think I read somewhere that all the Consul resolution was done for a TCP connection, so the retries keep the same connection…
best,
Matthieu