[ASoC 2022] Dubbo support offline gracefully
- Dominant language
- Java
- Stars
- 41.6k
- Forks
- 26.4k
- Avg merge
- 15h 13m
- Merged PRs (30d)
- 4
Description
## Background
This is an Advance subject of [ASoC 2022](https://opensource.alibaba.com/asoc2022) 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
- @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.
#
## 背景
这是一个[阿里巴巴编程之夏 2022](https://opensource.alibaba.com/asoc2022) 的进阶课题 https://github.com/apache/dubbo/issues/10088 。
对于部署了 Dubbo 服务的应用,由于应用发布需要重启进程,这个时候很多在途请求会由于进程的关闭而失败。因此 Dubbo 需要一种机制,在应用进程退出前通知所有的消费端不再发起新的请求,同时等待所有在途请求结束后再关闭进程。
## 难度
进阶
## 导师
- @AlbumenJ albumenj@apache.org
- @LaurenceLiZhixin laurence@apache.org
## 产出要求
- 本题目需要在 Java 和 Go SDK 上均进行实现。
- 此实现要求不基于注册中心的通知。
- Dubbo 可以通知所有消费者提供者将要关闭。
- Dubbo 可以等待所有消费者关闭,直到没有请求为止。
Contributor guide
Assessment
This issue has not been assessed yet.