feat: add global dubbo instance conception #2406
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds global dubbo Instance conception (Instance may be replaced by a more ideal conception).
In the former PRs, we introduced client layer mapping to config.ReferenceConfig. Then, server layer mapping to config.ServiceConfig will be introduced too. These layers can provide the basic RPC function for users. But for users who hope to inject global configurations (eg. config.ApplicationConfig) and initialize common modules needed by both client and server sides (eg. config.RegistryConfig), it is not enough.
As a result, we introduce a top layer conception Instance mapping to config.RootConfig. It is responsible for setting global configurations and common modules. Then, user-side code would changed like this:
PS. This layer also needs compatible functions like #2399.