For applications deployed with Dubbo service, since application publishing needs to restart the process, many in-transit requests will fail due to the shutdown of the process at this time. Therefore, Dubbo needs a mechanism to notify all consumers not to initiate new requests before the application process exits, and at the same time wait for all in-transit requests to end before closing the process.
Difficulty
Advance
Mentor
@AlbumenJ albumenj@apache.org
@LaurenceLiZhixin laurence@apache.org
Output Requirement
This topic requires implementation on both the Java and Go SDKs.
This implementation is not based on registry notification.
Dubbo can notify all of its consumers that provider is going to shutdown.
Dubbo can wait for all its consumers to close until there are no requests.
Background
This is an Advance subject of ASoC 2022 and https://github.com/apache/dubbo/issues/10088 .
For applications deployed with Dubbo service, since application publishing needs to restart the process, many in-transit requests will fail due to the shutdown of the process at this time. Therefore, Dubbo needs a mechanism to notify all consumers not to initiate new requests before the application process exits, and at the same time wait for all in-transit requests to end before closing the process.
Difficulty
Advance
Mentor
Output Requirement
背景
这是一个阿里巴巴编程之夏 2022 的进阶课题 https://github.com/apache/dubbo/issues/10088 。
对于部署了 Dubbo 服务的应用,由于应用发布需要重启进程,这个时候很多在途请求会由于进程的关闭而失败。因此 Dubbo 需要一种机制,在应用进程退出前通知所有的消费端不再发起新的请求,同时等待所有在途请求结束后再关闭进程。
难度
进阶
导师
产出要求