weibocom / motan

A cross-language remote procedure call(RPC) framework for rapid development of high performance distributed services.
Other
5.89k stars 1.78k forks source link

失败重试 #819

Open zxn-git opened 5 years ago

zxn-git commented 5 years ago

我想问一下,有没有地方可以配置重试请求的超时时间,比如:我正常请求超时500ms,如果这次请求超时,那么我进行重试(一次),这个重试的请求有没有地方可以设置超时时间? 如果没有,有没有办法自己实现,怎么实现?

rayzhang0603 commented 5 years ago

motan的超时设置是针对服务或者方法的,无法针对单个请求定义超时时间。

如果要自己实现的话,会比较麻烦。需要修改NettyChannel,在发送请求时根据service名和retry信息,按自定义配置(例如从properties中获取)修改超时时间。可以使用spi扩展机制实现EndpointFactory扩展点。实现方式可以参考motan的netty模块或者netty4模块

zxn-git commented 5 years ago

我这边也是针对方法,想设置某个方法超时后,进行一次重试,但是两次的超时时间能不能设置的不一样,重试的时候想时间短一些,在不麻烦的情况下

rayzhang0603 commented 5 years ago

这个场景就是同一个方法的两次请求(初次请求和重试请求)超时时间不一样,目前没有简单的方法支持这样的场景,只能从EndpointFactory进行扩展来实现

zxn-git commented 5 years ago

好的,谢谢啦