服务重试机制可以在应用暂时不可达或应用内部出现偶发性错误时重新发送请求,通过多次尝试来获取正确的响应信息,提高系统的健壮性。
注意事项说明
同时配置服务超时和服务重试规则,服务超时的超时响应时间可能会影响实际的重试次数。
举例说明,假设在服务超时页面设置的超时响应时间为1000ms,在服务重试页面设置了触发条件为5xx的重试规则,重试次数为5,再假设应用处理一条请求耗时300ms,则此时的实际运行情况如下图所示,应用会在处理第三次重试时因为时间耗尽而结束重试,直接返回超时错误。
创建服务重试规则
- 登录MSE治理中心控制台。
- 在左侧导航栏选择。
- 在顶部菜单栏选择地域,然后单击具体应用的名称。
- 在应用详情页面选择服务重试页签,然后单击创建规则。
- 在创建服务重试规则面板中配置相关参数,然后单击确定。
服务重试规则的参数说明:
参数 |
描述 |
规则名称 |
服务超时规则的名称。例如:retry-example。 |
标签 |
选择服务的路由标签。
|
框架类型 |
应用的框架类型,默认为服务网格。
|
流量来源 |
请求的发起方,即消费者应用,包括全部应用和特定应用。
说明 当选择特定应用时,只有请求的发起方在指定的应用集合中,才会触发服务重试逻辑。
|
特定应用 |
当流量来源选择特定应用时,设置目标应用。 |
触发条件 |
选择触发重试的条件。
- 5xx:应用返回500-599状态码则进行重试。5xx包含以下四种类型的触发条件:
- gateway-error:与5xx类似,只针对502,503,504状态码有效。
- reset:如果应用没有任何响应则进行重试。
- connect-failure:连接失败(例如超时)后进行重试。
- refused-stream:服务重置流时进行重试。
- retriable-4xx:应用返回4xx状态码时进行重试,目前仅支持409。
|
重试次数 |
设置请求触发重试时的最大重试次数。 |
每次重试的超时响应时间 |
如果应用的处理时间超过了设定的超时响应时间,则本次重试直接返回超时错误,单位:毫秒。
|
默认状态 |
服务重试规则的启用开关。
- 打开:创建后即启用,默认打开。
- 关闭:创建后不启用,如果需要启用,请在服务重试页面目标规则的操作列单击开启。
|
服务重试规则配置完成且开启后,请根据实际业务验证服务重试规则是否生效。
相关操作
服务重试规则创建完成后,您还可以编辑规则、根据规则的不同状态关闭规则或开启规则。当不再需要服务重试时,删除规则。