Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix: get stuck when load extension in the concurrency environment #184

Merged
merged 3 commits into from
Mar 20, 2024

Conversation

onewe
Copy link
Contributor

@onewe onewe commented Mar 16, 2024

  • Add a new struct called LoadExtensionPromise
  • Remove async modifier in ExtensionDirectory

Close #183

- Add a new struct called LoadExtensionPromise
- Remove async modifier in ExtensionDirectory

Close apache#183
dubbo/src/extension/mod.rs Outdated Show resolved Hide resolved
@onewe onewe requested a review from kwsc98 March 18, 2024 08:59
Copy link

@kwsc98 kwsc98 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

可以简化一下

dubbo/src/extension/mod.rs Show resolved Hide resolved
@kwsc98
Copy link

kwsc98 commented Mar 19, 2024

good work !

@yang20150702
Copy link
Member

Good work!

@yang20150702 yang20150702 merged commit c8cf3a1 into apache:refact/cluster Mar 20, 2024
2 checks passed
@onewe onewe deleted the issues/183 branch March 20, 2024 14:27
yang20150702 added a commit that referenced this pull request Mar 29, 2024
* feat(dubbo): add unix feature

* Rft: replace feature with target_os cfg

* Rft(dubbo): add ClientBuilder for client

* Rftï(dubbo-build): add build api for client

* style(examples): cargo fmt

* Rft: move connection from client to transport mod

* Rft(dubbo): add default timeout for client

* Ftr: add serverBuilder for Server, support multiple ways to start server

* Rft(examples): update yaml

* refactor(dubbo): update invoker trait

* refactor(cluster): add Cluster MockImpl

* refactor(triple): use ClientBuilder to init Cluster ability

* Update builder.rs

update default direct value

* Update triple.rs

handle unused var

* Update mod.rs

comment some codes

* refactor(triple): rm unused var in clientBuilder

* refactor(dubbo): delete some codes

* refactor(cluster): rm some duplicate codes

* refactor(registry): rm unused import

* refactor(triple): use two build func for different usage

* style: cargo fmt --all

* refactor(cluster): rm registryWrapper

* refactor(cluster): delete print

* chore(dubbo): upgrade hyper version in cargo.toml

* refactor(cluster): comment the logic of clone body

* Rft(triple): remove Clone of Invoker

* Rft(cluster): use ready_cache to manage Invokers, add ready_cache in FailoverCluster

* Rft(protocol): use interface Inheritance to redesign Invoker

* Feat(cluster): Cluster Policy Impl (#146)

* refactor(cluster): comment the logic of clone body

* Rft(triple): remove Clone of Invoker

* Rft(cluster): use ready_cache to manage Invokers, add ready_cache in FailoverCluster

* Rft(protocol): use interface Inheritance to redesign Invoker

---------

Co-authored-by: G-XD <[email protected]>
Co-authored-by: GXD <[email protected]>

* chore(github): rm workflow_dispatch in workflow (#149)

* feat: Add Router Module(#144) (#153)

add condition router,
add tag router,
use nacos as router config center

* Ftr: failover cluster (#156)

* Ftr: add ServiceNameDirectory (#157)

* Ftr: failover cluster

* Ftr: add ServiceNameDirectory

* Feat/cluster Optimized the Router module (#160)

* perf: Optimized the logic of the routing module.

Refactored route logic decision-making, eliminating unnecessary cloning
and improving performance.

* perf: Optimized the logic of the routing module.

Refactored route logic decision-making, eliminating unnecessary cloning
and improving performance.

* perf: Removed unnecessary configurations.

* perf: Removed unnecessary configurations.

* perf: Optimized the Router module

Optimized the Router module
Added Router Chain to MockDirectory

* Refactor: refactor Cluster component (#165)

* Refactor: refactor Cluster component

- add p2c loadbalance component
- add simple router component
- add replay body component
- add failover component
- add service directory compoent

* Enhance: add cache for routers

* Tst: local test passed (#166)

* Tst: local test passed

* Enhance: remove unnecessary key

* Enhance: add BUFFER SIZE const variable

* style(dubbo): cargo fmt --all

* style(dubbo): cargo fix --lib -p dubbo --allow-dirty

* chore(github): update branch in pr

* Mod: format code and fix some warnings (#167)

* style(dubbo): cargo fmt --all

* style(dubbo): cargo fix --lib -p dubbo --allow-dirty

* chore(github): update branch in pr

* Rft: adapt nacos registry and zookeeper registry (#169)

* Rft: adapt nacos registry and zookeeper registry

Close #168

* Rft: adapt static registry

* Rft: cargo fmt

* Ftr: add extension module (#181)

* Ftr: add extension module

- adapt static registry by extension
- adapt nacos  registry by extension

link #180

* cargo fmt all

* fix ci error

* fix nacos image version error

* Rft: re-design extension register

* Fix: cargo fix

* Fix: add some license for every files

- extract UrlParam to single file
- fix github ci error

* Fix: fmt all

* Fix: Add license for extension_param.rs and registry_param.rs

* Fix: rename query_param_by_kv method name

* Fix: get stuck when load extension in the concurrency environment (#184)

* Fix: get stuck when load extension in the concurrency environment

- Add a new struct called LoadExtensionPromise
- Remove async modifier in ExtensionDirectory

Close #183

* Ftr: use RwLock instead of unsafe

* Rft: simplify the code of extension promise resolve

* refeat(extensions): add sync for Registry trait

* chore: cargo fmt

* chore: cargo fmt

* chore: cargo fmt

* chore: cargo fmt

---------

Co-authored-by: G-XD <[email protected]>
Co-authored-by: GXD <[email protected]>
Co-authored-by: Urara <[email protected]>
Co-authored-by: 毛文超 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants