This is an automated email from the ASF dual-hosted git repository. hyunkun pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/dubbo-website.git
The following commit(s) were added to refs/heads/master by this push: new b5e9e9e fix broken link for chinese develop guide (#641) b5e9e9e is described below commit b5e9e9eb9d03e19785e7266de1998e0428ee5361 Author: Huang YunKun <hty...@gmail.com> AuthorDate: Wed Nov 4 11:46:01 2020 +0800 fix broken link for chinese develop guide (#641) --- .gitignore | 3 +- en-us/blog/dubboAsync_client.md | 10 ++-- mkdocs_zh.yml | 102 ++++++++++++++++++++-------------------- zh-cn/blog/dubboAsync_client.md | 10 ++-- 4 files changed, 59 insertions(+), 66 deletions(-) diff --git a/.gitignore b/.gitignore index 7267736..dec8d8b 100644 --- a/.gitignore +++ b/.gitignore @@ -9,4 +9,5 @@ build/ index.html md_json/ site/ -deploy_dist/ \ No newline at end of file +deploy_dist/ +.venv/ \ No newline at end of file diff --git a/en-us/blog/dubboAsync_client.md b/en-us/blog/dubboAsync_client.md index d5993be..ea4271b 100644 --- a/en-us/blog/dubboAsync_client.md +++ b/en-us/blog/dubboAsync_client.md @@ -8,7 +8,7 @@ description: Implementation background and practice of Dubbo client asynchronous ## Preface -![image | left](../../img/blog/dubboasyn_client/1_en.png "") +![image](../../img/blog/dubboasyn_client/1_en.png) Let's start with a brief introduction about the stages of a complete Dubbo invocation. 1. Biz~ represents business thread, that is, the thread where the business logic is located. Biz~ thread pool may be created and maintained by business itself, most of which may be managed by system framework itself (for example, a web system runs under Tomcat container, Biz~ thread is maintained by Tomcat); IO~ stands for network data processing thread, which is created and maintained by IO framework (such as Netty, Grizzly). Dubbo Remoting's default Netty implementation is NioEventloop [...] @@ -70,13 +70,9 @@ In the above configuration, the `sayHello` method is called synchronously, so th ### Practical advice -* <div data-type="alignment" data-value="justify" style="text-align:justify"> - <div data-type="p">Logical Non-Strongly dependent results after RPC invocation: Asynchronous callbacks are suitable for client-side asynchronous invocation when the client <strong>is not strongly dependent on the server response</strong>.</div> - </div> +* Logical Non-Strongly dependent results after RPC invocation: Asynchronous callbacks are suitable for client-side asynchronous invocation when the client <strong>is not strongly dependent on the server response</strong>. -* <div data-type="alignment" data-value="justify" style="text-align:justify"> - <div data-type="p">RX scenario: after learning about reactive programming model, I believe that as long as the programming thinking can embrace reactive and the state machine design of business model can be adjusted appropriately, asynchronous solutions can be applied in all scenarios, so as to achieve better terminal response experience. For Dubbo, the current asynchronous interface model needs to be improved like the reactive model interface in order to make the user more naturally a [...] - </div> +* RX scenario: after learning about reactive programming model, I believe that as long as the programming thinking can embrace reactive and the state machine design of business model can be adjusted appropriately, asynchronous solutions can be applied in all scenarios, so as to achieve better terminal response experience. For Dubbo, the current asynchronous interface model needs to be improved like the reactive model interface in order to make the user more naturally apply the asynchrono [...] ### Conclusions diff --git a/mkdocs_zh.yml b/mkdocs_zh.yml index 42948fb..f3ef79b 100644 --- a/mkdocs_zh.yml +++ b/mkdocs_zh.yml @@ -114,58 +114,58 @@ nav: - "版本与升级": - "2.7.x升级步骤及注意事项": 'docs/2.7/user/versions/version-270.md' - "开发手册": - - "源码构建": 'dev/build.md' - - "框架设计": 'dev/design.md' - - "扩展点加载": 'dev/SPI.md' - - "实现细节": 'dev/implementation.md' + - "源码构建": 'docs/2.7/dev/build.md' + - "框架设计": 'docs/2.7/dev/design.md' + - "扩展点加载": 'docs/2.7/dev/SPI.md' + - "实现细节": 'docs/2.7/dev/implementation.md' - "SPI 扩展实现": - - "协议扩展": 'dev/impls/protocol.md' - - "调用拦截扩展": 'dev/impls/filter.md' - - "引用监听扩展": 'dev/impls/invoker-listener.md' - - "暴露监听扩展": 'dev/impls/exporter-listener.md' - - "集群扩展": 'dev/impls/cluster.md' - - "路由扩展": 'dev/impls/router.md' - - "负载均衡扩展": 'dev/impls/load-balance.md' - - "合并结果扩展": 'dev/impls/merger.md' - - "注册中心扩展": 'dev/impls/registry.md' - - "监控中心扩展": 'dev/impls/monitor.md' - - "扩展点加载扩展": 'dev/impls/extension-factory.md' - - "动态代理扩展": 'dev/impls/proxy-factory.md' - - "编译器扩展": 'dev/impls/compiler.md' - - "消息派发扩展": 'dev/impls/dispatcher.md' - - "线程池扩展": 'dev/impls/threadpool.md' - - "序列化扩展": 'dev/impls/serialize.md' - - "网络传输扩展": 'dev/impls/remoting.md' - - "信息交换扩展": 'dev/impls/exchanger.md' - - "组网扩展": 'dev/impls/networker.md' - - "Telnet 命令扩展": 'dev/impls/telnet-handler.md' - - "状态检查扩展": 'dev/impls/status-checker.md' - - "容器扩展": 'dev/impls/container.md' - - "页面扩展": 'dev/impls/page.md' - - "缓存扩展": 'dev/impls/cache.md' - - "验证扩展": 'dev/impls/validation.md' - - "日志适配扩展": 'dev/impls/logger-adapter.md' - - "配置中心": 'dev/impls/config-center.md' - - "公共契约": 'dev/contract.md' - - "编码约定": 'dev/coding.md' + - "协议扩展": 'docs/2.7/dev/impls/protocol.md' + - "调用拦截扩展": 'docs/2.7/dev/impls/filter.md' + - "引用监听扩展": 'docs/2.7/dev/impls/invoker-listener.md' + - "暴露监听扩展": 'docs/2.7/dev/impls/exporter-listener.md' + - "集群扩展": 'docs/2.7/dev/impls/cluster.md' + - "路由扩展": 'docs/2.7/dev/impls/router.md' + - "负载均衡扩展": 'docs/2.7/dev/impls/load-balance.md' + - "合并结果扩展": 'docs/2.7/dev/impls/merger.md' + - "注册中心扩展": 'docs/2.7/dev/impls/registry.md' + - "监控中心扩展": 'docs/2.7/dev/impls/monitor.md' + - "扩展点加载扩展": 'docs/2.7/dev/impls/extension-factory.md' + - "动态代理扩展": 'docs/2.7/dev/impls/proxy-factory.md' + - "编译器扩展": 'docs/2.7/dev/impls/compiler.md' + - "消息派发扩展": 'docs/2.7/dev/impls/dispatcher.md' + - "线程池扩展": 'docs/2.7/dev/impls/threadpool.md' + - "序列化扩展": 'docs/2.7/dev/impls/serialize.md' + - "网络传输扩展": 'docs/2.7/dev/impls/remoting.md' + - "信息交换扩展": 'docs/2.7/dev/impls/exchanger.md' + - "组网扩展": 'docs/2.7/dev/impls/networker.md' + - "Telnet 命令扩展": 'docs/2.7/dev/impls/telnet-handler.md' + - "状态检查扩展": 'docs/2.7/dev/impls/status-checker.md' + - "容器扩展": 'docs/2.7/dev/impls/container.md' + - "页面扩展": 'docs/2.7/dev/impls/page.md' + - "缓存扩展": 'docs/2.7/dev/impls/cache.md' + - "验证扩展": 'docs/2.7/dev/impls/validation.md' + - "日志适配扩展": 'docs/2.7/dev/impls/logger-adapter.md' + - "配置中心": 'docs/2.7/dev/impls/config-center.md' + - "公共契约": 'docs/2.7/dev/contract.md' + - "编码约定": 'docs/2.7/dev/coding.md' - "设计原则": - - "魔鬼在细节": 'dev/principals/code-detail.md' - - "一些设计上的基本常识": 'dev/principals/general-knowledge.md' - - "谈谈扩充式扩展与增量式扩展": 'dev/principals/expansibility.md' - - "配置设计": 'dev/principals/configuration.md' - - "设计实现的健壮性": 'dev/principals/robustness.md' - - "防痴呆设计": 'dev/principals/dummy.md' - - "扩展点重构": 'dev/principals/extension.md' - - "版本发布": 'dev/release.md' - - "贡献代码": 'dev/contribution.md' - - "检查列表": 'dev/checklist.md' - - "坏味道": 'dev/code-smell.md' - - "兼容性测试": 'dev/TCK.md' + - "魔鬼在细节": 'docs/2.7/dev/principals/code-detail.md' + - "一些设计上的基本常识": 'docs/2.7/dev/principals/general-knowledge.md' + - "谈谈扩充式扩展与增量式扩展": 'docs/2.7/dev/principals/expansibility.md' + - "配置设计": 'docs/2.7/dev/principals/configuration.md' + - "设计实现的健壮性": 'docs/2.7/dev/principals/robustness.md' + - "防痴呆设计": 'docs/2.7/dev/principals/dummy.md' + - "扩展点重构": 'docs/2.7/dev/principals/extension.md' + - "版本发布": 'docs/2.7/dev/release.md' + - "贡献代码": 'docs/2.7/dev/contribution.md' + - "检查列表": 'docs/2.7/dev/checklist.md' + - "坏味道": 'docs/2.7/dev/code-smell.md' + - "兼容性测试": 'docs/2.7/dev/TCK.md' - "管理者文档": - - "Dubbo Admin介绍": 'admin/introduction.md' - - "服务搜索和详情": 'admin/serviceSearch.md' - - "服务治理": 'admin/serviceGovernance.md' - - "服务测试": 'admin/serviceTest.md' + - "Dubbo Admin介绍": 'docs/2.7/admin/introduction.md' + - "服务搜索和详情": 'docs/2.7/admin/serviceSearch.md' + - "服务治理": 'docs/2.7/admin/serviceGovernance.md' + - "服务测试": 'docs/2.7/admin/serviceTest.md' - "3.0": - "User's Guide": - "Preface": @@ -173,8 +173,8 @@ nav: - "Blog": - "2019-2020回顾": 'blog/apache-dubbo-2019-2020.md' - "服务测试": 'blog/service-test.md' - - "Dubbo server asynchronous": 'blog/dubboAsync_server.md' - - "Dubbo client asynchronous": 'blog/dubboAsync_client.md' + - "Dubbo服务端异步接口的实现背景和实践": 'blog/dubboAsync_server.md' + - "Dubbo客户端异步接口的实现背景和实践": 'blog/dubboAsync_client.md' - "Fescar to ensure Dubbo Microservices consistency": 'blog/dubbo-fescar.md' - "Prepare an Apache Release": 'blog/prepare-an-apache-release.md' - "Dubbo protocol": 'blog/dubbo-protocol.md' diff --git a/zh-cn/blog/dubboAsync_client.md b/zh-cn/blog/dubboAsync_client.md index ab14225..d62f9b7 100644 --- a/zh-cn/blog/dubboAsync_client.md +++ b/zh-cn/blog/dubboAsync_client.md @@ -10,7 +10,7 @@ description: Dubbo客户端异步接口的实现背景和实践 -![image | left](../../img/blog/dubboasyn_client/1.png "") +![image](../../img/blog/dubboasyn_client/1.png) 先简单介绍下一次完整的Dubbo调用所经历的线程阶段。几个信息这里罗列下 @@ -74,13 +74,9 @@ public class NotifyImpl implements Notify{ ### 实践建议 -* <div data-type="alignment" data-value="justify" style="text-align:justify"> - <div data-type="p">RPC调用后的逻辑非强依赖结果:异步回调是在客户端<strong>非强依赖服务端的结果</strong>情况下,是适用客户端的异步调用。</div> - </div> +* RPC调用后的逻辑非强依赖结果:异步回调是在客户端<strong>非强依赖服务端的结果</strong>情况下,是适用客户端的异步调用。 -* <div data-type="alignment" data-value="justify" style="text-align:justify"> - <div data-type="p">rx场景:自从了解到reactive的编程模型后,认为只要编程思维能够拥抱reactive,并且业务模型的状态机设计能做适当的调整,任何场景下都比较适用异步来解决,从而得到更好的终端响应体验。 对于Dubbo来说,当下的异步接口模型是需要像reactive的模型接口做改进,才能使得用户更自然地适用异步接口。</div> - </div> +* rx场景:自从了解到reactive的编程模型后,认为只要编程思维能够拥抱reactive,并且业务模型的状态机设计能做适当的调整,任何场景下都比较适用异步来解决,从而得到更好的终端响应体验。 对于Dubbo来说,当下的异步接口模型是需要像reactive的模型接口做改进,才能使得用户更自然地适用异步接口。 ### 小结