I am using consul and envoy for building service mesh. I am stuck at how to setup the retry-policy for the services.
I have two services A and B behind ingress-gateway. I want to setup the retry policy via some configuration (don’t want to use the headers) so that when service A calls the service B and if service B replies with 5xx. The service A should retry making calls to service B.
Can someone help/guide me in the right direction?
Here is what i have tried so far:
- setting up config n the service A config
This doesn’t seems to work.
Hi @shweshi I believe what you are looking for a is a service router. You can implement re-try logic with the service router. Take a look at the
ServiceRouteDestination configuration block, there you will find the retry parameters.
Hey @karl-cardenas-coding thanks for the quick response… i did try the service router. Which is working fine with the ingress gateway (N/S) so when i make a call from ingress gateway to service a or service b… its performing retry but the same is not working if i make call from service a to service b. Any idea if i am missing something.
Ohh may be i need to configure service route for each of the services @karl-cardenas-coding is it?
@shweshi Do you have a service router configuration for
serviceA that specifies a destination of
serviceB ? It seems like that piece is also missing.
I will give it a try… by the way is there any way to setup default retry-policy so that i don’t need to define a route policy for every service service A is calling.
Else i will need to create routes and destination for each service B and service C in SErvice A service-route.
@shweshi There is no global retry policy that I am aware off. I’m also not sure that’s something I would feel comfortable applying to all services. But I see your point for wanting that.