diff --git a/.github/workflows/link_check.yml b/.github/workflows/link_check.yml new file mode 100644 index 000000000000..46b51dcf4be0 --- /dev/null +++ b/.github/workflows/link_check.yml @@ -0,0 +1,46 @@ +name: Link Check + +on: [push, pull_request, workflow_dispatch] + +jobs: + build_and_deploy_job: + if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.action != 'closed') + runs-on: ubuntu-latest + name: Build and Deploy Job + steps: + - uses: actions/checkout@v2 + with: + submodules: recursive + - name: Setup Node + uses: actions/setup-node@v1 + with: + node-version: '12.x' + - name: Setup Docsy + run: git submodule update --init --recursive && sudo npm install -D --save autoprefixer && sudo npm install -D --save postcss-cli + - name: Setup Hugo + uses: peaceiris/actions-hugo@v2 + with: + hugo-version: 'latest' + extended: true + - name: Build + env: + HUGO_ENV: production + run: hugo --minify --baseURL / + - name: Setup Html Test + run: curl https://htmltest.wjdp.uk | bash + - name: Lint Self + run: ./bin/htmltest -s + - name: Lint External + run: ./bin/htmltest + - name: Print lint failed list if failure + if: failure() + run: cat tmp/.htmltest/htmltest.log | grep -v "hitting ---" + - name: Pack lint result if failure + if: failure() + run: 7z a ${{ github.workspace }}/htmltest.zip tmp/.htmltest/* -r + - name: Upload lint result failure + if: failure() + uses: actions/upload-artifact@v2 + with: + name: "htmltest.zip" + path: htmltest.zip diff --git a/.htaccess b/.htaccess index b869b030c716..dcac7060468a 100644 --- a/.htaccess +++ b/.htaccess @@ -23,7 +23,7 @@ # special redirection for examples & handbook RewriteCond "%{HTTP:Accept-Language}" ^zh [NC] - RewriteRule ^/?faq/?([\w\-/]+)?$ "/zh/docs3-building/java-sdk/faq/$1" [L,R=302] + RewriteRule ^/?faq/?([\w\-/]+)?$ "/zh/docs3-v2/java-sdk/faq/$1" [L,R=302] RewriteRule ^/?faq/?([\w\-/]+)?$ "/en/docs/java-sdk/faq/$1" [L,R=302] diff --git a/.htmltest.yml b/.htmltest.yml new file mode 100644 index 000000000000..92de35a6751c --- /dev/null +++ b/.htmltest.yml @@ -0,0 +1,27 @@ +DirectoryPath: public +IgnoreAltMissing: true +IgnoreInternalEmptyHash: true +IgnoreDirectoryMissingTrailingSlash: true +ExternalTimeout: 15 +LogLevel: 1 +IgnoreURLs: [ + # starter not available => temp ignore + "http://start.dubbo.io", + # mesh + "https://github.com/apache/dubbo-go-samples/tree/master/route/meshroute", + # edit page => always ignore + "https://github.com/apache/dubbo-website/edit/master/content/.*", + "https://github.com/apache/dubbo-website/new/master/content/.*", + # docs external link might temporally unavailable => always ignore + "http://javatar.iteye.com/.*", + "https://www.baeldung.com/bdd-mockito", + "https://docs.github.com/.*", + "https://github.com/dubbo/awesome-dubbo/blob/master/slides/meetup/201812%40hangzhou/troubleshooting-dubbo-with-arthas.pdf", + "https://apachecon.dukecon.org/acna/2018/#/scheduledEvent/b8db9dc580d85853f", + "https://www.yuque.com/docs/share/eff9c51f-a7f4-47d6-87ff-11a2152bdffe?", + "https://www.yuque.com/docs/share/c698bd6e-e4d6-47db-bc1c-c757cc9b4f3e?", + "https://www.yuque.com/docs/share/c132d5db-0dcb-487f-8833-7c7732964bd4?#", + "https://www.yuque.com/docs/share/f4e72670-74ab-45b9-bc0c-4b42249ed953?#", + "https://www.oschina.net/question/3820517_2306822", + "https://www.webjars.org/documentation#servlet3", + "https://developer.aliyun.com/article/"] \ No newline at end of file diff --git a/config.toml b/config.toml index 34a5d2004482..3700a12f9196 100644 --- a/config.toml +++ b/config.toml @@ -162,11 +162,11 @@ name = "Dubbo mailing list archive" url = "https://lists.apache.org/list.html?dev@dubbo.apache.org" icon = "fa fa-envelope" desc = "Discussion and help from your fellow users" -[[params.links.user]] -name = "Twitter" -url = "https://twitter.com/ApacheDubbo" -icon = "fab fa-twitter" -desc = "Follow us on Twitter to get the latest news!" +#[[params.links.user]] +#name = "Bilibili" +#url = "https://space.bilibili.com/1395485052" +#icon = "fa-brands fa-bilibili" +#desc = "Follow us on Bilibili to get the latest news!" #[[params.links.user]] # name = "Stack Overflow" # url = "https://example.org/stack" diff --git a/content/en/blog/news/dubbo-101.md b/content/en/blog/news/dubbo-101.md index d6f0b65532a0..80e3ed452a45 100644 --- a/content/en/blog/news/dubbo-101.md +++ b/content/en/blog/news/dubbo-101.md @@ -86,7 +86,7 @@ The basic concepts of current framework of distributed service is similar to the 5. Running container – Initialize and load the provider and manage the lifecycle of running. -![dubbo-architecture](../../img/blog/dubbo-architecture.png) +![dubbo-architecture](/imgs/blog/dubbo-architecture.png) @@ -269,7 +269,7 @@ hi, dubbo Dubbo also provides a public platform that can create a Dubbo application quickly based on Spring Boot. Visit http://start.dubbo.io and follow the figure below to create an example project: -![dubbo initializr](../../img/blog/dubbo-initializr.png) +![dubbo initializr](/imgs/blog/dubbo-initializr.png) **Notes**: @@ -385,6 +385,6 @@ Eventually, we give an outline of how to create a Dubbo application quickly base --- 1. [Getting Started Using JavaTM RMI](https://docs.oracle.com/javase/6/docs/technotes/guides/rmi/hello/hello-world.html) -2. [Explicit target](http://dubbo.apache.org/docs/v2.7/user/examples/explicit-target/) -3. [Multicast Registry](http://dubbo.apache.org/docs/v2.7/user/references/registry/multicast/) -4. [Online QOS command](http://dubbo.apache.org/docs/v2.7/user/references/qos/) +2. [Explicit target](/en/docs/v2.7/user/examples/explicit-target/) +3. [Multicast Registry](/en/docs/v2.7/user/references/registry/multicast/) +4. [Online QOS command](/en/docs/v2.7/user/references/qos/) diff --git a/content/en/blog/news/dubbo-async-server.md b/content/en/blog/news/dubbo-async-server.md index d050186f96f5..b328a9625752 100644 --- a/content/en/blog/news/dubbo-async-server.md +++ b/content/en/blog/news/dubbo-async-server.md @@ -7,7 +7,7 @@ description: > --- ## Preface -It is suggested to make an understanding of the thread phase involved in the process of Dubbo first, please refer to [Implementation background and practice of Dubbo client asynchronous interface](http://dubbo.apache.org/en-us/blog/dubboAsync_client.html) for details. +It is suggested to make an understanding of the thread phase involved in the process of Dubbo first, please refer to [Implementation background and practice of Dubbo client asynchronous interface](/en/blog/2019/02/20/implementation-background-and-practice-of-dubbo-client-asynchronous-interface/) for details. ## Implementation background It is necessary to introduce the server-side thread strategy in more detail to deepen the user's judgment basis for selecting server-side asynchrony. It is also necessary to introduce coroutines, the "secret weapon" often used in server-side asynchrony. diff --git a/content/en/blog/news/dubbo-fescar.md b/content/en/blog/news/dubbo-fescar.md index ccdf0b38feba..f1085add454d 100644 --- a/content/en/blog/news/dubbo-fescar.md +++ b/content/en/blog/news/dubbo-fescar.md @@ -228,7 +228,7 @@ sh seata-server.sh -p 8091 -h 127.0.0.1 -m file ### Step 5: Run example - Start AccountService ([DubboAccountServiceStarter](https://github.com/seata/seata-samples/blob/master/dubbo/src/main/java/io/seata/samples/dubbo/starter/DubboAccountServiceStarter.java)). -- Start StorageService ([DubboStorageServiceStarter](https://github.com/seata/seata-samples/blob/master/dubbo/src/main/java/io/seata/samples/dubbo/starter/DubboStorageServiceStarter.java)). +- Start StockService ([DubboStockServiceStarter](https://github.com/seata/seata-samples/blob/master/dubbo/src/main/java/io/seata/samples/dubbo/starter/DubboStockServiceStarter.java)). - Start OrderService ([DubboOrderServiceStarter](https://github.com/seata/seata-samples/blob/master/dubbo/src/main/java/io/seata/samples/dubbo/starter/DubboOrderServiceStarter.java)). - Run BusinessService for test ([DubboBusinessTester](https://github.com/seata/seata-samples/blob/master/dubbo/src/main/java/io/seata/samples/dubbo/starter/DubboBusinessTester.java)). diff --git a/content/en/blog/news/dubbo-generic-invoke.md b/content/en/blog/news/dubbo-generic-invoke.md index fe93a9ca2b7f..d8d557cd1df5 100644 --- a/content/en/blog/news/dubbo-generic-invoke.md +++ b/content/en/blog/news/dubbo-generic-invoke.md @@ -185,4 +185,4 @@ So far, a simple service Mock platform has been successfully launched! ## Others - The generic invoke and generic interface implementations introduced in this article are all based on the native Dubbo protocol. Prior to version 2.6.2, other protocols such as http/hessian don't support generic invoke. Version 2.6.3 will support the generic invoke of these two protocols. -- The relevant sample codes mentioned in this article can be found in dubbo-samples: https://github.com/apache/dubbo-samples/tree/master/java/dubbo-samples-generic +- The relevant sample codes mentioned in this article can be found in dubbo-samples: https://github.com/apache/dubbo-samples/tree/master/dubbo-samples-generic diff --git a/content/en/blog/news/dubbo-graalvm-support.md b/content/en/blog/news/dubbo-graalvm-support.md index 62ce2308abd5..467fa0647400 100644 --- a/content/en/blog/news/dubbo-graalvm-support.md +++ b/content/en/blog/news/dubbo-graalvm-support.md @@ -25,7 +25,7 @@ GraalVM we use here is based on jdk version 1.8. ## Get Started -For user's convenience, we provide the following demo in the [apache:2.7-native_image](https://github.com/apache/dubbo/tree/2.7-native_image) branch. In module dubbo-demo-native, dubbo's provider and consumer demos are given: +For user's convenience, we provide the following demo in the [apache dubbo](https://github.com/apache/dubbo/) branch. In module dubbo-demo-native, dubbo's provider and consumer demos are given: ![](/imgs/blog/dubbo-graalvm-support/demo_path.png) @@ -329,7 +329,3 @@ public T getProxy(Invoker invoker, boolean generic) throws RpcException { The service here has multiple interfaces which have to be in order when requesting proxy. Set does not fulfill the requirement so we use ArrayList instead. Major modifications to dubbo source code are listed above. - - - -Link to the branch: https://github.com/apache/dubbo/tree/2.7-native_image diff --git a/content/en/blog/news/dubbo-k8s.md b/content/en/blog/news/dubbo-k8s.md index e67d6606e9ef..02c3c78315d4 100644 --- a/content/en/blog/news/dubbo-k8s.md +++ b/content/en/blog/news/dubbo-k8s.md @@ -85,7 +85,7 @@ Here we only discuss the situation that the Dubbo service in the cluster is acce 1. DNS: The default Kubernetes service is based on the DNS plugin (The latest version of the recommendation is coreDNS), one proposal on Dubbo is about this.  since HSF/Dubbo has always highlighted its soft-load address discovery capability, it ignores Static's strategy insteadily, my understanding is that as a service discovery mechanism, the static resolution mechanism is one of the simplest and most needed to support mechanism, you can also refer to Envoy's point of views. While at the same time, ant's SOFA has always supported this static strategy, it can provides an explanation for an engineering fragment of the SOFA project. There are two advantages to doing this. 1) When the soft load center crash is unavailable and the address list cannot be obtained, there is a mechanism to Failover to this policy to handle certain requests. 2) Under LDC/unitization, the ant's load center cluster is deployed in the equipment room/area. First, the LDC of the soft load center is guaranteed to be stable and controllable. When the unit needs the request center, the address of the VIP can come in handy. - ![img](https://img.alicdn.com/tfs/TB1Kj1ktpkoBKNjSZFEXXbrEVXa-985-213.png) + ![img](/imgs/blog/2018/09/30/integrate-dubbo-with-kubernetes/TB1Kj1ktpkoBKNjSZFEXXbrEVXa-985-213.png) 2. API:DNS relies on the DNS plugin, which will generate additional operation, so consider directly obtaining the endpoint through the client of Kubernetes. In fact, by accessing the API server interface of Kubernetes, you can directly obtain the list of endpoints behind a certain servie, and can also monitor the changes in its address list. Thereby implementing the soft load discovery strategy recommended by Dubbo/HSF. Refer to the code for details: @@ -99,27 +99,27 @@ The above two thoughts need to consider the following two points: The following is a demo deployment through Kubernetes service in Alibaba Cloud's Container Registry and EDAS. Visit Alibaba Cloud -》Container Registry. 1. Create repo and bind the github codebase. As shown below. - ![img](https://img.alicdn.com/tfs/TB1m.tEtrorBKNjSZFjXXc_SpXa-1892-870.png) + ![img](/imgs/blog/2018/09/30/integrate-dubbo-with-kubernetes/TB1m.tEtrorBKNjSZFjXXc_SpXa-1892-870.png) 2. Click Manage enter the repository details page. Click Build in images service panel, construct the demo into image and publish it to the specified repository. As shown below. - ![img](https://img.alicdn.com/tfs/TB1oYqvtcIrBKNjSZK9XXagoVXa-1872-888.png) + ![img](/imgs/blog/2018/09/30/integrate-dubbo-with-kubernetes/TB1oYqvtcIrBKNjSZK9XXagoVXa-1872-888.png) 3. Switch to Enterprise Distributed Application Services (EDAS) products panel, visit Resource Management -> Clusters. Create Kubernetes cluster and bind ECS. As shown below. - ![img](https://img.alicdn.com/tfs/TB1b1p2trZnBKNjSZFKXXcGOVXa-1858-833.png) + ![img](/imgs/blog/2018/09/30/integrate-dubbo-with-kubernetes/TB1b1p2trZnBKNjSZFKXXcGOVXa-1858-833.png) 4. Application Management -> Create application, type Kubernetes application and specify the image in the container registry . As shown below. - ![img](https://img.alicdn.com/tfs/TB1_YywtDCWBKNjSZFtXXaC3FXa-1737-588.png) + ![img](/imgs/blog/2018/09/30/integrate-dubbo-with-kubernetes/TB1_YywtDCWBKNjSZFtXXaC3FXa-1737-588.png) - ![](https://img.alicdn.com/tfs/TB18uzTtdcnBKNjSZR0XXcFqFXa-1820-861.png) + ![](/imgs/blog/2018/09/30/integrate-dubbo-with-kubernetes/TB18uzTtdcnBKNjSZR0XXcFqFXa-1820-861.png) 5. After creation , then deploy applications. As shown below. - ![](https://img.alicdn.com/tfs/TB1fEpEtrorBKNjSZFjXXc_SpXa-1846-783.png) + ![](/imgs/blog/2018/09/30/integrate-dubbo-with-kubernetes/TB1fEpEtrorBKNjSZFjXXc_SpXa-1846-783.png) - The supplementary application name cannot have uppercase letters, all lowercase, otherwise there is a problem of deployment failure. diff --git a/content/en/blog/news/dubbo-new-async.md b/content/en/blog/news/dubbo-new-async.md index d6894402e86c..f329f2602a62 100644 --- a/content/en/blog/news/dubbo-new-async.md +++ b/content/en/blog/news/dubbo-new-async.md @@ -11,7 +11,7 @@ Implementing the full asynchronous programming based on Dubbo, which is a new fe ## Asynchronous mode before version 2.6.x -Dubbo Provides some asynchronous programming capabilities in 2.6.x and earlier versions, including [Asynchronous Call](http://dubbo.apache.org/zh-cn/docs/user/demos/async-call.html), [Parameter Callback](http://dubbo.apache.org/zh-cn/docs/user/demos/callback-parameter.html) and [Event Notification](http://dubbo.apache.org/zh-cn/docs/user/demos/events-notify.html) on Consumer side. There are some brief introductions to the usage and Demo in the above document links. +Dubbo Provides some asynchronous programming capabilities in 2.6.x and earlier versions, including [Asynchronous Call](/en/docs/v2.7/user/examples/async-call/), [Parameter Callback](/en/docs/v2.7/user/examples/callback-parameter/) and [Event Notification](/en/docs/v2.7/user/examples/events-notify/) on Consumer side. There are some brief introductions to the usage and Demo in the above document links. But the current asynchronous method has the following problems: diff --git a/content/en/blog/news/dubbo-zk.md b/content/en/blog/news/dubbo-zk.md index a8fef4995424..b351472db01e 100644 --- a/content/en/blog/news/dubbo-zk.md +++ b/content/en/blog/news/dubbo-zk.md @@ -137,7 +137,7 @@ world ## Using Zookeeper in Dubbo Zookeeper is used for service registration discovery and configuration management in Dubbo, and the structure of data in Zookeeper is shown in the following figure: -![dubbo-in-zk](../../img/blog/dubbo-in-zk.jpg) +![dubbo-in-zk](/imgs/blog/dubbo-in-zk.jpg) First, all data related to Dubbo is organized under the root node of `/dubbo`. diff --git a/content/en/blog/news/how-to-proxy-dubbo-in-apache-apisix.md b/content/en/blog/news/how-to-proxy-dubbo-in-apache-apisix.md index c00f00aee466..c4c41c1d652e 100644 --- a/content/en/blog/news/how-to-proxy-dubbo-in-apache-apisix.md +++ b/content/en/blog/news/how-to-proxy-dubbo-in-apache-apisix.md @@ -7,7 +7,7 @@ description: In this article, we introduced how to use Apache APISIX to implemen ## Background -[Apache Dubbo](https://dubbo.apache.org/en/) is a MicroService development framework open sourced by Alibaba and donated to Apache, which provides two key capabilities of RPC communication and microservice governance. It has not only been validated by Ali's massive traffic in e-commerce scenario, but also been widely implemented in domestic technology companies. +[Apache Dubbo](/en/) is a MicroService development framework open sourced by Alibaba and donated to Apache, which provides two key capabilities of RPC communication and microservice governance. It has not only been validated by Ali's massive traffic in e-commerce scenario, but also been widely implemented in domestic technology companies. In practical application scenarios, Apache Dubbo is generally used as the implementation framework for RPC calls between back-end systems, and when HTTP interfaces need to be provided to the front-end, the Dubbo Service is packaged as an HTTP interface through a "glue layer" and then delivered to the front-end system. diff --git a/content/en/blog/news/how-to-proxy-dubbo-in-apache-shenyu.md b/content/en/blog/news/how-to-proxy-dubbo-in-apache-shenyu.md index f3e925fe3c35..1d4cabe6f0c6 100644 --- a/content/en/blog/news/how-to-proxy-dubbo-in-apache-shenyu.md +++ b/content/en/blog/news/how-to-proxy-dubbo-in-apache-shenyu.md @@ -25,7 +25,7 @@ In May 2021, `ShenYu` was donated to the `Apache` Software Foundation, and the A ## 2. Quick Start with Dubbo -This section describes how to connect the `Dubbo` service to the `Shenyu` gateway. You can find the [sample code] for this section directly under the project (https://github.com/apache/incubator-shenyu/tree/master/shenyu-examples/shenyu -examples-dubbo/shenyu-examples-apache-dubbo-service). +This section describes how to connect the `Dubbo` service to the `Shenyu` gateway. You can find the [sample code] for this section directly under the project (https://github.com/apache/shenyu/tree/master/shenyu-examples/shenyu-examples-dubbo -examples-dubbo/shenyu-examples-apache-dubbo-service). ### 2.1 Start shenyu-admin @@ -79,7 +79,7 @@ Make sure the gateway has introduced the relevant dependencies before starting. ### 2.3 Start shenyu-examples-dubbo -Take the example provided on the official website [shenyu-examples-dubbo](https://github.com/apache/incubator-shenyu/tree/master/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-apache-dubbo-service). Suppose the `dubbo` service is defined as follows. +Take the example provided on the official website [shenyu-examples-dubbo](https://github.com/apache/shenyu/tree/master/shenyu-examples/shenyu-examples-dubbo). Suppose the `dubbo` service is defined as follows. ```xml diff --git a/content/en/blog/news/pinpoint.md b/content/en/blog/news/pinpoint.md index ec6d64dc8f2f..5a6449835035 100644 --- a/content/en/blog/news/pinpoint.md +++ b/content/en/blog/news/pinpoint.md @@ -59,7 +59,7 @@ View additional details on the application such as CPU usage, Memory/Garbage Col ### Quickstart Pinpoint -[Quick start](http://naver.github.io/pinpoint/quickstart.html)(No neet to start TestApp) +[Quick start](https://pinpoint-apm.github.io/pinpoint/quickstart.html)(No neet to start TestApp) ### Dubbo demo diff --git a/content/en/blog/news/prepare-an-apache-release.md b/content/en/blog/news/prepare-an-apache-release.md index 07456967cd67..7c1505f13602 100644 --- a/content/en/blog/news/prepare-an-apache-release.md +++ b/content/en/blog/news/prepare-an-apache-release.md @@ -186,7 +186,7 @@ modifications and taggings related to ${release_version} Release Candidates are $ mvn release:prepare -Prelease -Darguments="-Dmaven.test.skip=true" -DautoVersionSubmodules=true -Dusername=YOUR GITHUB ID -DpushChanges=false ``` - > If you are promted to input password for pushing to GitHub (basically including adding new commits and tags), do not input your login password of GitHub. Use `Personal access tokens` instead. You can go to https://github.com/settings/profile, click `Developer settings` -> `Personal access tokens`, and generate a new token if not. Please refer to this [guide](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/) for more infomation. + > If you are promted to input password for pushing to GitHub (basically including adding new commits and tags), do not input your login password of GitHub. Use `Personal access tokens` instead. You can go to https://github.com/settings/profile, click `Developer settings` -> `Personal access tokens`, and generate a new token if not. Please refer to this [guide](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token) for more infomation. > you need to choose the release artifactId, next artifactId and the release tag, the default tag is dubbo-parent-xxxx, you need to change it to dubbo-xxxx @@ -217,7 +217,7 @@ modifications and taggings related to ${release_version} Release Candidates are 2. Checkout dubbo to local directory ```shell - $ svn checkout https://dist.apache.org/repos/dist/dev/incubator/dubbo + $ svn checkout https://dist.apache.org/repos/dist/dev/dubbo ``` Assume that the local directory is `~/apache/incubator/dubbo` @@ -228,13 +228,13 @@ modifications and taggings related to ${release_version} Release Candidates are $ mkdir ${release_version} ``` -4. Add public key to [KEYS](https://dist.apache.org/repos/dist/dev/incubator/dubbo/KEYS) file if you are the first time to be a release manager. KEYS is mainly used to allow people who participate in the voting to be imported locally to verify the correctness of the sign. +4. Add public key to [KEYS](https://dist.apache.org/repos/dist/dev/dubbo/KEYS) file if you are the first time to be a release manager. KEYS is mainly used to allow people who participate in the voting to be imported locally to verify the correctness of the sign. ```shell $ gpg -a --export your_key_id >> KEYS ``` - For more information on how to get your key id, please refer to this [guide](https://help.github.com/articles/generating-a-new-gpg-key/) + For more information on how to get your key id, please refer to this [guide](https://docs.github.com/en/authentication/managing-commit-signature-verification/generating-a-new-gpg-key) 5. Copy the source.zip package from the Dubbo root directory to the svn local repository dubbo/${release_version} @@ -277,7 +277,7 @@ modifications and taggings related to ${release_version} Release Candidates are ## Verify Release Candidates -**A full check list can be found [here](https://wiki.apache.org/incubator/IncubatorReleaseChecklist)** +**A full check list can be found [here](https://cwiki.apache.org/confluence/display/INCUBATOR/Incubator+Release+Checklist)** The verification link includes but is not limited to the following contents and forms: @@ -295,7 +295,7 @@ $ shasum -c apache-dubbo-${release_version}-bin-release.zip.sha512 If it's your first time verify a release candidte, you should import public keys first. ```sh - $ curl https://dist.apache.org/repos/dist/dev/incubator/dubbo/KEYS >> KEYS # download public keys to local directory + $ curl https://dist.apache.org/repos/dist/dev/dubbo/KEYS >> KEYS # download public keys to local directory $ gpg --import KEYS # import keys $ gpg —edit-key liujun > trust # type trust command @@ -355,7 +355,7 @@ Hello Dubbo Community, This is a call for vote to release Apache Dubbo (Incubating) version 2.6.2. The release candidates: -https://dist.apache.org/repos/dist/dev/incubator/dubbo/2.6.2/ +https://dist.apache.org/repos/dist/dev/dubbo/2.6.2/ Git tag for the release: https://github.com/apache/dubbo/tree/dubbo-2.6.2 @@ -367,7 +367,7 @@ Release Notes: https://github.com/apache/dubbo/releases/tag/untagged-4775c0a22c60fca55118 The artifacts have been signed with Key : 28681CB1, which can be found in the keys file: -https://dist.apache.org/repos/dist/dev/incubator/dubbo/KEYS +https://dist.apache.org/repos/dist/dev/dubbo/KEYS The vote will be open for at least 72 hours or until necessary number of votes are reached. @@ -404,7 +404,7 @@ https://lists.apache.org/thread.html/8d5c39eece6288beed2e22ca976350728c571d2a9ce A minor issue also can be found in the above thread. The release candidates (RC1): -https://dist.apache.org/repos/dist/dev/incubator/dubbo/2.6.4 +https://dist.apache.org/repos/dist/dev/dubbo/2.6.4 Git tag for the release (RC1): https://github.com/apache/dubbo/tree/dubbo-2.6.4 @@ -418,7 +418,7 @@ Release Notes: The artifacts have been signed with Key : 7955FB6D1DD21CF7, which can be found in the keys file: -https://dist.apache.org/repos/dist/dev/incubator/dubbo/KEYS +https://dist.apache.org/repos/dist/dev/dubbo/KEYS Look at here for how to verify this release candidate: https://github.com/apache/dubbo-website/blob/asf-site/blog/en-us/prepare-an-apache-release.md#prepare-apache-release @@ -457,12 +457,12 @@ The Apache Dubbo (Incubating) Team When the release vote has passed, -1. Add the release files to [official release directory](https://dist.apache.org/repos/dist/release/incubator/dubbo) -2. Remove the release files in [dev directory](https://dist.apache.org/repos/dist/dev/incubator/dubbo) -3. Remove the the release file for the previous release under [official release directory](https://dist.apache.org/repos/dist/release/incubator/dubbo/), which will be archived and can be found [here](https://archive.apache.org/dist/incubator/dubbo/) +1. Add the release files to [official release directory](https://dist.apache.org/repos/dist/release/dubbo) +2. Remove the release files in [dev directory](https://dist.apache.org/repos/dist/dev/dubbo) +3. Remove the the release file for the previous release under [official release directory](https://dist.apache.org/repos/dist/release/dubbo/), which will be archived and can be found [here](https://archive.apache.org/dist/incubator/dubbo/) 5. Publish [release notes](https://github.com/apache/dubbo/releases) on Github. 6. Update the recommend dependency on [Github](https://github.com/apache/dubbo#maven-dependency) to the latest version, also update the version in other place if necessary. -7. Add the download link to official website http://dubbo.apache.org/en-us/blog/download.html, using the ASF mirror system. The latest release download link should be something like [this](https://www.apache.org/dyn/closer.cgi?path=incubator/dubbo/$VERSION/apache-dubbo-$VERSION-source-release.zip). The download link for the previous release version should be changed like [this](https://archive.apache.org/dist/incubator/dubbo/$VERSION/apache-dubbo-$VERSION-bin-release.zip). Please refer to the [download page](https://github.com/apache/dubbo-website/blob/asf-site/blog/en-us/download.md) for more details. +7. Add the download link to official website https://dubbo.apache.org/en/blog/2020/05/18/past-releases/, using the ASF mirror system. The latest release download link should be something like `https://www.apache.org/dyn/closer.cgi?path=incubator/dubbo/$VERSION/apache-dubbo-$VERSION-source-release.zip`. The download link for the previous release version should be changed like `https://archive.apache.org/dist/incubator/dubbo/$VERSION/apache-dubbo-$VERSION-bin-release.zip)`. Please refer to the [download page](/en/blog/2020/05/18/past-releases/) for more details. 8. Make sure all the commits in the release branch are merged into master branch, and then remove the remote release branch. For example: `git push origin --delete 2.7.0-release` 9. Send mail to dev@dubbo.apache.org and general@incubator.apache.org, notify the community that the release is completed. The mail template to announce release: @@ -494,7 +494,7 @@ an issue on GitHub[4]. Apache Dubbo is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF. -[1] http://dubbo.apache.org/en-us/blog/download.html +[1] https://dubbo.apache.org/en/blog/2020/05/18/past-releases/ [2] http://central.maven.org/maven2/com/alibaba/dubbo [3] https://github.com/apache/dubbo/releases [4] https://github.com/apache/dubbo/issues diff --git a/content/en/blog/news/tracing-with-skywalking.md b/content/en/blog/news/tracing-with-skywalking.md index 7f807b1d3aa4..8f8c5e5ffd9c 100644 --- a/content/en/blog/news/tracing-with-skywalking.md +++ b/content/en/blog/news/tracing-with-skywalking.md @@ -8,7 +8,7 @@ description: > ## Introduction to Apache Skywalking -[Apache Skywalking](https://github.com/apache/incubator-skywalking) is the APM system that it designed for micro-services architectures and cloud native architecture systems and supports distribute tracking. [Apache skywalking (incubator)](https://github.com/apache/incubator-skywalking) collects and analyzes the trace data and generates the relationship between the application and the service metric, Apache skywalking supports multiple languages agent, for example [Java](https://github.com/apache/incubator-skywalking),[.net core](https://github.com/OpenSkywalking/skywalking-netcore),[Node.js](https://github.com/OpenSkywalking/skywalking-nodejs) and [Go](https://github.com/OpenSkywalking/skywalking-go). +[Apache Skywalking](https://github.com/apache/skywalking) is the APM system that it designed for micro-services architectures and cloud native architecture systems and supports distribute tracking. [Apache skywalking (incubator)](https://github.com/apache/skywalking) collects and analyzes the trace data and generates the relationship between the application and the service metric, Apache skywalking supports multiple languages agent, for example [Java](https://github.com/apache/skywalking),[.net core](https://github.com/OpenSkywalking/skywalking-netcore),[Node.js](https://github.com/OpenSkywalking/skywalking-nodejs) and [Go](https://github.com/SkyAPM/go2sky). Currently, Skywalking has supported analysis the operation of distributed systems from 6 visual dimensions. The overview view is a global view of your applications and components, including the number of components and applications, application alarm fluctuations, slow service lists, and application throughput; The topology shows the topological relationship of the whole application; The application view represents the upstream and downstream relationship of the application from single application, TOP N services and servers, JVM, host and process info. The service view focuses on the operation of a single service portal and the upstream and downstream dependencies of this service and it helps the user to optimize and monitor a single service; the trace graph shows all the buried points of the invocation and the execution time of each burial point, and the alarm view is based on the configuration threshold for the application, server, service for real-time alarms @@ -70,7 +70,7 @@ public class ConsumerController { ### Deploy Apache Skywalking -[Apache skywalking](https://github.com/apache/incubator-skywalking) offers two deployment modes: single-node mode and cluster mode,Here is the single-node mode deployment step, and more about how to deploy skywalking with cluster mode, please reference [document](https://github.com/apache/incubator-skywalking/blob/master/docs/en/Deploy-backend-in-cluster-mode.md). +[Apache skywalking](https://github.com/apache/skywalking) offers two deployment modes: single-node mode and cluster mode,Here is the single-node mode deployment step, and more about how to deploy skywalking with cluster mode, please reference [document](https://skywalking.apache.org/docs/main/latest/en/setup/backend/backend-setup/). #### Third-party components diff --git a/content/en/blog/releases/past-releases.md b/content/en/blog/releases/past-releases.md index 5f8d92ce79b5..623ad769dc0a 100644 --- a/content/en/blog/releases/past-releases.md +++ b/content/en/blog/releases/past-releases.md @@ -130,12 +130,6 @@ you can follow these [procedures](https://www.apache.org/info/verification) and [sha512](https://archive.apache.org/dist/dubbo/2.7.12/apache-dubbo-2.7.12-src.zip.sha512) -### 2.6.10.1 (2021-05-30) - -* [source](https://archive.apache.org/dist/dubbo/2.6.10.1/apache-dubbo-2.6.10.1-source-release.zip) | - [asc](https://archive.apache.org/dist/dubbo/2.6.10.1/apache-dubbo-2.6.10.1-source-release.zip.asc) | - [sha512](https://archive.apache.org/dist/dubbo/2.6.10.1/apache-dubbo-2.6.10.1-source-release.zip.sha512) - ### 2.7.11 (2021-05-12) * [source](https://archive.apache.org/dist/dubbo/2.7.11/apache-dubbo-2.7.11-src.zip) | diff --git a/content/en/docs/contribution-guidelines/committer/new-committer-guide_dev.md b/content/en/docs/contribution-guidelines/committer/new-committer-guide_dev.md index 58814542b4db..0117075a40fc 100644 --- a/content/en/docs/contribution-guidelines/committer/new-committer-guide_dev.md +++ b/content/en/docs/contribution-guidelines/committer/new-committer-guide_dev.md @@ -52,9 +52,9 @@ According to the prompt, the OAuth protocol of Github account is authorized to l ### 3, Set up GitHub account in github.com, two-factors authorization (2FA) * 1) install "Google Authenticator" app on your cell phone -* 2), Following the [authorized GitHub 2FA wiki](https://help.github.com/articles/configuring-two-factor-authentication-via-a-totp-mobile-app/), you can operation step by step . +* 2), Following the [authorized GitHub 2FA wiki](https://docs.github.com/en/authentication/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication), you can operation step by step . -In the [two-factors authorization authentication (2. Scan this barcode with your app.)](https://github.com/settings/two_factor_authentication/verify) page, it is not recommended to select a two-dimensional code with a cell phone, because some of the cell phones will not be able to scan. +In the [two-factors authorization authentication (2. Scan this barcode with your app.)](https://github.com/settings/security) page, it is not recommended to select a two-dimensional code with a cell phone, because some of the cell phones will not be able to scan. Please open the cell phone "Google Authenticator" app, click "+" to select "input the secret key": write the GitHub account in the account name input box. In your "secret key" input box, write the text of the "enter this text code" link in the open web page. After clicking "add" in app, 6 digit dynamic will be generated for this account. Write the 6 digit number to the text box in the web page, and then click "Enable". In this way, the 2fa is set successfully. @@ -68,7 +68,7 @@ Please open the cell phone "Google Authenticator" app, click "+" to select "inpu When access token is generated on GitHub, the token where the instruction line needs a password is pasted. -Refer to website [referenced link one](https://help.github.com/articles/https-cloning-errors/#provide-access-token-if-2fa-enabled) and [referenced link two](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/) +Refer to website [referenced link one](https://docs.github.com/en/repositories/creating-and-managing-repositories/troubleshooting-cloning-errors) and [referenced link two](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token) * B. switch to SSH @@ -87,9 +87,9 @@ If not discussed in the community (mailing list), just as it did not happen. ### Add your name -Please update Dubbo incubator status [page](https://incubator.apache.org/projects/dubbo.html) to add your name. See this [guide](http://dubbo.apache.org/en-us/docs/developers/committer-guide/apache-dubbo-page_dev.html) for instructions. +Please update Dubbo incubator status [page](https://incubator.apache.org/projects/dubbo.html) to add your name. See this [guide](/en/latest/contribution-guidelines/contributor/) for instructions. -Please update Dubbo official [website](http://dubbo.apache.org/en-us/docs/developers/developers_dev.html) to update your name. +Please update Dubbo official [website](/en/latest/contribution-guidelines/committer) to update your name. ### A small benefit diff --git a/content/en/docs/contribution-guidelines/committer/release-guide_dev.md b/content/en/docs/contribution-guidelines/committer/release-guide_dev.md index 633275863505..e766c510d5e9 100644 --- a/content/en/docs/contribution-guidelines/committer/release-guide_dev.md +++ b/content/en/docs/contribution-guidelines/committer/release-guide_dev.md @@ -197,7 +197,7 @@ modifications and taggings related to ${release_version} Release Candidates are $ mvn release:prepare -Prelease -Darguments="-Dmaven.test.skip=true" -DautoVersionSubmodules=true -Dusername=YOUR GITHUB ID -DpushChanges=false ``` - > If you are promted to input password for pushing to GitHub (basically including adding new commits and tags), do not input your login password of GitHub. Use `Personal access tokens` instead. You can go to https://github.com/settings/profile, click `Developer settings` -> `Personal access tokens`, and generate a new token if not. Please refer to this [guide](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/) for more infomation. + > If you are promted to input password for pushing to GitHub (basically including adding new commits and tags), do not input your login password of GitHub. Use `Personal access tokens` instead. You can go to https://github.com/settings/profile, click `Developer settings` -> `Personal access tokens`, and generate a new token if not. Please refer to this [guide](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token) for more infomation. > you need to choose the release artifactId, next artifactId and the release tag, the default tag is dubbo-parent-xxxx, you need to change it to dubbo-xxxx @@ -258,7 +258,7 @@ After this, maven will deploy jar to remote maven repsoitry in staging state. $ (gpg --list-sigs && gpg --armor --export ) >> KEYS ``` - For more information on how to get your key id, please refer to this [guide](https://help.github.com/articles/generating-a-new-gpg-key/) + For more information on how to get your key id, please refer to this [guide](https://docs.github.com/en/authentication/managing-commit-signature-verification/generating-a-new-gpg-key) 5. Copy the source.zip package from the Dubbo root directory to the svn local repository dubbo/${release_version} @@ -301,13 +301,13 @@ After this, maven will deploy jar to remote maven repsoitry in staging state. 9. Close the maven staging repository - This step is required when prepare for a 2.7.0+ release, where package name has been changed to org.apache. Before that, please make sure all the maven artifacts look good. Login to http://repository.apache.org, click the `Staging repositories` on the left bar, search with keyword Dubbo, and you will see a list of repositories. Find the one you just uploaded, and then click the close button in the top area. This will do some sannity check, such as gpg signature check, and checksum check. After that, a link will be shown in the summary tab in the bottom. Please copy that link, it will be used for release vote. The link should look like this: https://repository.apache.org/content/repositories/orgapachedubbo-1015. + This step is required when prepare for a 2.7.0+ release, where package name has been changed to org.apache. Before that, please make sure all the maven artifacts look good. Login to http://repository.apache.org, click the `Staging repositories` on the left bar, search with keyword Dubbo, and you will see a list of repositories. Find the one you just uploaded, and then click the close button in the top area. This will do some sannity check, such as gpg signature check, and checksum check. After that, a link will be shown in the summary tab in the bottom. Please copy that link, it will be used for release vote. The link should look like this: `https://repository.apache.org/content/repositories/orgapachedubbo-1015`. > Please be aware that it may fail when you close the repository, this is normally due to network issues, please try again if it failed. You can confirm it by clicking the `Activiey` tab next to `Summary`. ## Verify Release Candidates -**A full check list can be found [here](https://wiki.apache.org/incubator/IncubatorReleaseChecklist)** +**A full check list can be found [here](https://cwiki.apache.org/confluence/display/INCUBATOR/Incubator+Release+Checklist)** The verification link includes but is not limited to the following contents and forms: @@ -453,7 +453,7 @@ When the release vote has passed, 3. Remove the the release file for the previous release under [official release directory](https://dist.apache.org/repos/dist/release/dubbo/), which will be archived and can be found [here](https://archive.apache.org/dist/dubbo/) 5. Publish [release notes](https://github.com/apache/dubbo/releases) on Github. 6. Update the recommend dependency on [Github](https://github.com/apache/dubbo#maven-dependency) to the latest version, also update the version in other place if necessary. -7. Add the download link to official website http://dubbo.apache.org/en-us/blog/download.html, using the ASF mirror system. The latest release download link should be something like [this](https://www.apache.org/dyn/closer.cgi?path=dubbo/$VERSION/apache-dubbo-$VERSION-source-release.zip). The download link for the previous release version should be changed like [this](https://archive.apache.org/dist/dubbo/$VERSION/apache-dubbo-$VERSION-bin-release.zip). Please refer to the [download page](https://github.com/apache/dubbo-website/blob/asf-site/blog/en-us/download.md) for more details. +7. Add the download link to official website https://dubbo.apache.org/en/blog/2020/05/18/past-releases/, using the ASF mirror system. The latest release download link should be something like [this](https://www.apache.org/dyn/closer.cgi?path=dubbo/$VERSION/apache-dubbo-$VERSION-source-release.zip). The download link for the previous release version should be changed like `https://archive.apache.org/dist/dubbo/$VERSION/apache-dubbo-$VERSION-bin-release.zip`. Please refer to the [download page](/en/blog/2020/05/18/past-releases/) for more details. 8. Make sure all the commits in the release branch are merged into master branch, and then remove the remote release branch. For example: `git push origin --delete 2.7.0-release` 9. Send mail to dev@dubbo.apache.org , notify the community that the release is completed. The mail template to announce release: @@ -479,7 +479,7 @@ an issue on GitHub[4]. -[1] http://dubbo.apache.org/en-us/blog/download.html +[1] https://dubbo.apache.org/en/blog/2020/05/18/past-releases/ [2] https://repo1.maven.org/maven2/org/apache/dubbo/dubbo [3] https://github.com/apache/dubbo/releases [4] https://github.com/apache/dubbo/issues diff --git a/content/en/docs/contribution-guidelines/contributor/dubbo-extension-guide_dev.md b/content/en/docs/contribution-guidelines/contributor/dubbo-extension-guide_dev.md index 7e0c019a097e..24db3203b4f5 100644 --- a/content/en/docs/contribution-guidelines/contributor/dubbo-extension-guide_dev.md +++ b/content/en/docs/contribution-guidelines/contributor/dubbo-extension-guide_dev.md @@ -24,7 +24,7 @@ For example: ``` ## Src Guide -Usually, implement special extension, just need reference the [Developer Guide](http://dubbo.apache.org/#/docs/dev/build.md?lang=en-us) docs. Implement necessary interface and adapt extension to dubbo. Besides, some others should be considered: +Usually, implement special extension, just need reference the [Developer Guide](/en/latest/contribution-guidelines/) docs. Implement necessary interface and adapt extension to dubbo. Besides, some others should be considered: 1. Well tested. You should write unit test and mock test to eliminate potential bugs. 2. No warning, if some warning cannot to avoid, use @SuppressWarnings to suppress it, but do not abuse it. 3. README. Add necessary readme to show how to use your extension, and something to take notice. diff --git a/content/en/docs/contribution-guidelines/contributor/new-contributor-guide_dev.md b/content/en/docs/contribution-guidelines/contributor/new-contributor-guide_dev.md index 5871044c074e..3cabc65a13f3 100644 --- a/content/en/docs/contribution-guidelines/contributor/new-contributor-guide_dev.md +++ b/content/en/docs/contribution-guidelines/contributor/new-contributor-guide_dev.md @@ -46,7 +46,7 @@ Please check the [CONTRIBUTING.md](https://github.com/apache/dubbo/blob/master/C ### Participate in the release vote -Participate in the release vote is an important way to contribute to Dubbo. The Dubbo community welcomes everyone to partipate, you can check the release vote using this [check list](https://wiki.apache.org/incubator/IncubatorReleaseChecklist). +Participate in the release vote is an important way to contribute to Dubbo. The Dubbo community welcomes everyone to partipate, you can check the release vote using this [check list](https://cwiki.apache.org/confluence/display/INCUBATOR/Incubator+Release+Checklist). If you have any question regarding the check list, please feel free to ask on dev@dubbo.apache.org. diff --git a/content/en/docs/contribution-guidelines/contributor/test-coverage-guide_dev.md b/content/en/docs/contribution-guidelines/contributor/test-coverage-guide_dev.md index 6bf1a811651e..d20a6335d32f 100644 --- a/content/en/docs/contribution-guidelines/contributor/test-coverage-guide_dev.md +++ b/content/en/docs/contribution-guidelines/contributor/test-coverage-guide_dev.md @@ -17,7 +17,7 @@ weight: 7 * Attention to boundary condition test * Test code should also be designed without writing useless code. * When you find a `method` that is hard to write unit test, if you can be sure the `method` is "smelly code", then refactor it with the committer. - * The mock framework in dubbo is: [mockito](http://site.mockito.org/). Some tutorials:[mockito tutorial](http://www.baeldung.com/bdd-mockito),[mockito refcard](https://dzone.com/refcardz/mockito) + * The mock framework in dubbo is: [mockito](http://site.mockito.org/). Some tutorials:[mockito tutorial](https://www.baeldung.com/bdd-mockito),[mockito refcard](https://dzone.com/refcardz/mockito) * TDD(optional):When you start a new issue, you can try to write test case at first ### The specified value of the test coverage diff --git a/content/en/docs/v2.7/admin/ops/governance.md b/content/en/docs/v2.7/admin/ops/governance.md index bb7da2cb64ad..a6816a34b70d 100644 --- a/content/en/docs/v2.7/admin/ops/governance.md +++ b/content/en/docs/v2.7/admin/ops/governance.md @@ -23,7 +23,7 @@ tag route is a new feature in Dubbo2.7, in application scope, to set different t the client can use `setAttachment` to specify different tag, is the above case, `setAttachment(tag1)`, the client will choose from the three servers in the picture above. In this way, you can implement features such as traffic isolation and gray release. ### condition route -condition route is a traditional function in Dubbo, now you can create it in either service scope or application scope. Condition route is in `yaml` format, you can read [here](../user/demo/routing-rule.md) to find more. +condition route is a traditional function in Dubbo, now you can create it in either service scope or application scope. Condition route is in `yaml` format, you can read [here](../../../user/examples/routing-rule/) to find more. ### black white list black white list is a part of condition route and store with condition route together, you can set black list or white list, in either service scope or application scope: @@ -35,7 +35,7 @@ dynamic configuration has the same level with routing rule, it can change the RP ![config](/imgs/admin/config.jpg) -to read more, please refer [here](../user/demos/config-rule.md) +to read more, please refer [here](../../../user/examples/config-rule/) ### weight adjust weigth adjuest is part of dynamic configuration, change the weight of server side to do traffic control dynamically: @@ -43,7 +43,7 @@ weigth adjuest is part of dynamic configuration, change the weight of server sid ![weight](/imgs/admin/weight.jpg) ### load balancing -load balancing is also poart of dynamic configuration, to specify the route strategy in client side. now we have three strategies: random, least active and round robin, to read more, please refer [here](../../../user/demos/loadbalance) +load balancing is also poart of dynamic configuration, to specify the route strategy in client side. now we have three strategies: random, least active and round robin, to read more, please refer [here](../../../user/examples/loadbalance) ## configuration management configuration management is also a new feaature for Dubbo 2.7. In Dubbo 2.7, we can specify configurations in global scope and application scope(including services in application), you can view, modify and create new configurations in Dubbo Admin. diff --git a/content/en/docs/v2.7/admin/ops/introduction.md b/content/en/docs/v2.7/admin/ops/introduction.md index e05858b5358f..65a2e777e8f8 100644 --- a/content/en/docs/v2.7/admin/ops/introduction.md +++ b/content/en/docs/v2.7/admin/ops/introduction.md @@ -53,7 +53,7 @@ admin.config-center=zookeeper://127.0.0.1:2181 admin.registry.address=zookeeper://127.0.0.1:2181 admin.metadata-report.address=zookeeper://127.0.0.1:2181 ``` -the three configure item above are configuration center, registry center and metadata center respectively, you can find explanation about the three centers [here](../user/configuration/config-center.md) + Same as Dubbo 2.7, you can set the addresses of metadata center and registry center on configuration center, in zookeeper, the path and content are as below: ```properties # /dubbo/config/dubbo/dubbo.properties diff --git a/content/en/docs/v2.7/admin/ops/pinpoint.md b/content/en/docs/v2.7/admin/ops/pinpoint.md index e721cdb058ae..92cb3366f5d2 100644 --- a/content/en/docs/v2.7/admin/ops/pinpoint.md +++ b/content/en/docs/v2.7/admin/ops/pinpoint.md @@ -58,7 +58,7 @@ View additional details on the application such as CPU usage, Memory/Garbage Col ### Quickstart Pinpoint -[Quick start](http://naver.github.io/pinpoint/quickstart.html)(No neet to start TestApp) +[Quick start](https://pinpoint-apm.github.io/pinpoint/quickstart.html)(No neet to start TestApp) ### Dubbo demo diff --git a/content/en/docs/v2.7/admin/ops/skywalking.md b/content/en/docs/v2.7/admin/ops/skywalking.md index 91f0fbeca587..90258f165415 100644 --- a/content/en/docs/v2.7/admin/ops/skywalking.md +++ b/content/en/docs/v2.7/admin/ops/skywalking.md @@ -7,7 +7,7 @@ weight: 5 ## Introduction to Apache Skywalking -[Apache Skywalking(Incubator)](https://github.com/apache/incubator-skywalking) is the APM system that it designed for micro-services architectures and cloud native architecture systems and supports distribute tracking. [Apache skywalking (incubator)](https://github.com/apache/incubator-skywalking) collects and analyzes the trace data and generates the relationship between the application and the service metric, Apache skywalking supports multiple languages agent, for example [Java](https://github.com/apache/incubator-skywalking),[.net core](https://github.com/OpenSkywalking/skywalking-netcore),[Node.js](https://github.com/OpenSkywalking/skywalking-nodejs) and [Go](https://github.com/OpenSkywalking/skywalking-go). +[Apache Skywalking(Incubator)](https://github.com/apache/skywalking) is the APM system that it designed for micro-services architectures and cloud native architecture systems and supports distribute tracking. [Apache skywalking (incubator)](https://github.com/apache/skywalking) collects and analyzes the trace data and generates the relationship between the application and the service metric, Apache skywalking supports multiple languages agent, for example [Java](https://github.com/apache/skywalking),[.net core](https://github.com/OpenSkywalking/skywalking-netcore),[Node.js](https://github.com/OpenSkywalking/skywalking-nodejs) and [Go](https://github.com/SkyAPM/go2sky). Currently, Skywalking has supported analysis the operation of distributed systems from 6 visual dimensions. The overview view is a global view of your applications and components, including the number of components and applications, application alarm fluctuations, slow service lists, and application throughput; The topology shows the topological relationship of the whole application; The application view represents the upstream and downstream relationship of the application from single application, TOP N services and servers, JVM, host and process info. The service view focuses on the operation of a single service portal and the upstream and downstream dependencies of this service and it helps the user to optimize and monitor a single service; the trace graph shows all the buried points of the invocation and the execution time of each burial point, and the alarm view is based on the configuration threshold for the application, server, service for real-time alarms @@ -76,7 +76,7 @@ public class ConsumerController { ### Deploy Apache Skywalking -[Apache skywalking (Incubator)](https://github.com/apache/incubator-skywalking) offers two deployment modes: single-node mode and cluster mode,Here is the single-node mode deployment step, and more about how to deploy skywalking with cluster mode, please reference [document](https://github.com/apache/incubator-skywalking/blob/master/docs/en/Deploy-backend-in-cluster-mode.md). +[Apache skywalking (Incubator)](https://github.com/apache/skywalking) offers two deployment modes: single-node mode and cluster mode,Here is the single-node mode deployment step, and more about how to deploy skywalking with cluster mode, please reference [document](https://skywalking.apache.org/docs/main/latest/en/setup/backend/backend-setup/). #### Third-party components diff --git a/content/en/docs/v2.7/admin/ops/test.md b/content/en/docs/v2.7/admin/ops/test.md index d0b7c7d71b7c..10e9a3acf51e 100644 --- a/content/en/docs/v2.7/admin/ops/test.md +++ b/content/en/docs/v2.7/admin/ops/test.md @@ -5,4 +5,4 @@ linkTitle: "Test" weight: 3 --- -please refer to this [blog](../../../../../blog//2019/08/26/service-test/) +please refer to this [blog](/en/blog/2019/08/26/service-test/) diff --git a/content/en/docs/v2.7/dev/implementation.md b/content/en/docs/v2.7/dev/implementation.md index ff5820342b3a..649333ab10d8 100644 --- a/content/en/docs/v2.7/dev/implementation.md +++ b/content/en/docs/v2.7/dev/implementation.md @@ -16,7 +16,7 @@ All Dubbo tags are parsed by `DubboBeanDefinitionParser`, based on one to one at Transfer Bean object to URL, and transfer all attributes of Bean to URL parameters when `ServiceConfig.export()` or `ReferenceConfig.get()` initialization. -Then pase URL to [Protocol extension point](../impls/protocol), based on [Extension point adaptive mechanism](../SPI) of extension point, processing service exposure or reference for different protocols according to URL protocol header. +Then pase URL to [Protocol extension point](../impls/protocol), based on [Extension point adaptive mechanism](../spi/) of extension point, processing service exposure or reference for different protocols according to URL protocol header. ### Service Exposure diff --git a/content/en/docs/v2.7/dev/principals/code-detail.md b/content/en/docs/v2.7/dev/principals/code-detail.md index 4a2d4bd5f76e..7136f2cc0056 100644 --- a/content/en/docs/v2.7/dev/principals/code-detail.md +++ b/content/en/docs/v2.7/dev/principals/code-detail.md @@ -5,9 +5,6 @@ linkTitle: "Details" weight: 1 --- - -> http://javatar.iteye.com/blog/1056664 - Recently, I have been worried about the quality of the Dubbo distributed service framework. If there are more maintenance personnel or changes, there will be a decline in quality. I am thinking, is there any need for everyone to abide by it, according to a habit when writing code, I have summarized it. The code process, especially the framework code, should always keep in mind the details. Maybe the following will be said, everyone will feel very simple, very basic, but always keep in mind. Considering these factors in every line of code requires a lot of patience. It is often said that the devil is in the details. ## Prevent null pointer dereference and index out of bounds diff --git a/content/en/docs/v2.7/dev/principals/configuration.md b/content/en/docs/v2.7/dev/principals/configuration.md index 2faa03129bca..e6a767aa4af5 100644 --- a/content/en/docs/v2.7/dev/principals/configuration.md +++ b/content/en/docs/v2.7/dev/principals/configuration.md @@ -36,7 +36,7 @@ And to describe the configuration, because want to participate in the business l In Dubbo configuration is described, but also environment configuration.Part with spring schame configuration is loaded, in part, from the classpath scanning properties configuration is loaded.Users feel very inconvenient, so in the new version of the merged, unified into spring schame configuration load, also increases the flexibility of configuration. -Extension configuration, usually to the configuration of aggregate demand is higher.Because the product need to find the third party implementation, add it to the product inside.Agreed in the Java world, usually in a specified file each jar package down load, such as: the eclipse plugin. The XML, struts 2 struts - plugin. XML, and so on, this kind of configuration can consider Java standard service discovery mechanisms, namely in the jar meta-inf/services placed under the interface class name file, content is an implementation class name of the class in a row, like encryption algorithm in the JDK extension, the script engine extension, new JDBC driver, etc., are all in this way.see:[ServiceProvider Provider](http://download.oracle.com/javase/1.4.2/docs/guide/jar/jar.html#Service%20Provider)。 +Extension configuration, usually to the configuration of aggregate demand is higher.Because the product need to find the third party implementation, add it to the product inside.Agreed in the Java world, usually in a specified file each jar package down load, such as: the eclipse plugin. The XML, struts 2 struts - plugin. XML, and so on, this kind of configuration can consider Java standard service discovery mechanisms, namely in the jar meta-inf/services placed under the interface class name file, content is an implementation class name of the class in a row, like encryption algorithm in the JDK extension, the script engine extension, new JDBC driver, etc., are all in this way.see:[ServiceProvider Provider](https://docs.oracle.com/en/cloud/saas/financials/22a/fafcf/service-provider-models.html)。 Dubbo old version under each jar package through agreement, place called Dubbo - context. The spring configuration XML extensions and integration, the new version to use the JDK's own meta-inf/services, spring from too much dependence. @@ -80,7 +80,7 @@ Configuration is also "duplicate code", there is also a "generalization and elab Dubbo, moreover, the old version all the timeout, retries, load balancing strategies are only in the service consumer configuration.But in the process of actual use, found that the service provider knows better than consumer, but the configuration items are used in consumer.The new version, joined in the provider can match these parameters, through the registry to the consumer,As a reference, if there is no configuration, consumer to provide configuration shall prevail, the equivalent of consumption ji-cheng fang the provider's advice configuration values.And at the time of the relay configuration registry, can also be on the way to modify configuration, so that achieve the purpose of governance, the equivalent of inheritance relationship:Service consumers --> Registry --> Service provider Dubbo, moreover, the old version all the timeout, retries, load balancing strategies are only in the service consumer configuration.But in the process of actual use, found that the service provider knows better than consumer, but the configuration items are used in consumer.The new version, joined in the provider can match these parameters, through the registry to the consumer. -![configuration-override](static/imgs/dev/configuration-override.png) +![configuration-override](/imgs/dev/configuration-override.png) ## Configuration backward compatibility diff --git a/content/en/docs/v2.7/dev/principals/robustness.md b/content/en/docs/v2.7/dev/principals/robustness.md index bbd3422c9ef8..b870adb27ad8 100644 --- a/content/en/docs/v2.7/dev/principals/robustness.md +++ b/content/en/docs/v2.7/dev/principals/robustness.md @@ -5,10 +5,6 @@ linkTitle: "Robustness" weight: 7 --- - -> http://oldratlee.com/380/tech/java/robustness-of-implement.html - - Dubbo as a remote service exposure, calls and management solutions, through the meridians of the application is running, its itself to achieve robustness of importance is self-evident. Here are some Dubbo principle and method of use. diff --git a/content/en/docs/v2.7/user/configuration/api.md b/content/en/docs/v2.7/user/configuration/api.md index 92c5b72aa8af..5a9c79c8b4a9 100644 --- a/content/en/docs/v2.7/user/configuration/api.md +++ b/content/en/docs/v2.7/user/configuration/api.md @@ -117,7 +117,7 @@ reference.setMethods(methods); ... ReferenceConfig reference = new ReferenceConfig(); -// If you know the address of the provider and want to bypass the registry, use `reference.setUrl()` to specify the provider directly. Refer [How to Invoke a specific provider](../demos/explicit-target.md) for details. +// If you know the address of the provider and want to bypass the registry, use `reference.setUrl()` to specify the provider directly. Refer [How to Invoke a specific provider](../demos/explicit-target/) for details. reference.setUrl("dubbo://10.20.130.230:20880/com.xxx.XxxService"); ... diff --git a/content/en/docs/v2.7/user/configuration/configuration-load-process.md b/content/en/docs/v2.7/user/configuration/configuration-load-process.md index 3dd63ffabf09..98f6718e3d3e 100644 --- a/content/en/docs/v2.7/user/configuration/configuration-load-process.md +++ b/content/en/docs/v2.7/user/configuration/configuration-load-process.md @@ -30,7 +30,7 @@ The figure below shows the priority of configuration override, decreasing from t ![Override Priority](/imgs/blog/configuration.jpg) -click here to view [Externalize configuration details](./config-center.md) +click here to view [Externalize configuration details](/zh/docsv2.7/user/configuration/config-center/) ## Configuration Format diff --git a/content/en/docs/v2.7/user/configuration/xml.md b/content/en/docs/v2.7/user/configuration/xml.md index 1d6485a5053e..27ffc92f70ab 100644 --- a/content/en/docs/v2.7/user/configuration/xml.md +++ b/content/en/docs/v2.7/user/configuration/xml.md @@ -7,7 +7,7 @@ description: "Configure Dubbo with XML" --- -> About the XML configuration items, see:[XML References](content/old/en/docs/v2.7/user/references/xml). If you prefer use API directly instead of using Spring, see [API Configuration](../api). Want an example of how to use configuration, see [Quick Start](../../quick-start). +> About the XML configuration items, see:[XML References](/en/docs/v2.7/user/references/xml/). If you prefer use API directly instead of using Spring, see [API Configuration](../api). Want an example of how to use configuration, see [Quick Start](../../quick-start). ## provider.xml demo diff --git a/content/en/docs/v2.7/user/examples/config-connections.md b/content/en/docs/v2.7/user/examples/config-connections.md index fe7dfd2c7abb..ed48cc1ecbec 100644 --- a/content/en/docs/v2.7/user/examples/config-connections.md +++ b/content/en/docs/v2.7/user/examples/config-connections.md @@ -33,7 +33,7 @@ OR {{% alert title="Warning" color="warning" %}} If used default protocol(`dubbo` protocol), and the value of `connections` attribute is great than 0,then each service reference will has itself connection,else all service which belong to same remote server will share only one connection. In this framework,we called `private` connection or `share` connection. -If `` and `` are both configured accepts/connections,`` is preferred, refer to [Configuration coverage strategy](../../configuration/xml). +If `` and `` are both configured accepts/connections,`` is preferred, refer to [Configuration coverage strategy](../../configuration/xml/). Because connection is connect on Server, so configure on provider side. {{% /alert %}} diff --git a/content/en/docs/v2.7/user/examples/context.md b/content/en/docs/v2.7/user/examples/context.md index d9a73b89e6d8..01207f6bd12e 100644 --- a/content/en/docs/v2.7/user/examples/context.md +++ b/content/en/docs/v2.7/user/examples/context.md @@ -6,7 +6,7 @@ weight: 19 description: "Dubbo context" --- -All environment information of during the current call will put into the context,and all configuration information will convert the parameters of `URL` instance,Ref to the column of **URL parameters** at the [schema configuration reference book](content/old/en/docs/v2.7/user/references/xml) +All environment information of during the current call will put into the context,and all configuration information will convert the parameters of `URL` instance,Ref to the column of **URL parameters** at the [schema configuration reference book](/en/docs/v2.7/user/references/xml) `RpcContext` is a temporary status recorder of `ThreadLocal`,when accept `RPC` request or send `RPC` request,The `RpcContext` will be changed.Such as: `A` call `B` and `B` call `C`. On `B` machine,before `B` call `C`,the `RpcContext` will record the information of `A` call `B`.After `B` call `C`,the `RpcContext` record the information of `B` call `C`. diff --git a/content/en/docs/v2.7/user/examples/distributed-transaction.md b/content/en/docs/v2.7/user/examples/distributed-transaction.md index ffc4d07cd465..35c19d1e2a97 100644 --- a/content/en/docs/v2.7/user/examples/distributed-transaction.md +++ b/content/en/docs/v2.7/user/examples/distributed-transaction.md @@ -13,4 +13,4 @@ Two-phase commit: ![/user-guide/images/jta-xa.jpg](/imgs/user/jta-xa.jpg) -In Dubbo, [Seate](/blog/2019/01/17/how-to-use-seata-to-ensure-consistency-between-dubbo-microservices/) can be used to support distributed transactions. \ No newline at end of file +In Dubbo, [Seate](/en/blog/2019/01/17/how-to-use-seata-to-ensure-consistency-between-dubbo-microservices/) can be used to support distributed transactions. \ No newline at end of file diff --git a/content/en/docs/v2.7/user/examples/logger-strategy.md b/content/en/docs/v2.7/user/examples/logger-strategy.md index 6a57c178ab73..43076820e9cb 100644 --- a/content/en/docs/v2.7/user/examples/logger-strategy.md +++ b/content/en/docs/v2.7/user/examples/logger-strategy.md @@ -26,4 +26,4 @@ description: "Config logger Strategy in dubbo" ``` -[^1]: Custom Extensions: [logger-adapter](/docs/dev/impls/logger-adapter) +[^1]: Custom Extensions: [logger-adapter](/en/docs/v2.7/dev/impls/logger-adapter) diff --git a/content/en/docs/v2.7/user/examples/multi-protocols.md b/content/en/docs/v2.7/user/examples/multi-protocols.md index e1e755d85a33..f94c14ab9345 100644 --- a/content/en/docs/v2.7/user/examples/multi-protocols.md +++ b/content/en/docs/v2.7/user/examples/multi-protocols.md @@ -49,4 +49,4 @@ Different protocol performance is not the same. Such as big data should use shor ``` -[^1]: custom protocol, see:[protocol extension](http://dubbo.apache.org/books/dubbo-dev-book-en/impls/protocol.html) +[^1]: custom protocol, see:[protocol extension](/en/docs/v2.7/dev/impls/protocol/) diff --git a/content/en/docs/v2.7/user/examples/multi-registry.md b/content/en/docs/v2.7/user/examples/multi-registry.md index 545dc5b198c8..ea825415afb3 100644 --- a/content/en/docs/v2.7/user/examples/multi-registry.md +++ b/content/en/docs/v2.7/user/examples/multi-registry.md @@ -87,4 +87,4 @@ When testing, the service needs to be temporarily register to two registries, wh ``` -[^1]: custom registry, see:[registry extension](/docs/dev/impls/registry.html) +[^1]: custom registry, see:[registry extension](/en/docs/v2.7/dev/impls/registry/) diff --git a/content/en/docs/v2.7/user/examples/parameter-validation.md b/content/en/docs/v2.7/user/examples/parameter-validation.md index 52966a757cc3..bbde8d28ab7e 100644 --- a/content/en/docs/v2.7/user/examples/parameter-validation.md +++ b/content/en/docs/v2.7/user/examples/parameter-validation.md @@ -186,4 +186,4 @@ public class ValidationConsumer { ``` [^1]: Support since `2.1.0` version. If you want to know how to use it, refer to [Sample code in dubbo project] (https://github.com/apache/dubbo-samples/tree/master/dubbo-samples-validation) -[^2]: The validation method is extensible, refer to [Developer Extension](/docs/dev/impls/validation) in the developer's manual. +[^2]: The validation method is extensible, refer to [Developer Extension](/en/docs/v2.7/dev/impls/validation) in the developer's manual. diff --git a/content/en/docs/v2.7/user/examples/result-cache.md b/content/en/docs/v2.7/user/examples/result-cache.md index 38215c1ead4c..5c95cd323338 100644 --- a/content/en/docs/v2.7/user/examples/result-cache.md +++ b/content/en/docs/v2.7/user/examples/result-cache.md @@ -14,7 +14,7 @@ Cache result is used to speed up access to popular data. Dubbo provides declarat * `threadlocal` The current thread cache. For example, a page have a lot of portal and each portal need to check user information, you can reduce this redundant visit with this cache. * `jcache` integrate with [JSR107](http://jcp.org/en/jsr/detail?id=107%27) , you can bridge a variety of cache implementation. -Caching type can be extended,refer to:[Cache extension](/docs/dev/impls/cache) +Caching type can be extended,refer to:[Cache extension](/en/docs/v2.7/dev/impls/cache) ## Configuration diff --git a/content/en/docs/v2.7/user/examples/routing-rule.md b/content/en/docs/v2.7/user/examples/routing-rule.md index 08b9ae84fcd4..6006204f607d 100644 --- a/content/en/docs/v2.7/user/examples/routing-rule.md +++ b/content/en/docs/v2.7/user/examples/routing-rule.md @@ -193,7 +193,7 @@ The scope of the `dubbo.tag` is for each invocation, using the attachment to pas [^1]: Support since `2.2.0` -[^2]: Routing Rules Extension Point: [Route Extension](/docs/dev/impls/router.html) +[^2]: Routing Rules Extension Point: [Route Extension](/en/docs/v2.7/dev/impls/router/) [^3]: Note: A service can only have one whitelist rule, otherwise the two rules will be filtered out. [^4]: Note: Scripts have no sandbox constraints, can execute arbitrary code, and poses a backdoor risk. [^5]: Support since `2.7.0` diff --git a/content/en/docs/v2.7/user/examples/service-container.md b/content/en/docs/v2.7/user/examples/service-container.md index 5106c8ea366a..656b182e8faf 100644 --- a/content/en/docs/v2.7/user/examples/service-container.md +++ b/content/en/docs/v2.7/user/examples/service-container.md @@ -10,7 +10,7 @@ The service container is a standalone launcher because the backend service does The service container is just a simple Main method and loads a simple Spring container to expose the service. -The content of Service container can be extended, built-in spring, jetty, log4j etc.. This can be expanded with [Container Extension Points](/docs/dev/impls/container.html). Configure it with the -D parameter in the java command or `dubbo.properties`. +The content of Service container can be extended, built-in spring, jetty, log4j etc.. This can be expanded with [Container Extension Points](/en/docs/v2.7/dev/impls/container/). Configure it with the -D parameter in the java command or `dubbo.properties`. ## Container type diff --git a/content/en/docs/v2.7/user/perf-test.md b/content/en/docs/v2.7/user/perf-test.md index 0ceece3078db..c0564ea39232 100644 --- a/content/en/docs/v2.7/user/perf-test.md +++ b/content/en/docs/v2.7/user/perf-test.md @@ -123,11 +123,11 @@ POJO Response 50K TPS -![50ktps.png](static/imgs/user/50ktps.png) +![50ktps.png](/imgs/user/50ktps.png) 50K Response -![50kres.png](static/imgs/user/50kres.png) +![50kres.png](/imgs/user/50kres.png) ### Scene name: scence 200k string diff --git a/content/en/docs/v2.7/user/recommend.md b/content/en/docs/v2.7/user/recommend.md index 2e0724a65fa0..cd996f8c2be8 100644 --- a/content/en/docs/v2.7/user/recommend.md +++ b/content/en/docs/v2.7/user/recommend.md @@ -101,7 +101,7 @@ This file caches the list of the registry and the list of service providers. Wit 1. Use Dragoon's HTTP monitoring item to monitor the service provider on the registry - The state of Dragoon monitoring service in the registry : http://dubbo-reg1.hst.xyi.cn.alidc.net:8080/status/com.alibaba.morgan.member.MemberService:1.0.5 Ensure that the service exists on the registry . + The state of Dragoon monitoring service in the registry : `http://dubbo-reg1.hst.xyi.cn.alidc.net:8080/status/com.alibaba.morgan.member.MemberService:1.0.5` Ensure that the service exists on the registry . 2. Service provider,use Dragoon's telnet mommand or shell monitor command @@ -168,7 +168,7 @@ The Dubbo default value is used if completely not set up , please see the instru ``` -[^1]: Overlay rules for configuration: 1) The method level configuration has a higher priority than the interface level, that is to say,small scope have a high priority 2) Consumer side configuration has a higher priority than provider side, better than global configuration, the last one is the Dubbo hard coded configuration value([Dubbo configuration introduction](content/old/en/docs/v2.7/user/configuration/properties.md)) +[^1]: Overlay rules for configuration: 1) The method level configuration has a higher priority than the interface level, that is to say,small scope have a high priority 2) Consumer side configuration has a higher priority than provider side, better than global configuration, the last one is the Dubbo hard coded configuration value([Dubbo configuration introduction](/en/docs/v2.7/user/configuration/properties/)) [^2]: With the first call, the call will be called 3 times [^3]: How to select a service to call when there are multiple Provider services [^4]: It means that consumer service can call the best provider service, and reduce to call the the slow provider service. diff --git a/content/en/docs/v2.7/user/references/metadata.md b/content/en/docs/v2.7/user/references/metadata.md index c60307e38cf5..fc48f71b3f01 100644 --- a/content/en/docs/v2.7/user/references/metadata.md +++ b/content/en/docs/v2.7/user/references/metadata.md @@ -7,8 +7,8 @@ description: "References documentation for dubbo metadata" --- ## Background -There are close to [30 configurations](http://dubbo.apache.org/en-us/docs/user/references/xml/dubbo-service.html) in dubbo provider. Excluding registry center governance requirements, a large part of configurations are used by the provider itself and do not need to be delivered to the consumer. This part of the data does not need to be written to the registry, but only needs to be persisted as key-value. -There are also [20+ configurations](http://dubbo.apache.org/en-us/docs/user/references/xml/dubbo-reference.html) in dubbo consumer. In the registry center, only a few configurations such as application, version, group, ip, dubbo version are needed in the list of service consumers. Other configurations can also be persisted in key-value form. +There are close to [30 configurations](/en/docs/v2.7/user/references/xml/dubbo-service/) in dubbo provider. Excluding registry center governance requirements, a large part of configurations are used by the provider itself and do not need to be delivered to the consumer. This part of the data does not need to be written to the registry, but only needs to be persisted as key-value. +There are also [20+ configurations](/en/docs/v2.7/user/references/xml/dubbo-reference/) in dubbo consumer. In the registry center, only a few configurations such as application, version, group, ip, dubbo version are needed in the list of service consumers. Other configurations can also be persisted in key-value form. This data is registered into the registry in the service dimension, which leads to the expansion of data volume, and then causes the increased network overhead of the registry (such as zookeeper) and decreased performance. In addition to the storage of the above configuration items, Dubbo service metadata information also needs to be stored. Metadata information includes service interface and method information of interface. This information will be used for service mock, service test. diff --git a/content/en/docs/v2.7/user/references/protocol/thrift.md b/content/en/docs/v2.7/user/references/protocol/thrift.md index bcffeb2a0f5d..e43aa86a7a82 100644 --- a/content/en/docs/v2.7/user/references/protocol/thrift.md +++ b/content/en/docs/v2.7/user/references/protocol/thrift.md @@ -29,7 +29,7 @@ The use of dubbo thrift protocol also need to use thrift idl compiler to generat ## Example -you can check [dubbo thrift example](https://github.com/apache/dubbo/tree/master/dubbo-rpc/dubbo-rpc-thrift/src/test/java/com/alibaba/dubbo/rpc/protocol/thrift/examples) +you can check [dubbo thrift example](https://github.com/apache/dubbo-samples/tree/master/dubbo-samples-thrift) ## Common problem diff --git a/content/en/docs/v2.7/user/references/registry/redis.md b/content/en/docs/v2.7/user/references/registry/redis.md index b09ca5f26608..ca68a2bca207 100644 --- a/content/en/docs/v2.7/user/references/registry/redis.md +++ b/content/en/docs/v2.7/user/references/registry/redis.md @@ -73,7 +73,7 @@ A home-brewed service registry server is used in Alibaba instead of redis server ## Installation -Pls. refer to [redis install manual](http://dubbo.apache.org/en-us/docs/admin/install/redis.html) for how to install a redis based registry server. To set it up, specify `dubbo.registry.address` to `redis://127.0.0.1:6379` in `conf/dubbo.properties` for both provider and consumer (you can refer to [quick start](content/old/en/docs/v2.7/user/quick-start.md)) after install a redis server. +Pls. refer to [redis install manual](/en/docs/v2.7/admin/install/redis/) for how to install a redis based registry server. To set it up, specify `dubbo.registry.address` to `redis://127.0.0.1:6379` in `conf/dubbo.properties` for both provider and consumer (you can refer to [quick start](/en/docs/v2.7/user/quick-start/)) after install a redis server. [^1]: [Redis](http://redis.io) is a high performance KV cache server diff --git a/content/en/docs/v2.7/user/references/registry/zookeeper.md b/content/en/docs/v2.7/user/references/registry/zookeeper.md index b1ed1ff37ce2..bd94ed851cb8 100644 --- a/content/en/docs/v2.7/user/references/registry/zookeeper.md +++ b/content/en/docs/v2.7/user/references/registry/zookeeper.md @@ -37,7 +37,7 @@ Add zookeeper client dependency in both provider and consumer: ``` -Or [download](http://repo1.maven.org/maven2/org/apache/zookeeper/zookeeper) directly from apache. +Or [download](https://repo1.maven.org/maven2/org/apache/zookeeper/zookeeper) directly from apache. Dubbo supports two zookeeper clients: zkclient and curator: @@ -65,7 +65,7 @@ Or: zookeeper://10.20.153.10:2181?client=zkclient ``` -In order to use it, need to explicitly declare the following maven dependency or [download its client](http://repo1.maven.org/maven2/com/github/sgroschupf/zkclient). +In order to use it, need to explicitly declare the following maven dependency or [download its client](https://repo1.maven.org/maven2/com/github/sgroschupf/zkclient). ```xml @@ -97,7 +97,7 @@ Or: zookeeper://10.20.153.10:2181?client=curator ``` -Also need to explicitly add maven dependency or directly [download](http://repo1.maven.org/maven2/com/netflix/curator/curator-framework) the jar: +Also need to explicitly add maven dependency or directly [download](https://repo1.maven.org/maven2/com/netflix/curator/curator-framework) the jar: ```xml @@ -142,7 +142,7 @@ Configure single zookeeper to serve as multiple registry servers: ## Zookeeper Installation -Pls. refer to [zookeeper install manual](content/old/en/docs/v2.7/admin/install/zookeeper.md) for how to install zookeeper based registry server. To set it up, specify `dubbo.registry.address` to `zookeeper://127.0.0.1:2181` in `conf/dubbo.properties` for both provider and consumer (you can refer to [quick start](content/old/en/docs/v2.7/user/quick-start.md)) after install a zookeeper server. +Pls. refer to [zookeeper install manual](/en/docs/v2.7/admin/install/zookeeper/) for how to install zookeeper based registry server. To set it up, specify `dubbo.registry.address` to `zookeeper://127.0.0.1:2181` in `conf/dubbo.properties` for both provider and consumer (you can refer to [quick start](/en/docs/v2.7/user/quick-start/)) after install a zookeeper server. ## Declaration of Reliability diff --git a/content/en/docs/v2.7/user/references/telnet.md b/content/en/docs/v2.7/user/references/telnet.md index e9eea12b4fb5..80c7ad65244f 100644 --- a/content/en/docs/v2.7/user/references/telnet.md +++ b/content/en/docs/v2.7/user/references/telnet.md @@ -20,12 +20,10 @@ Or: echo status | nc -i 1 localhost 20880 ``` -It is possible to extend command `status` to check more resources, pls. refer to [extension references](http://dubbo.apache.org/books/dubbo-dev-book-en/impls/status-checker.html) for more details. - ## Supported Commands The built-in telnet commands are listed below. Furthermore, it is possible to extend telnet commands, pls. refer to -[extend telnet command](http://dubbo.apache.org/en-us/docs/user/references/telnet.html) for more details. +[extend telnet command](/en/docs/v2.7/user/references/telnet/) for more details. ### `ls` diff --git a/content/en/docs/v2.7/user/rest.md b/content/en/docs/v2.7/user/rest.md index 0d008e0a6235..9bb95d93fa63 100644 --- a/content/en/docs/v2.7/user/rest.md +++ b/content/en/docs/v2.7/user/rest.md @@ -113,7 +113,7 @@ Because of the advantages of REST in applicability, supporting REST in Dubbo can It should be pointed out that I think that 1~3 are the most valuable application scenarios for Dubbo's REST call. And the main purpose why we add REST calls for Dubbo is to provide a service-oriented provider. In other words, to develop REST services for Non-Dubbo (heterogeneous) consumers. To sum up, all application scenarios are shown below: -![no image found](images/rest.jpg) +![rest.jpg](/imgs/user/rest.jpg) Borrowing the most famous slogan of Java in the past, by adding REST calls to Dubbo, you can implement the "Write once, access everywhere" service, which can theoretically be accessed all over the world, thus truly achieving an idealized Service-oriented Architecture (SOA). @@ -182,7 +182,7 @@ JAX-RS is a standard Java REST API that has been widely supported and applied in JAX-RS has a wealth of information on the web, such as the following introductory tutorial: -* Oracle official tutorial: http://docs.oracle.com/javaee/7/tutorial/doc/jaxrs.htm +* Oracle official tutorial: https://www.oracle.com/technical-resources/articles/java/jax-rs.html * Article on IBM developerWorks China: http://www.ibm.com/developerworks/cn/java/j-lo-jaxrs/ For more information, please feel free to Google or Baidu. As far as learning JAX-RS is concerned, it is generally enough to master the usage of various annotations. diff --git a/content/en/docs/v2.7/user/simple-monitor.md b/content/en/docs/v2.7/user/simple-monitor.md index 96ef0b65b3cd..8d711aa57fa7 100644 --- a/content/en/docs/v2.7/user/simple-monitor.md +++ b/content/en/docs/v2.7/user/simple-monitor.md @@ -9,7 +9,7 @@ description: "Dubbo simple monitor service" {{% alert title="Warning" color="warning" %}} Monitor service is a standard Dubbo service,can be exported to the registry,also can be connected straightly. -[Install the simple registry](admin-guide-install-manual) +[Install the simple registry](/en/docs/v2.7/admin/install/) {{% /alert %}} diff --git a/content/en/docs/v3.0/languages/erlang/quick-start.md b/content/en/docs/v3.0/languages/erlang/quick-start.md index 7ac5008c392a..dedb2691fa88 100644 --- a/content/en/docs/v3.0/languages/erlang/quick-start.md +++ b/content/en/docs/v3.0/languages/erlang/quick-start.md @@ -38,7 +38,7 @@ into the project's `apps` directory. ``` ## Consumer configuration -Please reference [Reference Config](content/old/en/docs/v3.0/languages/erlang/reference.md) +Please reference [Reference Config](../reference/) ## Init dubbolib in your project It is need you diff --git a/content/en/docs/v3.0/loadbalance/_index.md b/content/en/docs/v3.0/loadbalance/_index.md index 00d5e42513a8..af2dddc7e122 100644 --- a/content/en/docs/v3.0/loadbalance/_index.md +++ b/content/en/docs/v3.0/loadbalance/_index.md @@ -8,7 +8,7 @@ description: "Load Balance in Apache Dubbo 3.x" Dubbo offers a number of balancing strategies for cluster load balancing, which defaults to `random`. -You can extend the load balancing strategy by yourself, see: [LoadBalance extension](../../../v2.7/dev/impls/load-balance) +You can extend the load balancing strategy by yourself, see: [LoadBalance extension](../../v2.7/dev/impls/load-balance/) ## LoadBalance strategy diff --git a/content/en/latest/contribution-guidelines/committer/label-an-issue-guide_dev.md b/content/en/latest/contribution-guidelines/committer/label-an-issue-guide_dev.md index fba6232e3d35..31033122ccbc 100644 --- a/content/en/latest/contribution-guidelines/committer/label-an-issue-guide_dev.md +++ b/content/en/latest/contribution-guidelines/committer/label-an-issue-guide_dev.md @@ -7,7 +7,7 @@ weight: 3 如果您正在处理一个问题,请记得**给这个问题标记一个或者多个您认为有意义的标签**。有了标签,其他开发人员就会很轻松地识别出问题,以便对其进行分类并跟踪进度。 -对于需要编码和发版修复的 issues 和 pull requests,需要您**将其标记为 [milestone](https://github.com/apache/incubator*dubbo/milestones)**。 +对于需要编码和发版修复的 issues 和 pull requests,需要您**将其标记为 [milestone](https://github.com/apache/dubbo/milestones)**。 一些常用的标签: diff --git a/content/en/latest/contribution-guidelines/committer/new-committer-guide_dev.md b/content/en/latest/contribution-guidelines/committer/new-committer-guide_dev.md index d44af70c2009..94ca48c82f96 100644 --- a/content/en/latest/contribution-guidelines/committer/new-committer-guide_dev.md +++ b/content/en/latest/contribution-guidelines/committer/new-committer-guide_dev.md @@ -46,9 +46,9 @@ weight: 1 按照提示授权对 github 账户的 OAuth 协议登入 ### 在 github.com 设置 github 账户两因素授权(2FA) -按照[授权 GitHub 2FA wiki](https://help.github.com/articles/configuring-two-factor-authentication-via-a-totp-mobile-app/) 操作如下: +按照[授权 GitHub 2FA wiki](https://docs.github.com/en/authentication/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication) 操作如下: * 在手机安装 “google 身份验证器” app -* 按照[授权 GitHub 2FA wiki](https://help.github.com/articles/configuring-two-factor-authentication-via-a-totp-mobile-app/) 一步一步操作。 +* 按照[授权 GitHub 2FA wiki](https://docs.github.com/en/authentication/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication) 一步一步操作。 在[两因素授权验证](https://github.com/settings/security)界面,不建议选择用手机扫描二维码,因为有些手机会扫描不出来。 请打开手机 “google 身份验证器” app,点“+”选择“输入提供的秘钥”: 在“账户名” input 框写入 github 账户。在“您的秘钥” input 框写入:打开的网页中 "enter this text code" 链接里面的文本。在 app 中点击"添加" 后,将为此账户生成6位数字动态。将此6位数字写入网页中的文本框,然后点 “Enable”。这样 2FA 就设置成功了。 @@ -60,7 +60,7 @@ weight: 1 * 2FA 提交后,你已经 clone 的项目会有权限校验问题,解决方法为下面二选一: * 申请 Access Token: 在 github 上生成 access token 后,指令行需要密码的地方就粘贴token。 - 参考官网[帮助链接一](https://help.github.com/articles/https-cloning-errors/#provide-access-token-if-2fa-enabled)和[帮助链接二](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/) + 参考官网[帮助链接一](https://docs.github.com/cn/repositories/creating-and-managing-repositories/troubleshooting-cloning-errors#provide-access-token-if-2fa-enabled)和[帮助链接二](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token) * 改用 ssh: 在命令行执行 ssh-keygen 命令, 然后把pub文件中的内容粘贴到 github 上 @@ -73,12 +73,6 @@ weight: 1 社区重于代码,如果某问题或者方案没有在社区(邮件列表)讨论过,就当没有发生过 -### 添加你的名字 - -请访问孵化器[主页](https://incubator.apache.org/projects/dubbo.html)将你的名字添加到上面. 具体可以参考这个[文档](http://dubbo.apache.org/docs/3.0/zh-cn/docs/developers/committer-guide/apache-dubbo-page_dev.html). - -请访问 Dubbo[官方网站](http://dubbo.apache.org/docs/3.0/zh-cn/docs/developers/developers/developers_dev.html) 将你的名字添加到上面. - ### 小福利 Jetbrains 给 apache 提交者一个小福利,就是可以免费使用 idea 的全产品系列。具体注册地址为:https://www.jetbrains.com/shop/eform/apache?product=ALL diff --git a/content/en/latest/contribution-guidelines/committer/release-guide_dev.md b/content/en/latest/contribution-guidelines/committer/release-guide_dev.md index 4cf48266147a..f3b5f243d569 100644 --- a/content/en/latest/contribution-guidelines/committer/release-guide_dev.md +++ b/content/en/latest/contribution-guidelines/committer/release-guide_dev.md @@ -185,7 +185,7 @@ $ mvn release:clean $ mvn release:prepare -Prelease -Darguments="-DskipTests" -DautoVersionSubmodules=true -Dusername=YOUR GITHUB ID -DpushChanges=false ``` -> 执行release插件时,如果指定了`-DpushChanges=true`, 插件会自动提交到远端的GitHub仓库中,此时就需要输入GitHub的密码,注意不是输入web页面的登录密码,而是一个`Personal access tokens`,获取方式详见[这里](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line) +> 执行release插件时,如果指定了`-DpushChanges=true`, 插件会自动提交到远端的GitHub仓库中,此时就需要输入GitHub的密码,注意不是输入web页面的登录密码,而是一个`Personal access tokens`,获取方式详见[这里](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token) > 这里有一点要注意的是tag, 在执行过程中,需要选择发布的artifactId, 下一个版本artifactId以及发布版本的tag, tag默认的是dubbo-parent-xxxx,需要改成dubbo-xxxx @@ -277,13 +277,13 @@ $ mvn deploy -Prelease -DskipTests 9. 关闭Maven的staging仓库 - 此步骤为发布2.7.0及以上版本必须要的步骤。在此之前请先确保所有的artifact都是ok的。登录http://repository.apache.org,点击左侧的`Staging repositories`,然后搜索Dubbo关键字,会出现一系列的仓库,选择你最近上传的仓库,然后点击上方的Close按钮,这个过程会进行一系列检查,检查通过以后,在下方的Summary标签页上出现一个连接,请保存好这个链接,需要放在接下来的投票邮件当中。链接应该是类似这样的: https://repository.apache.org/content/repositories/orgapachedubbo-1015 + 此步骤为发布2.7.0及以上版本必须要的步骤。在此之前请先确保所有的artifact都是ok的。登录http://repository.apache.org,点击左侧的`Staging repositories`,然后搜索Dubbo关键字,会出现一系列的仓库,选择你最近上传的仓库,然后点击上方的Close按钮,这个过程会进行一系列检查,检查通过以后,在下方的Summary标签页上出现一个连接,请保存好这个链接,需要放在接下来的投票邮件当中。链接应该是类似这样的: `https://repository.apache.org/content/repositories/orgapachedubbo-1015` > 请注意点击Close可能会出现失败,通常是网络原因,只要重试几次就可以了。可以点击Summary旁边的Activity标签来确认。 ## 验证Release Candidates -详细的检查列表请参考官方的[check list](https://wiki.apache.org/incubator/IncubatorReleaseChecklist) +详细的检查列表请参考官方的[check list](https://cwiki.apache.org/confluence/display/INCUBATOR/Incubator+Release+Checklist) 首先,从一下地址下载要发布的Release Candidate到本地环境: @@ -432,7 +432,7 @@ The Apache Dubbo Team 4. 此步骤为发布2.7.0及以上版本必须要的步骤。在此之前请先确保所有的artifact都是ok的。登录http://repository.apache.org,点击左侧的`Staging repositories`,然后搜索Dubbo关键字,会出现一系列的仓库,选择你最近上传的仓库,然后点击上方的Release按钮. 5. 发布GitHub上的[release notes](https://github.com/apache/dubbo/releases) 6. 修改GitHub的Readme文件,将版本号更新到最新发布的版本 -7. 在官网下载[页面](http://dubbo.apache.org/en-us/blog/download.html)上添加最新版本的下载链接。最新的下载链接应该类似[这样](https://www.apache.org/dyn/closer.cgi?path=dubbo/$VERSION/apache-dubbo-$VERSION-source-release.zip). 同时更新以前版本的下载链接,改为类似[这样](https://archive.apache.org/dist/dubbo/$VERSION/apache-dubbo-$VERSION-bin-release.zip). 具体可以参考过往的[下载链接](https://github.com/apache/dubbo-website/blob/asf-site/blog/en-us/download.md) [可以参考] (https://github.com/apache/dubbo-website/pull/887) +7. 在官网下载[页面](/en/blog/2020/05/18/past-releases/)上添加最新版本的下载链接。最新的下载链接应该类似[这样](https://www.apache.org/dyn/closer.cgi?path=dubbo/$VERSION/apache-dubbo-$VERSION-source-release.zip). 同时更新以前版本的下载链接,改为类似`https://archive.apache.org/dist/dubbo/$VERSION/apache-dubbo-$VERSION-bin-release.zip`. 具体可以参考过往的[下载链接](/en/blog/2020/05/18/past-releases/) [可以参考] (https://github.com/apache/dubbo-website/pull/887) 8. 合并`${release-version}-release`分支到对应的主干分支, 然后删除相应的release分支,例如: `git push origin --delete 2.7.0-release` 9. 发邮件到 `dev@dubbo.apache.org` 宣布release邮件模板: @@ -458,7 +458,7 @@ hesitate to let us know by sending feedback to this mailing list or filing an issue on GitHub[4]. -[1] http://dubbo.apache.org/en-us/blog/download.html +[1] https://dubbo.apache.org/en/blog/2020/05/18/past-releases/ [2] https://repo1.maven.org/maven2/org/apache/dubbo/dubbo [3] https://github.com/apache/dubbo/releases [4] https://github.com/apache/dubbo/issues diff --git a/content/en/latest/contribution-guidelines/contributor/become-a-committer_dev.md b/content/en/latest/contribution-guidelines/contributor/become-a-committer_dev.md index 976f8d8f4edd..10a4cb0244ec 100644 --- a/content/en/latest/contribution-guidelines/contributor/become-a-committer_dev.md +++ b/content/en/latest/contribution-guidelines/contributor/become-a-committer_dev.md @@ -17,4 +17,4 @@ weight: 1 ### 我可以贡献什么? -请参阅[新的贡献者指南](/zh/docs/contribution-guidelines/contributor/new-contributor-guide_dev)。 +请参阅[新的贡献者指南](/zh/blog/1/01/01/新贡献者向导/)。 diff --git a/content/en/latest/contribution-guidelines/contributor/dubbo-extension-guide_dev.md b/content/en/latest/contribution-guidelines/contributor/dubbo-extension-guide_dev.md index d8c7443c5ddc..1ca65412b19a 100644 --- a/content/en/latest/contribution-guidelines/contributor/dubbo-extension-guide_dev.md +++ b/content/en/latest/contribution-guidelines/contributor/dubbo-extension-guide_dev.md @@ -26,7 +26,7 @@ Dubbo 使用微内核+插件的设计模式。内核只负责组装插件,Dubb ### Src指导 -通常,要实现特殊的扩展,只需要参考[开发者指南](http://dubbo.apache.org/#/docs/dev/build.md?lang=en-us),实现Dubbo必要的接口和合适的扩展即可。除此之外,还有一些其它的事项需要注意: +通常,要实现特殊的扩展,只需要参考[开发者指南](/zh/blog/contact/),实现Dubbo必要的接口和合适的扩展即可。除此之外,还有一些其它的事项需要注意: 1. 良好的测试,您需要编写单元测试和冒烟测试以消除潜在的 bug。 2. 没有警告,如有不可避免的警告,请使用 @SuppressWarnings 阻止它,但是请不要乱用。 diff --git a/content/en/latest/contribution-guidelines/contributor/new-contributor-guide_dev.md b/content/en/latest/contribution-guidelines/contributor/new-contributor-guide_dev.md index 40a96d0fb8a6..c3e7d99f0b3d 100644 --- a/content/en/latest/contribution-guidelines/contributor/new-contributor-guide_dev.md +++ b/content/en/latest/contribution-guidelines/contributor/new-contributor-guide_dev.md @@ -12,7 +12,7 @@ weight: 2 邮件列表是 Dubbo 官方推荐的讨论方式,所有与 Dubbo 相关的内容都可以在这里讨论,请点击 [issue](https://github.com/apache/dubbo/issues/1393) 了解更多关于邮件列表订阅的内容 -如需订阅如下邮件列表,请参考 [邮件列表订阅向导](/zh/docs/contribution-guidelines/contributor/mailing-list-subscription-guide_dev) +如需订阅如下邮件列表,请参考 [邮件列表订阅向导](/zh/blog/1/01/01/邮件列表订阅向导/) * dev@dubbo.apache.org:开发邮件列表,您在使用或者开发 Dubbo 的过程中遇到的任何问题,都可以在这里进行提问。 * commits@dubbo.apache.org:所有的提交内容都会推送到这个邮件列表,如果您对 Dubbo 的进展感兴趣,可以订阅这个邮件列表。 @@ -130,4 +130,4 @@ Dubbo社区将会Review您的Pull Request,并可能提出修改意见,您可 ### 参与发布投票 -参与发布投票是一种重要的贡献社区的方式,Dubbo 社区非常欢迎和鼓励任何人参与投票,每当一个版本需要正式发布的时候,会在开发者邮件列表上进行发布投票,只有当投票取得通过之后,才会正式发布,可以参考这个[检查列表](https://wiki.apache.org/incubator/IncubatorReleaseChecklist)对源码进行合规性检查。如果有任何问题,可以在开发者邮件列表上提问。 +参与发布投票是一种重要的贡献社区的方式,Dubbo 社区非常欢迎和鼓励任何人参与投票,每当一个版本需要正式发布的时候,会在开发者邮件列表上进行发布投票,只有当投票取得通过之后,才会正式发布,可以参考这个[检查列表](https://cwiki.apache.org/confluence/display/INCUBATOR/Incubator+Release+Checklist)对源码进行合规性检查。如果有任何问题,可以在开发者邮件列表上提问。 diff --git a/content/en/latest/contribution-guidelines/contributor/test-coverage-guide_dev.md b/content/en/latest/contribution-guidelines/contributor/test-coverage-guide_dev.md index b8574daabf88..876b6dfa46da 100644 --- a/content/en/latest/contribution-guidelines/contributor/test-coverage-guide_dev.md +++ b/content/en/latest/contribution-guidelines/contributor/test-coverage-guide_dev.md @@ -14,7 +14,7 @@ weight: 7 * 注意边界条件。 * 单元测试也应该好好设计,不要写无用的代码。 * 当你发现一个`方法`很难写单元测试时,如果可以确认这个`方法`是`臭代码`,那么就和开发者一起重构它。 -* Dubbo中用的mock框架是: [mockito](http://site.mockito.org/). 下面是一些开发向导:[mockito tutorial](http://www.baeldung.com/bdd-mockito),[mockito refcard](https://dzone.com/refcardz/mockito) +* Dubbo中用的mock框架是: [mockito](http://site.mockito.org/). 下面是一些开发向导:[mockito tutorial](https://www.baeldung.com/bdd-mockito),[mockito refcard](https://dzone.com/refcardz/mockito) * TDD(可选):当你开始写一个新的功能时,你可以试着先写测试用例。 ### 测试覆盖率设定值 * 在现阶段,Delta更改代码的测试覆盖设定值为:>=60%,越高越好。 diff --git a/content/en/latest/facade-docs/how/quick-start.md b/content/en/latest/facade-docs/how/quick-start.md index ea2dfbf4a959..76ab1865db1f 100644 --- a/content/en/latest/facade-docs/how/quick-start.md +++ b/content/en/latest/facade-docs/how/quick-start.md @@ -13,7 +13,7 @@ weight: 3

- Quick start + Quick start

Dubbo Java SDK

@@ -23,7 +23,7 @@ weight: 3

- Quick start + Quick start

Dubbo Golang SDK

diff --git a/content/zh/blog/contact/committer/label-an-issue-guide_dev.md b/content/zh/blog/contact/committer/label-an-issue-guide_dev.md index fba6232e3d35..31033122ccbc 100644 --- a/content/zh/blog/contact/committer/label-an-issue-guide_dev.md +++ b/content/zh/blog/contact/committer/label-an-issue-guide_dev.md @@ -7,7 +7,7 @@ weight: 3 如果您正在处理一个问题,请记得**给这个问题标记一个或者多个您认为有意义的标签**。有了标签,其他开发人员就会很轻松地识别出问题,以便对其进行分类并跟踪进度。 -对于需要编码和发版修复的 issues 和 pull requests,需要您**将其标记为 [milestone](https://github.com/apache/incubator*dubbo/milestones)**。 +对于需要编码和发版修复的 issues 和 pull requests,需要您**将其标记为 [milestone](https://github.com/apache/dubbo/milestones)**。 一些常用的标签: diff --git a/content/zh/blog/contact/committer/new-committer-guide_dev.md b/content/zh/blog/contact/committer/new-committer-guide_dev.md index d44af70c2009..94ca48c82f96 100644 --- a/content/zh/blog/contact/committer/new-committer-guide_dev.md +++ b/content/zh/blog/contact/committer/new-committer-guide_dev.md @@ -46,9 +46,9 @@ weight: 1 按照提示授权对 github 账户的 OAuth 协议登入 ### 在 github.com 设置 github 账户两因素授权(2FA) -按照[授权 GitHub 2FA wiki](https://help.github.com/articles/configuring-two-factor-authentication-via-a-totp-mobile-app/) 操作如下: +按照[授权 GitHub 2FA wiki](https://docs.github.com/en/authentication/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication) 操作如下: * 在手机安装 “google 身份验证器” app -* 按照[授权 GitHub 2FA wiki](https://help.github.com/articles/configuring-two-factor-authentication-via-a-totp-mobile-app/) 一步一步操作。 +* 按照[授权 GitHub 2FA wiki](https://docs.github.com/en/authentication/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication) 一步一步操作。 在[两因素授权验证](https://github.com/settings/security)界面,不建议选择用手机扫描二维码,因为有些手机会扫描不出来。 请打开手机 “google 身份验证器” app,点“+”选择“输入提供的秘钥”: 在“账户名” input 框写入 github 账户。在“您的秘钥” input 框写入:打开的网页中 "enter this text code" 链接里面的文本。在 app 中点击"添加" 后,将为此账户生成6位数字动态。将此6位数字写入网页中的文本框,然后点 “Enable”。这样 2FA 就设置成功了。 @@ -60,7 +60,7 @@ weight: 1 * 2FA 提交后,你已经 clone 的项目会有权限校验问题,解决方法为下面二选一: * 申请 Access Token: 在 github 上生成 access token 后,指令行需要密码的地方就粘贴token。 - 参考官网[帮助链接一](https://help.github.com/articles/https-cloning-errors/#provide-access-token-if-2fa-enabled)和[帮助链接二](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/) + 参考官网[帮助链接一](https://docs.github.com/cn/repositories/creating-and-managing-repositories/troubleshooting-cloning-errors#provide-access-token-if-2fa-enabled)和[帮助链接二](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token) * 改用 ssh: 在命令行执行 ssh-keygen 命令, 然后把pub文件中的内容粘贴到 github 上 @@ -73,12 +73,6 @@ weight: 1 社区重于代码,如果某问题或者方案没有在社区(邮件列表)讨论过,就当没有发生过 -### 添加你的名字 - -请访问孵化器[主页](https://incubator.apache.org/projects/dubbo.html)将你的名字添加到上面. 具体可以参考这个[文档](http://dubbo.apache.org/docs/3.0/zh-cn/docs/developers/committer-guide/apache-dubbo-page_dev.html). - -请访问 Dubbo[官方网站](http://dubbo.apache.org/docs/3.0/zh-cn/docs/developers/developers/developers_dev.html) 将你的名字添加到上面. - ### 小福利 Jetbrains 给 apache 提交者一个小福利,就是可以免费使用 idea 的全产品系列。具体注册地址为:https://www.jetbrains.com/shop/eform/apache?product=ALL diff --git a/content/zh/blog/contact/committer/release-guide/java-sdk.md b/content/zh/blog/contact/committer/release-guide/java-sdk.md index a8d085e7d631..f0f30281df78 100644 --- a/content/zh/blog/contact/committer/release-guide/java-sdk.md +++ b/content/zh/blog/contact/committer/release-guide/java-sdk.md @@ -243,13 +243,13 @@ $ mvn deploy -Prelease -DskipTests 9. 关闭Maven的staging仓库 - 此步骤为发布2.7.0及以上版本必须要的步骤。在此之前请先确保所有的artifact都是ok的。登录http://repository.apache.org,点击左侧的`Staging repositories`,然后搜索Dubbo关键字,会出现一系列的仓库,选择你最近上传的仓库,然后点击上方的Close按钮,这个过程会进行一系列检查,检查通过以后,在下方的Summary标签页上出现一个连接,请保存好这个链接,需要放在接下来的投票邮件当中。链接应该是类似这样的: https://repository.apache.org/content/repositories/orgapachedubbo-1015 + 此步骤为发布2.7.0及以上版本必须要的步骤。在此之前请先确保所有的artifact都是ok的。登录http://repository.apache.org,点击左侧的`Staging repositories`,然后搜索Dubbo关键字,会出现一系列的仓库,选择你最近上传的仓库,然后点击上方的Close按钮,这个过程会进行一系列检查,检查通过以后,在下方的Summary标签页上出现一个连接,请保存好这个链接,需要放在接下来的投票邮件当中。链接应该是类似这样的: `https://repository.apache.org/content/repositories/orgapachedubbo-1015` > 请注意点击Close可能会出现失败,通常是网络原因,只要重试几次就可以了。可以点击Summary旁边的Activity标签来确认。 ## 验证Release Candidates -详细的检查列表请参考官方的[check list](https://wiki.apache.org/incubator/IncubatorReleaseChecklist) +详细的检查列表请参考官方的[check list](https://cwiki.apache.org/confluence/display/INCUBATOR/Incubator+Release+Checklist) 首先,从一下地址下载要发布的Release Candidate到本地环境: @@ -398,7 +398,7 @@ The Apache Dubbo Team 4. 此步骤为发布2.7.0及以上版本必须要的步骤。在此之前请先确保所有的artifact都是ok的。登录http://repository.apache.org,点击左侧的`Staging repositories`,然后搜索Dubbo关键字,会出现一系列的仓库,选择你最近上传的仓库,然后点击上方的Release按钮. 5. 发布GitHub上的[release notes](https://github.com/apache/dubbo/releases) 6. 修改GitHub的Readme文件,将版本号更新到最新发布的版本 -7. 在官网下载[页面](http://dubbo.apache.org/en-us/blog/download.html)上添加最新版本的下载链接。最新的下载链接应该类似[这样](https://www.apache.org/dyn/closer.cgi?path=dubbo/$VERSION/apache-dubbo-$VERSION-source-release.zip). 同时更新以前版本的下载链接,改为类似[这样](https://archive.apache.org/dist/dubbo/$VERSION/apache-dubbo-$VERSION-bin-release.zip). 具体可以参考过往的[下载链接](https://github.com/apache/dubbo-website/blob/asf-site/blog/en-us/download.md) [可以参考] (https://github.com/apache/dubbo-website/pull/887) +7. 在官网下载[页面](/en/blog/2020/05/18/past-releases/)上添加最新版本的下载链接。最新的下载链接应该类似[这样](https://www.apache.org/dyn/closer.cgi?path=dubbo/$VERSION/apache-dubbo-$VERSION-source-release.zip). 同时更新以前版本的下载链接,改为类似`https://archive.apache.org/dist/dubbo/$VERSION/apache-dubbo-$VERSION-bin-release.zip`. 具体可以参考过往的[下载链接](/en/blog/2020/05/18/past-releases/) [可以参考] (https://github.com/apache/dubbo-website/pull/887) 8. 合并`${release-version}-release`分支到对应的主干分支, 然后删除相应的release分支,例如: `git push origin --delete 2.7.0-release` 9. 发邮件到 `dev@dubbo.apache.org` 宣布release邮件模板: @@ -424,7 +424,7 @@ hesitate to let us know by sending feedback to this mailing list or filing an issue on GitHub[4]. -[1] http://dubbo.apache.org/en-us/blog/download.html +[1] https://dubbo.apache.org/en/blog/2020/05/18/past-releases/ [2] https://repo1.maven.org/maven2/org/apache/dubbo/dubbo [3] https://github.com/apache/dubbo/releases [4] https://github.com/apache/dubbo/issues diff --git a/content/zh/blog/contact/contributor/become-a-committer_dev.md b/content/zh/blog/contact/contributor/become-a-committer_dev.md index 976f8d8f4edd..10a4cb0244ec 100644 --- a/content/zh/blog/contact/contributor/become-a-committer_dev.md +++ b/content/zh/blog/contact/contributor/become-a-committer_dev.md @@ -17,4 +17,4 @@ weight: 1 ### 我可以贡献什么? -请参阅[新的贡献者指南](/zh/docs/contribution-guidelines/contributor/new-contributor-guide_dev)。 +请参阅[新的贡献者指南](/zh/blog/1/01/01/新贡献者向导/)。 diff --git a/content/zh/blog/contact/contributor/dubbo-extension-guide_dev.md b/content/zh/blog/contact/contributor/dubbo-extension-guide_dev.md index d8c7443c5ddc..1ca65412b19a 100644 --- a/content/zh/blog/contact/contributor/dubbo-extension-guide_dev.md +++ b/content/zh/blog/contact/contributor/dubbo-extension-guide_dev.md @@ -26,7 +26,7 @@ Dubbo 使用微内核+插件的设计模式。内核只负责组装插件,Dubb ### Src指导 -通常,要实现特殊的扩展,只需要参考[开发者指南](http://dubbo.apache.org/#/docs/dev/build.md?lang=en-us),实现Dubbo必要的接口和合适的扩展即可。除此之外,还有一些其它的事项需要注意: +通常,要实现特殊的扩展,只需要参考[开发者指南](/zh/blog/contact/),实现Dubbo必要的接口和合适的扩展即可。除此之外,还有一些其它的事项需要注意: 1. 良好的测试,您需要编写单元测试和冒烟测试以消除潜在的 bug。 2. 没有警告,如有不可避免的警告,请使用 @SuppressWarnings 阻止它,但是请不要乱用。 diff --git a/content/zh/blog/contact/contributor/new-contributor-guide_dev.md b/content/zh/blog/contact/contributor/new-contributor-guide_dev.md index 40a96d0fb8a6..c3e7d99f0b3d 100644 --- a/content/zh/blog/contact/contributor/new-contributor-guide_dev.md +++ b/content/zh/blog/contact/contributor/new-contributor-guide_dev.md @@ -12,7 +12,7 @@ weight: 2 邮件列表是 Dubbo 官方推荐的讨论方式,所有与 Dubbo 相关的内容都可以在这里讨论,请点击 [issue](https://github.com/apache/dubbo/issues/1393) 了解更多关于邮件列表订阅的内容 -如需订阅如下邮件列表,请参考 [邮件列表订阅向导](/zh/docs/contribution-guidelines/contributor/mailing-list-subscription-guide_dev) +如需订阅如下邮件列表,请参考 [邮件列表订阅向导](/zh/blog/1/01/01/邮件列表订阅向导/) * dev@dubbo.apache.org:开发邮件列表,您在使用或者开发 Dubbo 的过程中遇到的任何问题,都可以在这里进行提问。 * commits@dubbo.apache.org:所有的提交内容都会推送到这个邮件列表,如果您对 Dubbo 的进展感兴趣,可以订阅这个邮件列表。 @@ -130,4 +130,4 @@ Dubbo社区将会Review您的Pull Request,并可能提出修改意见,您可 ### 参与发布投票 -参与发布投票是一种重要的贡献社区的方式,Dubbo 社区非常欢迎和鼓励任何人参与投票,每当一个版本需要正式发布的时候,会在开发者邮件列表上进行发布投票,只有当投票取得通过之后,才会正式发布,可以参考这个[检查列表](https://wiki.apache.org/incubator/IncubatorReleaseChecklist)对源码进行合规性检查。如果有任何问题,可以在开发者邮件列表上提问。 +参与发布投票是一种重要的贡献社区的方式,Dubbo 社区非常欢迎和鼓励任何人参与投票,每当一个版本需要正式发布的时候,会在开发者邮件列表上进行发布投票,只有当投票取得通过之后,才会正式发布,可以参考这个[检查列表](https://cwiki.apache.org/confluence/display/INCUBATOR/Incubator+Release+Checklist)对源码进行合规性检查。如果有任何问题,可以在开发者邮件列表上提问。 diff --git a/content/zh/blog/contact/contributor/test-coverage-guide_dev.md b/content/zh/blog/contact/contributor/test-coverage-guide_dev.md index b8574daabf88..876b6dfa46da 100644 --- a/content/zh/blog/contact/contributor/test-coverage-guide_dev.md +++ b/content/zh/blog/contact/contributor/test-coverage-guide_dev.md @@ -14,7 +14,7 @@ weight: 7 * 注意边界条件。 * 单元测试也应该好好设计,不要写无用的代码。 * 当你发现一个`方法`很难写单元测试时,如果可以确认这个`方法`是`臭代码`,那么就和开发者一起重构它。 -* Dubbo中用的mock框架是: [mockito](http://site.mockito.org/). 下面是一些开发向导:[mockito tutorial](http://www.baeldung.com/bdd-mockito),[mockito refcard](https://dzone.com/refcardz/mockito) +* Dubbo中用的mock框架是: [mockito](http://site.mockito.org/). 下面是一些开发向导:[mockito tutorial](https://www.baeldung.com/bdd-mockito),[mockito refcard](https://dzone.com/refcardz/mockito) * TDD(可选):当你开始写一个新的功能时,你可以试着先写测试用例。 ### 测试覆盖率设定值 * 在现阶段,Delta更改代码的测试覆盖设定值为:>=60%,越高越好。 diff --git a/content/zh/blog/golang/dubbo-go-config-center.md b/content/zh/blog/golang/dubbo-go-config-center.md index a5532f1aa2e9..e674d8c148be 100644 --- a/content/zh/blog/golang/dubbo-go-config-center.md +++ b/content/zh/blog/golang/dubbo-go-config-center.md @@ -253,7 +253,7 @@ func newApolloConfiguration(url *common.URL) (*apolloConfiguration, error) { 而 Parser & SetParser 使用默认实现即可,默认为 Properties 转换器。 -更多信息,参考:dubbo-go-apollo ,详情参考: https://github.com/apache/dubbo-go/tree/master/config_center/apollo +更多信息,参考:dubbo-go-apollo ,详情参考: https://github.com/apache/dubbo-go/tree/1.5/config_center/apollo ### 使用方法 diff --git a/content/zh/blog/golang/dubbo-go-first-glance.md b/content/zh/blog/golang/dubbo-go-first-glance.md index 62e3f6c61410..adb455c42b97 100644 --- a/content/zh/blog/golang/dubbo-go-first-glance.md +++ b/content/zh/blog/golang/dubbo-go-first-glance.md @@ -9,7 +9,7 @@ description: 本文记录了一个用户第一次接入 Dubbo Go 的体验 ### 前尘 -由于我的一个项目需要做公司用户鉴权,而组内其他小伙伴刚好有一个 *dubbo* 的鉴权 *rpc* ,一开始我是打算直接的读 *redis* 数据然后自己做解密。工作进行到一半,由于考虑到如果以后这个服务有任何变动,我这边要有联动行为,所以改用 *go* 来调用 *dubbo* 的 *rpc* ,于是我在 *github* 上找到了 [雨神](https://github.com/AlexStocks) 的 [dubbogo](https://github.com/AlexStocks/dubbogo) (PS: 这个是 *dubbo-go* 前身)。不得不说,雨神是热心的人儿啊,当时还帮着我调试代码。最后也是接入了一个阉割版的吧,主要是当时 *hessian2* 对泛型支持的不怎么好。 +由于我的一个项目需要做公司用户鉴权,而组内其他小伙伴刚好有一个 *dubbo* 的鉴权 *rpc* ,一开始我是打算直接的读 *redis* 数据然后自己做解密。工作进行到一半,由于考虑到如果以后这个服务有任何变动,我这边要有联动行为,所以改用 *go* 来调用 *dubbo* 的 *rpc* ,于是我在 *github* 上找到了 [雨神](https://github.com/AlexStocks) 的 `https://github.com/apache/dubbo-go-samples/tree/master` (PS: 这个是 *dubbo-go* 前身)。不得不说,雨神是热心的人儿啊,当时还帮着我调试代码。最后也是接入了一个阉割版的吧,主要是当时 *hessian2* 对泛型支持的不怎么好。 ### 现在 @@ -73,7 +73,7 @@ dubbo: retries: "3" ``` -我这里是把 *dubbo-go* 作为第三方库来用,所以我没使用官方 [dubbo-samples](https://github.com/dubbogo/dubbo-samples/golang) 那样在 *init* 函数中读入配置。 +我这里是把 *dubbo-go* 作为第三方库来用,所以我没使用官方 [dubbo-samples](https://github.com/apache/dubbo-go-samples/) 那样在 *init* 函数中读入配置。 配置代码如下: diff --git a/content/zh/blog/golang/dubbo-go-getty.md b/content/zh/blog/golang/dubbo-go-getty.md index 3b87e777e316..f24f6d96a12e 100644 --- a/content/zh/blog/golang/dubbo-go-getty.md +++ b/content/zh/blog/golang/dubbo-go-getty.md @@ -65,7 +65,7 @@ connected UDP 的两次发送过程如下: 这个 case 下,内核只在第一次设定下虚拟链接的 peer address,后面进行连续发送即可。所以 connected UDP 的发送过程减少了 1/3 的等待时间。 -2017年5月7日 我曾用 [python 程序](https://github.com/alexStocks/python-practice/blob/master/tcp_udp_http_ws/udp/client.py) +2017年5月7日 我曾用 python 程序(`https://github.com/alexStocks/python-practice/blob/master/tcp_udp_http_ws/udp/client.py`) 对二者之间的性能做过测试,如果 client 和 server 都部署在本机,测试结果显示发送 100 000 量的 UDP datagram packet 时,connected UDP 比 unconnected UDP 少用了 2 / 13 的时间。 @@ -74,7 +74,7 @@ connected UDP 的两次发送过程如下: #### 1.3 Go UDP Go 语言 UDP 编程也对 connected UDP 和 unconnected UDP 进行了明确区分,参考文档2 详细地列明了如何使用相关 -API,根据这篇文档个人也写一个 [程序](https://github.com/alexstocks/go-practice/blob/master/udp-tcp-http/udp/connected-udp.go) 测试这些 +API,根据这篇文档个人也写一个 程序(`https://github.com/alexstocks/go-practice/blob/master/udp-tcp-http/udp/connected-udp.go`) 测试这些 API,测试结论如下: * connected UDP 读写方法是 Read 和 Write; @@ -90,7 +90,7 @@ API,测试结论如下: #### 1.4 Getty UDP -版本 v0.8.1 Getty 中添加 connected UDP 支持时,其连接函数 [dialUDP](https://github.com/alexstocks/getty/blob/master/client.go#L141) +版本 v0.8.1 Getty 中添加 connected UDP 支持时,其连接函数 dialUDP(`https://github.com/alexstocks/getty/blob/master/client.go#L141`) 这是简单调用了 net.DialUDP 函数,导致昨日(20180318 22:19 pm)测试的时候遇到一个怪现象:把 peer UDP endpoint 关闭,local udp endpoint 进行 connect 时 net.DialUDP 函数返回成功,然后 lsof 命令查验结果时看到确实存在这个单链接: @@ -99,7 +99,7 @@ net.DialUDP 函数返回成功,然后 lsof 命令查验结果时看到确实 然后当 net.UDPConn 进行 read 动作的时候,会得到错误 “read: connection refused”。 -于是模仿C语言中对 TCP client connect 成功与否判断方法,对 [dialUDP](https://github.com/alexstocks/getty/blob/master/client.go#L141) 改进如下: +于是模仿C语言中对 TCP client connect 成功与否判断方法,对 dialUDP(`https://github.com/alexstocks/getty/blob/master/client.go#L141`) 改进如下: * net.DialUDP 成功之后,判断其是否是自连接,是则退出; * connected UDP 向对端发送一个无用的 datagram packet【”ping”字符串,对端会因其非正确 datagram 而丢弃】,失败则退出; @@ -132,11 +132,11 @@ net.DialUDP 函数返回成功,然后 lsof 命令查验结果时看到确实 但是为何发生读超时错误则毫无头绪。 2018/03/07 日测试 TCP compression 的时候发现启动 compression 后,程序 CPU 也会很快跑到 -100%,进一步追查后发现函数 [getty/conn.go:gettyTCPConn::read](https://github.com/alexstocks/getty/blob/master/conn.go#L228) 里面的 log +100%,进一步追查后发现函数 getty/conn.go:gettyTCPConn::read(`https://github.com/alexstocks/getty/blob/master/conn.go#L228`) 里面的 log 有很多 “io timeout” error。当时查到这个错误很疑惑,因为我已经在 TCP read 之前进行了超时设置【SetReadDeadline】,难道启动 compression 会导致超时设置失效使得socket成了非阻塞的socket? -于是在 [getty/conn.go:gettyTCPConn::read](https://github.com/alexstocks/getty/blob/master/conn.go#L228) 中添加了一个逻辑:启用 TCP +于是在 getty/conn.go:gettyTCPConn::read(`https://github.com/alexstocks/getty/blob/master/conn.go#L228`) 中添加了一个逻辑:启用 TCP compression 的时不再设置超时时间【默认情况下tcp connection是永久阻塞的】,CPU 100% 的问题很快就得到了解决。 至于为何 `启用 TCP compression 会导致 SetDeadline 失效使得socket成了非阻塞的socket`,囿于个人能力和精力,待将来追查出结果后再在此补充之。 @@ -146,7 +146,7 @@ compression 的时不再设置超时时间【默认情况下tcp connection是永 TCP compression 的问题解决后,个人猜想 Websocket compression 程序遇到的问题或许也跟 `启用 TCP compression 会导致 SetDeadline 失效使得socket成了非阻塞的socket` 有关。 -于是借鉴 TCP 的解决方法,在 [getty/conn.go:gettyWSConn::read](https://github.com/alexstocks/getty/blob/master/conn.go#L527) +于是借鉴 TCP 的解决方法,在 getty/conn.go:gettyWSConn::read(`https://github.com/alexstocks/getty/blob/master/conn.go#L527`) 直接把超时设置关闭,然后 CPU 100% 被解决,且程序运转正常。 ### 3 unix socket @@ -197,7 +197,7 @@ worker gr 从此队列中取出任务进行消费处理。 chan,其缺点是:队列读写模型是 一写多读,因为 go channel 的低效率【整体使用一个 mutex lock】造成竞争激烈,当然其网络包处理顺序更无从保证。 [dubbogo/getty][1] 初始版本的 [gr pool][9] 模型为 1:1,每个 gr 多有自己的 chan,其读写模型是一写一读,其优点是可保证网络包处理顺序性, 如读取 kafka 消息时候,按照 kafka -message 的 key 的 hash 值以取余方式【hash(message key) % N】将其投递到某个 task queue,则同一 key 的消息都可以保证处理有序。但 [望哥](10) +message 的 key 的 hash 值以取余方式【hash(message key) % N】将其投递到某个 task queue,则同一 key 的消息都可以保证处理有序。但望哥 指出了这种模型的缺陷:每个task处理要有时间,此方案会造成某个 gr 的 chan 里面有 task 堵塞,就算其他 gr 闲着,也没办法处理之【任务处理“饥饿”】。 [wenwei86][12] 给出了更进一步的 1:1 模型的改进方案:每个 gr 一个 chan,如果 gr 发现自己的 chan 没有请求,就去找别的 chan,发送方也尽量发往消费快的协程。这个方案类似于 go runtime 内部的 @@ -219,15 +219,28 @@ Task 派发采用 RoundRobin 方式。 1. [connect Function with UDP](http://www.masterraghu.com/subjects/np/introduction/unix_network_programming_v1.3/ch08lev1sec11.html) 2. [深入Go UDP编程](http://colobu.com/2016/10/19/Go-UDP-Programming/) -[1]:https://github.com/dubbogo/getty -[2]:https://github.com/apache/dubbo-go/ -[3]:https://github.com/alexstocks/getty -[4]:https://www.oschina.net/question/3820517_2306822 -[5]:https://github.com/alexstocks/goext/blob/master/sync/pool/worker_pool.go -[6]:https://github.com/AlexStocks/kafka-connect-elasticsearch -[7]:https://github.com/AlexStocks/kafka-connect-elasticsearch/blob/master/app/worker.go -[8]:https://github.com/dubbogo/getty/pull/6/commits/4b32c61e65858b3eea9d88d8f1c154ab730c32f1 -[9]:https://github.com/dubbogo/getty/pull/6/files/c4d06e2a329758a6c65c46abe464a90a3002e428#diff-9922b38d89e2ff9f820f2ce62f254162 -[10]:https://github.com/wongoo -[11]:https://github.com/dubbogo/getty/pull/6/commits/1991056b300ba9804de0554dbb49b5eb04560c4b -[12]:https://github.com/wenweihu86 + + +> 1: https://github.com/dubbogo/getty +> +> 2: https://github.com/apache/dubbo-go/ +> +> 3: https://github.com/alexstocks/getty +> +> 4: https://www.oschina.net/question/3820517_2306822 +> +> 5: https://github.com/alexstocks/goext/blob/master/sync/pool/worker_pool.go +> +> 6: https://github.com/AlexStocks/kafka-connect-elasticsearch +> +> 7: https://github.com/AlexStocks/kafka-connect-elasticsearch/blob/master/app/worker.go +> +> 8: https://github.com/dubbogo/getty/pull/6/commits/4b32c61e65858b3eea9d88d8f1c154ab730c32f1 +> +> 9: https://github.com/dubbogo/getty/pull/6/files/c4d06e2a329758a6c65c46abe464a90a3002e428#diff-9922b38d89e2ff9f820f2ce62f254162 +> +> 10: https://github.com/wongoo +> +> 11: https://github.com/dubbogo/getty/pull/6/commits/1991056b300ba9804de0554dbb49b5eb04560c4b +> +> 12: https://github.com/wenweihu86 diff --git a/content/zh/blog/golang/dubbo-go-nacos.md b/content/zh/blog/golang/dubbo-go-nacos.md index 9f4706f58e1e..f54f9c920ce3 100644 --- a/content/zh/blog/golang/dubbo-go-nacos.md +++ b/content/zh/blog/golang/dubbo-go-nacos.md @@ -60,7 +60,7 @@ Dubbo-go的Consumer在启动的时候会调用Nacos-SDK-go的Subscribe接口, ## 环境准备 -dubbo-go samples代码下载:https://github.com/apache/dubbo-samples/tree/master/golang,基于Nacos注册中心的应用级服务发现的hello world代码目录在 registry/servicediscovery/nacos。 +dubbo-go samples代码下载:https://github.com/apache/dubbo-go-samples/tree/master,基于Nacos注册中心的应用级服务发现的hello world代码目录在 registry/servicediscovery/nacos。 ![](/imgs/blog/dubbo-go/nacos/p7.png) diff --git a/content/zh/blog/golang/dubbo-go-quickstart.md b/content/zh/blog/golang/dubbo-go-quickstart.md index d02c69c29a9d..463038e21610 100644 --- a/content/zh/blog/golang/dubbo-go-quickstart.md +++ b/content/zh/blog/golang/dubbo-go-quickstart.md @@ -18,7 +18,7 @@ PS:以下的学习方式适用于很多新技术 **首先学习一个技术首先要看看它的整体架构和基本概念**,每个技术都有着自己的名词解释和实现方式,如果文档齐全就简单很多。 -[http://dubbo.apache.org/zh-cn/docs/user/preface/background.html](https://links.jianshu.com/go?to=http%3A%2F%2Fdubbo.apache.org%2Fzh-cn%2Fdocs%2Fuser%2Fpreface%2Fbackground.html) +[/zh/docs/user/preface/background.html](https://links.jianshu.com/go?to=http%3A%2F%2Fdubbo.apache.org%2Fzh-cn%2Fdocs%2Fuser%2Fpreface%2Fbackground.html) 大致浏览了背景、需求、架构之后基本上有一个大致概念 diff --git a/content/zh/blog/golang/dubbo-go-router.md b/content/zh/blog/golang/dubbo-go-router.md index 08beeb2dfdaa..60ba0fc7415b 100644 --- a/content/zh/blog/golang/dubbo-go-router.md +++ b/content/zh/blog/golang/dubbo-go-router.md @@ -264,7 +264,7 @@ force: true conditions : ["host = 1.1.1.1 => host = 192.168.199.214"] ``` -更多配置方式:[条件路由配置](http://dubbo.apache.org/zh-cn/docs/user/demos/routing-rule.html) +更多配置方式:[条件路由配置](/zh/docsv2.7/user/examples/routing-rule/) ### 配置中心配置 diff --git a/content/zh/blog/golang/dubbo-go-trusted-call.md b/content/zh/blog/golang/dubbo-go-trusted-call.md index c60fdd584fbe..1b30b1cea805 100644 --- a/content/zh/blog/golang/dubbo-go-trusted-call.md +++ b/content/zh/blog/golang/dubbo-go-trusted-call.md @@ -76,7 +76,7 @@ type Authenticator interface { ## 示例 -以 [Helloworld 示例](https://github.com/apache/dubbo-samples/tree/master/golang/helloworld/dubbo) 中的代码接入当前社区版本中的默认鉴权认证功能实现为例: +以 [Helloworld 示例](https://github.com/apache/dubbo-go-samples/tree/master/helloworld/) 中的代码接入当前社区版本中的默认鉴权认证功能实现为例: 在无需改变代码的情况下,只需要在配置上增加额外的相关鉴权配置即可,dubbo-go 服务端配置示例如下: diff --git a/content/zh/blog/golang/dubbo-go-tuya.md b/content/zh/blog/golang/dubbo-go-tuya.md index 8ae0c9e1540b..c93b0aea229b 100644 --- a/content/zh/blog/golang/dubbo-go-tuya.md +++ b/content/zh/blog/golang/dubbo-go-tuya.md @@ -33,7 +33,7 @@ dubbo-go 在涂鸦智能的使用情况如上图,接下来会为大家详细 ### 实践 -从上图可以看到,网关能动态加载 dubbo 接口信息,调用 dubbo 接口是基于 dubbo 泛化调用。泛化调用使 client 不需要构建 provider 的 interface 代码,在 dubbo-go 中表现为无需调用 config.SetConsumerService 和 hessian.RegisterPOJO 方法,而是将请求模型纯参数完成,这使得 client 动态新增、修改接口成为可能。在 [apache/dubbo-sample/golang/generic/go-client](https://github.com/apache/dubbo-samples/tree/master/golang/generic/go-client) 中的有泛化调用的演示代码。 +从上图可以看到,网关能动态加载 dubbo 接口信息,调用 dubbo 接口是基于 dubbo 泛化调用。泛化调用使 client 不需要构建 provider 的 interface 代码,在 dubbo-go 中表现为无需调用 config.SetConsumerService 和 hessian.RegisterPOJO 方法,而是将请求模型纯参数完成,这使得 client 动态新增、修改接口成为可能。在 [apache/dubbo-sample/golang/generic/default/go-client](https://github.com/apache/dubbo-go-samples/tree/master/generic/default/go-client) 中的有泛化调用的演示代码。 ```go func test() { @@ -57,7 +57,7 @@ func test() { } ``` -泛化调用的实现其实相当简单。其功能作用在 dubbo 的 Filter 层中。[Generic Filter](https://github.com/apache/dubbo-go/blob/master/filter/filter_impl/generic_filter.go) 已经作为默认开启的 Filter 加入到 dubbo Filter 链中。其核心逻辑如下: +泛化调用的实现其实相当简单。其功能作用在 dubbo 的 Filter 层中。[Generic Filter](https://github.com/apache/dubbo-go/blob/master/filter/generic/filter.go) 已经作为默认开启的 Filter 加入到 dubbo Filter 链中。其核心逻辑如下: ```go func (ef *GenericFilter) Invoke(ctx context.Context, invoker protocol.Invoker, invocation protocol.Invocation) protocol.Result { diff --git a/content/zh/blog/golang/dubbogo-from-scratch.md b/content/zh/blog/golang/dubbogo-from-scratch.md index 914386bfaec9..9d4f5565a44b 100644 --- a/content/zh/blog/golang/dubbogo-from-scratch.md +++ b/content/zh/blog/golang/dubbogo-from-scratch.md @@ -68,7 +68,7 @@ public class User implements Serializable { #### 2.1.2 启动 dubbo 服务提供者 -用的 [dubbo 官方示例代码](http://dubbo.apache.org/zh/docs/v2.7/user/configuration/api/): +用的 [dubbo 官方示例代码](/zh/docsv2.7/user/configuration/api/): ```java @@ -834,7 +834,7 @@ dubbogo 主要有三个配置文件: ## 四、参考 -- [https://dubbo.apache.org/zh/docs/v2.7/user/configuration/api/](https://dubbo.apache.org/zh/docs/v2.7/user/configuration/api/) +- [https://dubbo.apache.org/zh/docsv2.7/user/configuration/api/](/zh/docsv2.7/user/configuration/api/) - [https://github.com/apache/dubbo-go/issues/257](https://github.com/apache/dubbo-go/issues/257) --- diff --git a/content/zh/blog/integration/dubbo-admin.md b/content/zh/blog/integration/dubbo-admin.md index b5f9a69c1272..97f58e4f9bde 100644 --- a/content/zh/blog/integration/dubbo-admin.md +++ b/content/zh/blog/integration/dubbo-admin.md @@ -7,7 +7,6 @@ description: > --- ``` -Demo地址:http://47.91.207.147/#/service github: https://github.com/apache/dubbo-ops ``` Dubbo Admin之前的版本过于老旧,也长期疏于维护,因此在去年年中的时候,对该项目进行了一次重构,项目结构上的变化如下: diff --git a/content/zh/blog/integration/dubbo-fescar.md b/content/zh/blog/integration/dubbo-fescar.md index cf6a4fb532e1..bc1b65d7b05e 100644 --- a/content/zh/blog/integration/dubbo-fescar.md +++ b/content/zh/blog/integration/dubbo-fescar.md @@ -228,7 +228,7 @@ sh seata-server.sh -p 8091 -h 127.0.0.1 -m file ### Step 5: 运行例子 - 启动账户服务 ([DubboAccountServiceStarter](https://github.com/seata/seata-samples/blob/master/dubbo/src/main/java/io/seata/samples/dubbo/starter/DubboAccountServiceStarter.java))。 -- 启动库存服务 ([DubboStorageServiceStarter](https://github.com/seata/seata-samples/blob/master/dubbo/src/main/java/io/seata/samples/dubbo/starter/DubboStorageServiceStarter.java))。 +- 启动库存服务 ([DubboStockServiceStarter](https://github.com/seata/seata-samples/blob/master/dubbo/src/main/java/io/seata/samples/dubbo/starter/DubboStockServiceStarter.java))。 - 启动订单服务 ([DubboOrderServiceStarter](https://github.com/seata/seata-samples/blob/master/dubbo/src/main/java/io/seata/samples/dubbo/starter/DubboOrderServiceStarter.java))。 - 运行BusinessService入口 ([DubboBusinessTester](https://github.com/seata/seata-samples/blob/master/dubbo/src/main/java/io/seata/samples/dubbo/starter/DubboBusinessTester.java))。 diff --git a/content/zh/blog/integration/dubbo-graalvm-support.md b/content/zh/blog/integration/dubbo-graalvm-support.md index b4ddaa2f69b4..abf71e15508e 100644 --- a/content/zh/blog/integration/dubbo-graalvm-support.md +++ b/content/zh/blog/integration/dubbo-graalvm-support.md @@ -28,7 +28,7 @@ description: > ## 快速上手 -​ 为了便于用户快速上手,我们在本分支,即[apache:2.7-native_image](https://github.com/apache/dubbo/tree/2.7-native_image)分支中,提供了如下demo。 +​ 为了便于用户快速上手,我们在 Dubbo 仓库中,提供了如下demo。 ​ 模块名dubbo-demo-native,该模块中提供了简易版本的dubbo的provider以及consumer: @@ -339,7 +339,3 @@ public T getProxy(Invoker invoker, boolean generic) throws RpcException { ​ 这里由于该service拥有多个接口获取proxy时需要是有序的,原先使用的set不满足需求,这里用ArrayList替代。 ​ 以上就是为了支持graalvm对dubbo源码的主要改动点。 - -分支地址如下: - -https://github.com/apache/dubbo/tree/2.7-native_image diff --git a/content/zh/blog/integration/dubbo-meet-arthas.md b/content/zh/blog/integration/dubbo-meet-arthas.md index e4ed4a926c86..8020f9ae736e 100644 --- a/content/zh/blog/integration/dubbo-meet-arthas.md +++ b/content/zh/blog/integration/dubbo-meet-arthas.md @@ -16,7 +16,7 @@ Apache Dubbo是Alibaba开源的高性能RPC框架,在国内有非常多的用 Arthas是Alibaba开源的应用诊断利器,9月份开源以来,Github Star数三个月超过6000。 * Github: https://github.com/alibaba/arthas -* 文档:https://alibaba.github.io/arthas/ +* 文档:https://arthas.aliyun.com/doc/ * Arthas开源交流QQ群: 916328269 * Arthas开源交流钉钉群: 21965291 @@ -71,10 +71,10 @@ public class UserServiceImpl implements UserService { ### Arthas快速开始 -* https://alibaba.github.io/arthas/install-detail.html +* https://arthas.aliyun.com/doc/install-detail.html ```bash -$ wget https://alibaba.github.io/arthas/arthas-boot.jar +$ wget https://arthas.aliyun.com/arthas-boot.jar $ java -jar arthas-boot.jar ``` @@ -96,7 +96,7 @@ $ java -jar arthas-boot.jar | | | || |\ \ | | | | | || | | |.-' | `--' `--'`--' '--' `--' `--' `--'`--' `--'`-----' -wiki: https://alibaba.github.io/arthas +wiki: https://arthas.aliyun.com/doc version: 3.0.5 pid: 43523 time: 2018-12-05 16:23:52 @@ -107,7 +107,7 @@ $ ### Dubbo线上服务抛出异常,怎么获取调用参数? -* https://alibaba.github.io/arthas/watch.html +* https://arthas.aliyun.com/doc/watch.html 当线上服务抛出异常时,最着急的是什么参数导致了抛异常? @@ -135,7 +135,7 @@ ts=2018-12-05 16:26:44; [cost=3.905523ms] result=@ArrayList[ ### 怎样线上调试Dubbo服务代码? -* https://alibaba.github.io/arthas/redefine.html +* https://arthas.aliyun.com/doc/redefine.html 在本地开发时,可能会用到热部署工具,直接改代码,不需要重启应用。但是在线上环境,有没有办法直接动态调试代码?比如增加日志。 @@ -169,8 +169,8 @@ redefine success, size: 1 ### 怎样动态修改Dubbo的logger级别? -* https://alibaba.github.io/arthas/ognl.html -* https://alibaba.github.io/arthas/sc.html +* https://arthas.aliyun.com/doc/ognl.html +* https://arthas.aliyun.com/doc/sc.html * https://commons.apache.org/proper/commons-ognl/language-guide.html 在排查问题时,需要查看到更多的信息,如果可以把logger级别修改为`DEBUG`,就非常有帮助。 @@ -230,7 +230,7 @@ $ ognl '@org.slf4j.LoggerFactory@getLogger("root").getLevel().toString()' ### 怎样减少测试小姐姐重复发请求的麻烦? -* https://alibaba.github.io/arthas/tt.html +* https://arthas.aliyun.com/doc/tt.html 在平时开发时,可能需要测试小姐姐发请求过来联调,但是我们在debug时,可能不小心直接跳过去了。这样子就尴尬了,需要测试小姐姐再发请求过来。 @@ -269,7 +269,7 @@ Affect(row-cnt:1) cost in 4 ms. ### Dubbo运行时有哪些Filter? 耗时是多少? -* https://alibaba.github.io/arthas/trace.html +* https://arthas.aliyun.com/doc/trace.html Dubbo运行时会加载很多的Filter,那么一个请求会经过哪些Filter处理,Filter里的耗时又是多少呢? @@ -297,7 +297,7 @@ Affect(class-cnt:19 , method-cnt:59) cost in 1441 ms. ### Dubbo动态代理是怎样实现的? -* https://alibaba.github.io/arthas/jad.html +* https://arthas.aliyun.com/doc/jad.html * com.alibaba.dubbo.common.bytecode.Wrapper 通过Arthas的`jad`命令,可以看到Dubbo通过javaassist动态生成的Wrappr类的代码: diff --git a/content/zh/blog/integration/dubbo-zk.md b/content/zh/blog/integration/dubbo-zk.md index b1f65b8ef8d5..14d5a253406a 100644 --- a/content/zh/blog/integration/dubbo-zk.md +++ b/content/zh/blog/integration/dubbo-zk.md @@ -138,7 +138,7 @@ world Dubbo 使用 Zookeeper 用于服务的注册发现和配置管理,在 Zookeeper 中数据的组织由下图所示: -![dubbo-in-zk](../../img/blog/dubbo-in-zk.jpg) +![dubbo-in-zk](/imgs/blog/dubbo-in-zk.jpg) 首先,所有 Dubbo 相关的数据都组织在 `/dubbo` 的根节点下。 diff --git a/content/zh/blog/integration/how-to-proxy-dubbo-in-apache-apisix.md b/content/zh/blog/integration/how-to-proxy-dubbo-in-apache-apisix.md index b5b425115e8a..7d819ab1e958 100644 --- a/content/zh/blog/integration/how-to-proxy-dubbo-in-apache-apisix.md +++ b/content/zh/blog/integration/how-to-proxy-dubbo-in-apache-apisix.md @@ -8,7 +8,7 @@ description: > ## 背景 -[Apache Dubbo](https://dubbo.apache.org/zh/) 是由阿里巴巴开源并捐赠给 Apache 的微服务开发框架,它提供了 RPC 通信与微服务治理两大关键能力。不仅经过了阿里电商场景中海量流量的验证,也在国内的技术公司中被广泛落地。 +[Apache Dubbo](/zh/) 是由阿里巴巴开源并捐赠给 Apache 的微服务开发框架,它提供了 RPC 通信与微服务治理两大关键能力。不仅经过了阿里电商场景中海量流量的验证,也在国内的技术公司中被广泛落地。 在实际应用场景中,Apache Dubbo 一般会作为后端系统间 RPC 调用的实现框架,当需要提供 HTTP 接口给到前端时,会通过一个「胶水层」将 Dubbo Service 包装成 HTTP 接口,再交付到前端系统。 diff --git a/content/zh/blog/integration/how-to-proxy-dubbo-in-apache-shenyu.md b/content/zh/blog/integration/how-to-proxy-dubbo-in-apache-shenyu.md index e924d55d73dc..427e90983816 100644 --- a/content/zh/blog/integration/how-to-proxy-dubbo-in-apache-shenyu.md +++ b/content/zh/blog/integration/how-to-proxy-dubbo-in-apache-shenyu.md @@ -28,7 +28,7 @@ description: > ## 2. Dubbo快速开始 -本小节介绍如何将`Dubbo`服务接入到`ShenYu`网关,您可以直接在工程下找到本小节的[示例代码](https://github.com/apache/incubator-shenyu/tree/master/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-apache-dubbo-service) 。 +本小节介绍如何将`Dubbo`服务接入到`ShenYu`网关,您可以直接在工程下找到本小节的[示例代码](https://github.com/apache/shenyu/tree/master/shenyu-examples/shenyu-examples-dubbo) 。 ### 2.1 启动shenyu-admin @@ -84,7 +84,7 @@ description: > ### 2.3 启动shenyu-examples-dubbo -以官网提供的例子为例 [shenyu-examples-dubbo](https://github.com/apache/incubator-shenyu/tree/master/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-apache-dubbo-service) 。 假如`dubbo`服务定义如下: +以官网提供的例子为例 [shenyu-examples-dubbo](https://github.com/apache/shenyu/tree/master/shenyu-examples/shenyu-examples-dubbo) 。 假如`dubbo`服务定义如下: ```xml @@ -176,7 +176,7 @@ shenyu: > > 然后可以采用 `Match`,`=`,`Regex`,`Groovy`,`Exclude`等匹配方式,匹配出你所预想的数据。多组匹配添加可以使用`And/Or`的匹配策略。 > -> 具体的介绍与使用请看: [选择器与规则管理](https://shenyu.apache.org/zh/docs/design/user-guide/admin-usage/selector-and-rule) 。 +> 具体的介绍与使用请看: [选择器与规则管理](https://shenyu.apache.org/zh/docs/user-guide/admin-usage/selector-and-rule) 。 发起`GET`请求,通过`ShenYu`网关调用`dubbo`服务: diff --git a/content/zh/blog/integration/pinpoint.md b/content/zh/blog/integration/pinpoint.md index 59c53908e80d..983dd7ce310a 100644 --- a/content/zh/blog/integration/pinpoint.md +++ b/content/zh/blog/integration/pinpoint.md @@ -62,7 +62,7 @@ description: > ### 启动Pinpoint -参考Pinpoint的[Quick start](http://naver.github.io/pinpoint/quickstart.html)搭建环境(不需要启动TestApp) +参考Pinpoint的[Quick start](https://pinpoint-apm.github.io/pinpoint/quickstart.html)搭建环境(不需要启动TestApp) ### 准备Dubbo示例程序 diff --git a/content/zh/blog/integration/sentinel-introduction-for-dubbo.md b/content/zh/blog/integration/sentinel-introduction-for-dubbo.md index 2f357c0e3922..f6e8311829e8 100644 --- a/content/zh/blog/integration/sentinel-introduction-for-dubbo.md +++ b/content/zh/blog/integration/sentinel-introduction-for-dubbo.md @@ -55,13 +55,13 @@ Sentinel 的控制台(Dashboard)是流量控制、熔断降级规则统一 - **单台设备监控**:当在机器列表中看到您的机器,就代表着已经成功接入控制台,可以查看单台设备的设备名称、IP地址、端口号、健康状态和心跳时间等信息。 -![Discovery](https://github.com/alibaba/Sentinel/wiki/image/machinediscover.png) +![Discovery](/imgs/blog/2018/07/27/sentinel/machinediscover.png) - **链路监控**:簇点链路实时的去拉取指定客户端资源的运行情况,它提供了两种展示模式,一种用书状结构展示资源的调用链路;另外一种则不区分调用链路展示资源的运行情况。通过链路监控,可以查看到每个资源的流控和降级的历史状态。 | 树状链路| 平铺链路 | :----: | :---- -|![resourceTree](https://github.com/alibaba/Sentinel/wiki/image/resourceTree.png)|![cluster](https://github.com/alibaba/Sentinel/wiki/image/sentine_dashboard.gif) +|![resourceTree](/imgs/blog/2018/07/27/sentinel/resourceTree.png)|![cluster](/imgs/blog/2018/07/27/sentinel/sentine_dashboard.gif) - **聚合监控**:同一个服务下的所有机器的簇点信息会被汇总,实现实时监控,精确度达秒级。 @@ -121,7 +121,7 @@ Service Consumer 作为客户端去调用远程服务。每一个服务都可能 ### Fallback -从 0.1.1 版本开始,Sentinel Dubbo Adapter 还支持配置全局的 fallback 函数,可以在 Dubbo 服务被限流/降级/负载保护的时候进行相应的 fallback 处理。用户只需要实现自定义的 [`DubboFallback`](https://github.com/alibaba/Sentinel/blob/master/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/fallback/DubboFallback.java) 接口,并通过 `DubboFallbackRegistry` 注册即可。默认情况会直接将 `BlockException` 包装后抛出。同时,我们还可以配合 [Dubbo 的 fallback 机制](http://dubbo.apache.org/#!/docs/user/demos/local-mock.md?lang=zh-cn) 来为降级的服务提供替代的实现。 +从 0.1.1 版本开始,Sentinel Dubbo Adapter 还支持配置全局的 fallback 函数,可以在 Dubbo 服务被限流/降级/负载保护的时候进行相应的 fallback 处理。用户只需要实现自定义的 [`DubboFallback`](https://github.com/alibaba/Sentinel/blob/master/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/fallback/DubboFallback.java) 接口,并通过 `DubboFallbackRegistry` 注册即可。默认情况会直接将 `BlockException` 包装后抛出。同时,我们还可以配合 [Dubbo 的 fallback 机制](/zh/docsv2.7/user/examples/local-mock/) 来为降级的服务提供替代的实现。 ## Sentinel 与 Hystrix 的比较 diff --git a/content/zh/blog/integration/tracing-with-skywalking.md b/content/zh/blog/integration/tracing-with-skywalking.md index 38281b66434e..d19af20fe6b6 100644 --- a/content/zh/blog/integration/tracing-with-skywalking.md +++ b/content/zh/blog/integration/tracing-with-skywalking.md @@ -7,7 +7,7 @@ description: > --- ## Apache Skywalking(Incubator)简介 -[Apache Skywalking(Incubator)](https://github.com/apache/incubator-skywalking) 专门为微服务架构和云原生架构系统而设计并且支持分布式链路追踪的APM系统。[Apache Skywalking(Incubator)](https://github.com/apache/incubator-skywalking)通过加载探针的方式收集应用调用链路信息,并对采集的调用链路信息进行分析,生成应用间关系和服务间关系以及服务指标。[Apache Skywalking (Incubating)](https://github.com/apache/incubator-skywalking)目前支持多种语言,其中包括[Java](https://github.com/apache/incubator-skywalking),[.Net Core](https://github.com/OpenSkywalking/skywalking-netcore),[Node.js](https://github.com/OpenSkywalking/skywalking-nodejs)和[Go](https://github.com/OpenSkywalking/skywalking-go)语言。 +[Apache Skywalking(Incubator)](https://github.com/apache/skywalking) 专门为微服务架构和云原生架构系统而设计并且支持分布式链路追踪的APM系统。[Apache Skywalking(Incubator)](https://github.com/apache/skywalking)通过加载探针的方式收集应用调用链路信息,并对采集的调用链路信息进行分析,生成应用间关系和服务间关系以及服务指标。[Apache Skywalking (Incubating)](https://github.com/apache/skywalking)目前支持多种语言,其中包括[Java](https://github.com/apache/skywalking),[.Net Core](https://github.com/OpenSkywalking/skywalking-netcore),[Node.js](https://github.com/OpenSkywalking/skywalking-nodejs)和[Go](https://github.com/SkyAPM/go2sky)语言。 目前Skywalking已经支持从6个可视化维度剖析分布式系统的运行情况。总览视图是应用和组件的全局视图,其中包括组件和应用数量,应用的告警波动,慢服务列表以及应用吞吐量;拓扑图从应用依赖关系出发,展现整个应用的拓扑关系;应用视图则是从单个应用的角度,展现应用的上下游关系,TopN的服务和服务器,JVM的相关信息以及对应的主机信息。服务视图关注单个服务入口的运行情况以及此服务的上下游依赖关系,依赖度,帮助用户针对单个服务的优化和监控;调用链展现了调用的单次请求经过的所有埋点以及每个埋点的执行时长;告警视图根据配置阈值针对应用、服务器、服务进行实时告警。 @@ -71,7 +71,7 @@ public class ConsumerController { ``` ### 部署Apache Skywalking(Incubator) -Apache Skywalking(Incubator)共提供两种部署模式:单节点模式和集群模式,以下为单节点模式部署步骤,集群模式部署详情参考[文档](https://github.com/apache/incubator-skywalking/blob/master/docs/cn/Deploy-backend-in-cluster-mode-CN.md)。 +Apache Skywalking(Incubator)共提供两种部署模式:单节点模式和集群模式,以下为单节点模式部署步骤,集群模式部署详情参考[文档](https://skywalking.apache.org/docs/main/latest/en/setup/backend/backend-setup/)。 #### 依赖第三方组件 1. JDK8+ 2. Elasticsearch 5.x diff --git a/content/zh/blog/integration/use-zipkin-in-dubbo.md b/content/zh/blog/integration/use-zipkin-in-dubbo.md index 4e5250d21181..92eac8f22a2f 100644 --- a/content/zh/blog/integration/use-zipkin-in-dubbo.md +++ b/content/zh/blog/integration/use-zipkin-in-dubbo.md @@ -18,7 +18,7 @@ Zipkin 是基于 [Dapper](https://ai.google/research/pubs/pub36356) 论文实现 ![Zipkin architecture](/imgs/blog/zipkin-architecture.png) -Collector 收集器、Storage 存储、API、UI 用户界面等几部分构成了 Zipkin Server 部分,对应于 GitHub 上 [openzipkin/zipkin](https://github.com/openzipkin/zipkin) 这个项目。而收集应用中调用的耗时信息并将其上报的组件与应用共生,并拥有各个语言的实现版本,其中 Java 的实现是 GitHub 上 [openzipkin/brave](https://github.com/openzipkin/brave)。除了 Java 客户端实现之外,openzipkin 还提供了许多其他语言的实现,其中包括了 go、php、JavaScript、.net、ruby 等,具体列表可以参阅 Zipkin 的 [Exiting instrumentations](https://zipkin.io/pages/existing_instrumentations)。 +Collector 收集器、Storage 存储、API、UI 用户界面等几部分构成了 Zipkin Server 部分,对应于 GitHub 上 [openzipkin/zipkin](https://github.com/openzipkin/zipkin) 这个项目。而收集应用中调用的耗时信息并将其上报的组件与应用共生,并拥有各个语言的实现版本,其中 Java 的实现是 GitHub 上 [openzipkin/brave](https://github.com/openzipkin/brave)。除了 Java 客户端实现之外,openzipkin 还提供了许多其他语言的实现,其中包括了 go、php、JavaScript、.net、ruby 等,具体列表可以参阅 Zipkin 的 [Exiting instrumentations](https://zipkin.io/pages/tracers_instrumentation.html)。 ### Zipkin 的工作过程 diff --git a/content/zh/blog/java/codeanalysis/introduction-to-dubbo-url.md b/content/zh/blog/java/codeanalysis/introduction-to-dubbo-url.md index 6c48a4a4a719..448f1c089660 100644 --- a/content/zh/blog/java/codeanalysis/introduction-to-dubbo-url.md +++ b/content/zh/blog/java/codeanalysis/introduction-to-dubbo-url.md @@ -169,7 +169,7 @@ consumer://30.5.120.217/org.apache.dubbo.demo.DemoService?application=demo-consu ### URL 统一模型的意义 -对于 dubbo 中的 URL,有人理解为配置总线,有人理解为统一配置模型,说法虽然不同,但都是在表达一个意思,这样的 URL 在 dubbo 中被当做是[公共契约](https://dubbo.apache.org/zh/docs/v2.7/dev/contract/),所有扩展点参数都包含 URL 参数,URL 作为上下文信息贯穿整个扩展点设计体系。 +对于 dubbo 中的 URL,有人理解为配置总线,有人理解为统一配置模型,说法虽然不同,但都是在表达一个意思,这样的 URL 在 dubbo 中被当做是[公共契约](/zh/docsv2.7/dev/contract/),所有扩展点参数都包含 URL 参数,URL 作为上下文信息贯穿整个扩展点设计体系。 在没有 URL 之前,只能以字符串传递参数,不停的解析和拼装,导致相同类型的接口,参数时而 Map, 时而 Parameters 类包装: diff --git a/content/zh/blog/java/codeanalysis/url-perf-turning.md b/content/zh/blog/java/codeanalysis/url-perf-turning.md index 0bd0be758fe2..0a1e43a6fd29 100644 --- a/content/zh/blog/java/codeanalysis/url-perf-turning.md +++ b/content/zh/blog/java/codeanalysis/url-perf-turning.md @@ -10,7 +10,7 @@ description: > 在阐述地址推送性能的具体优化之前,我们有必要先了解一下与之息息相关的内容 --- URL。 ### 定义 -在不谈及 dubbo 时,我们大多数人对 URL 这个概念并不会感到陌生。统一资源定位器 ([RFC1738](https://link.zhihu.com/?target=https%3A//www.ietf.org/rfc/rfc1738.txt)――Uniform Resource Locators (URL))应该是最广为人知的一个 RFC 规范,它的定义也非常简单。 +在不谈及 dubbo 时,我们大多数人对 URL 这个概念并不会感到陌生。统一资源定位器 ([RFC1738](https://www.ietf.org/rfc/rfc1738.txt)――Uniform Resource Locators (URL))应该是最广为人知的一个 RFC 规范,它的定义也非常简单。 > 因特网上的可用资源可以用简单字符串来表示,该文档就是描述了这种字符串的语法和语 义。而这些字符串则被称为:“统一资源定位器”(URL) **一个标准的 URL 格式**至多可以包含如下的几个部分 diff --git a/content/zh/blog/java/codeanalysis/v3-service-discovery.md b/content/zh/blog/java/codeanalysis/v3-service-discovery.md index 38783f2820cc..19ea975a68f0 100644 --- a/content/zh/blog/java/codeanalysis/v3-service-discovery.md +++ b/content/zh/blog/java/codeanalysis/v3-service-discovery.md @@ -135,7 +135,7 @@ Dubbo 通过注册中心同时同步了实例地址和 RPC 方法,因此其能 Dubbo 要支持 Kubernetes native service,相比之前自建注册中心的服务发现体系来说,在工作机制上主要有两点变化: * 服务注册由平台接管,provider 不再需要关心服务注册 -* consumer 端服务发现将是 Dubbo 关注的重点,通过对接平台层的 API-Server、DNS 等,Dubbo client 可以通过一个 [Service Name](https://kubernetes.io/docs/concepts/services-networking/service/)(通常对应到 Application Name)查询到一组 [Endpoints]()(一组运行 provider 的 pod),通过将 Endpoints 映射到 Dubbo 内部地址列表,以驱动 Dubbo 内置的负载均衡机制工作。 +* consumer 端服务发现将是 Dubbo 关注的重点,通过对接平台层的 API-Server、DNS 等,Dubbo client 可以通过一个 [Service Name](https://kubernetes.io/docs/concepts/services-networking/service/)(通常对应到 Application Name)查询到一组 Endpoints(一组运行 provider 的 pod),通过将 Endpoints 映射到 Dubbo 内部地址列表,以驱动 Dubbo 内置的负载均衡机制工作。 > Kubernetes Service 作为一个抽象概念,怎么映射到 Dubbo 是一个值得讨论的点 > diff --git a/content/zh/blog/java/demos/connect-heterogeneous-microservices.md b/content/zh/blog/java/demos/connect-heterogeneous-microservices.md index 3df141c3b2fc..bbd916d14eb9 100644 --- a/content/zh/blog/java/demos/connect-heterogeneous-microservices.md +++ b/content/zh/blog/java/demos/connect-heterogeneous-microservices.md @@ -289,7 +289,7 @@ Dubbo 体系内的部分应用作为透明的联通两个体系的关键节点 这个场景和上一节中讲到的的 SpringCloud 迁移有些类似,最大的区别在于 rest 协议是 Dubbo 官方默认提供支持的,而对于已有的微服务体系内的私有通信协议,则需要先要自己去扩展 Dubbo Protocol 来提供协议层面的支持,关于 Protocol 如何扩展请参见以下官方文档: -http://dubbo.apache.org/zh-cn/docs/dev/impls/protocol.html +/zh/docs/dev/impls/protocol.html ## 总结与展望 diff --git a/content/zh/blog/java/demos/dubbo-101.md b/content/zh/blog/java/demos/dubbo-101.md index bdc59bf6b14e..a8a8e438841d 100644 --- a/content/zh/blog/java/demos/dubbo-101.md +++ b/content/zh/blog/java/demos/dubbo-101.md @@ -377,6 +377,6 @@ As Consumer side: 最后,简单的介绍了如何通过 Dubbo 团队提供的公共服务 start.dubbo.io 快速搭建基于 Spring Boot 的 Dubbo 应用,并通过 *qos* 来做 Dubbo 服务的简单运维。 [^1]: [Getting Started Using JavaTM RMI](https://docs.oracle.com/javase/6/docs/technotes/guides/rmi/hello/hello-world.html) -[^2]: [直连提供者](http://dubbo.apache.org/zh/docs/v2.7/user/examples/explicit-target) -[^3]: [Multicast 注册中心](http://dubbo.apache.org/zh/docs/v2.7/user/references/registry/multicast/) -[^4]: [在线运维命令](http://dubbo.apache.org/zh/docs/v2.7/user/references/qos/) \ No newline at end of file +[^2]: [直连提供者](/zh/docsv2.7/user/examples/explicit-target/) +[^3]: [Multicast 注册中心](/zh/docsv2.7/user/references/registry/multicast/) +[^4]: [在线运维命令](/zh/docsv2.7/user/references/qos/) \ No newline at end of file diff --git a/content/zh/blog/java/demos/dubbo-27-features.md b/content/zh/blog/java/demos/dubbo-27-features.md index 7498dc2aefce..89afda688689 100644 --- a/content/zh/blog/java/demos/dubbo-27-features.md +++ b/content/zh/blog/java/demos/dubbo-27-features.md @@ -227,4 +227,4 @@ Dubbo 用户可以在自己系统的基础上对标签路由进行二次扩展 ## 7 总结 -本文介绍了 Dubbo 2.7 比较重要的三大新特性:异步化改造,三大中心改造,服务治理增强。Dubbo 2.7 还包含了很多功能优化、特性升级,可以在项目源码的 [CHANGES.md](https://github.com/apache/dubbo/blob/master/CHANGES.md) 中浏览全部的改动点。最后提供一份 Dubbo 2.7 的升级文档:[2.7迁移文档](http://dubbo.apache.org/zh-cn/docs/user/versions/version-270.html),欢迎体验。 +本文介绍了 Dubbo 2.7 比较重要的三大新特性:异步化改造,三大中心改造,服务治理增强。Dubbo 2.7 还包含了很多功能优化、特性升级,可以在项目源码的 [CHANGES.md](https://github.com/apache/dubbo/blob/master/CHANGES.md) 中浏览全部的改动点。最后提供一份 Dubbo 2.7 的升级文档:[2.7迁移文档](/zh/docsv2.7/user/versions/version-270/),欢迎体验。 diff --git a/content/zh/blog/java/demos/dubbo-async-server.md b/content/zh/blog/java/demos/dubbo-async-server.md index 402539bef29b..3e30d1e6ab08 100644 --- a/content/zh/blog/java/demos/dubbo-async-server.md +++ b/content/zh/blog/java/demos/dubbo-async-server.md @@ -7,7 +7,7 @@ description: > --- ## 铺垫 -建议先对Dubbo的处理过程中涉及的线程阶段先做个了解,具体可参考[Dubbo客户端异步接口的实现背景和使用场景](http://dubbo.apache.org/zh-cn/blog/dubboAsync_client.html)。 +建议先对Dubbo的处理过程中涉及的线程阶段先做个了解,具体可参考[Dubbo客户端异步接口的实现背景和使用场景](/zh/blog/2019/11/01/dubbo客户端异步接口的实现背景和实践/)。 ## 实现背景 有必要比较详细点的介绍下服务端的线程策略来加深用户在选择服务端异步的判断依据,同时有必要引出协程这一在服务端异步中常常会用到的“秘密武器”。 diff --git a/content/zh/blog/java/demos/dubbo-basic-usage-dubbo-consumer-configuration.md b/content/zh/blog/java/demos/dubbo-basic-usage-dubbo-consumer-configuration.md index cba4ff08efcd..fb0042dd4d04 100644 --- a/content/zh/blog/java/demos/dubbo-basic-usage-dubbo-consumer-configuration.md +++ b/content/zh/blog/java/demos/dubbo-basic-usage-dubbo-consumer-configuration.md @@ -77,7 +77,7 @@ description: > ###### 配置的覆盖关系 -![undefined](https://cdn.nlark.com/lark/0/2018/png/15841/1536496436861-1b63bc4e-3e59-4aa3-800e-a32cfe64950d.png) +![undefined](/imgs/blog/2018/08/14/dubbo-usage/1536496436861-1b63bc4e-3e59-4aa3-800e-a32cfe64950d.png)
配置的覆盖关系图
diff --git a/content/zh/blog/java/demos/dubbo-compatible.md b/content/zh/blog/java/demos/dubbo-compatible.md index c0818e0f978d..fa43ad237796 100644 --- a/content/zh/blog/java/demos/dubbo-compatible.md +++ b/content/zh/blog/java/demos/dubbo-compatible.md @@ -84,7 +84,7 @@ Spring注解诸如`@EnableDubbo`、`@Service`以及`@Reference`,由于不能 ## 扩展SPI -Dubbo的SPI扩展机制,可以通过[Dubbo可扩展机制实战](http://dubbo.apache.org/zh-cn/blog/introduction-to-dubbo-spi.html)这篇博客详细了解。 +Dubbo的SPI扩展机制,可以通过[Dubbo可扩展机制实战](/zh/blog/2019/04/25/dubbo可扩展机制实战/)这篇博客详细了解。 以Filter扩展为例,简单来说就是: diff --git a/content/zh/blog/java/demos/dubbo-consistent-hash-implementation.md b/content/zh/blog/java/demos/dubbo-consistent-hash-implementation.md index 73c61398af7e..24744068d450 100644 --- a/content/zh/blog/java/demos/dubbo-consistent-hash-implementation.md +++ b/content/zh/blog/java/demos/dubbo-consistent-hash-implementation.md @@ -102,7 +102,7 @@ dubbo:service、dubbo:reference、dubbo:provider、dubbo:consumer、dubbo:method Dubbo实现的是客户端负载均衡。关于服务接口代理类的实现,这里不做详细描述,可以参考官网: -> 服务引入:http://dubbo.apache.org/zh-cn/docs/source_code_guide/refer-service.html。 +> 服务引入:/zh/docs/source_code_guide/refer-service.html。 在接口代理类生成、并且装配好后,服务的调用基本是这样一个流程:proxy -> MockClusterInvoker -> 集群策略(如:FailoverClusterInvoker) -> 初始化负载均衡策略 -> 根据选定的负载均衡策略确定Invoker。 diff --git a/content/zh/blog/java/demos/dubbo-context-information.md b/content/zh/blog/java/demos/dubbo-context-information.md index 8c27f6818987..b919a56217fe 100644 --- a/content/zh/blog/java/demos/dubbo-context-information.md +++ b/content/zh/blog/java/demos/dubbo-context-information.md @@ -53,7 +53,7 @@ RpcContext.getContext() ### 异步调用 -在异步调用时,可通过`getCompletableFuture`或`getFuture`获取相关的 Future,异步调用相关文档请参阅:[异步调用](https://dubbo.apache.org/zh/docs/advanced/async-call/) +在异步调用时,可通过`getCompletableFuture`或`getFuture`获取相关的 Future,异步调用相关文档请参阅:[异步调用](/zh/docs/advanced/async-call/) ## 注意事项 diff --git a/content/zh/blog/java/demos/dubbo-contribute-to-opensource.md b/content/zh/blog/java/demos/dubbo-contribute-to-opensource.md index 966d3d6fa2b8..0cd0fad5dc22 100644 --- a/content/zh/blog/java/demos/dubbo-contribute-to-opensource.md +++ b/content/zh/blog/java/demos/dubbo-contribute-to-opensource.md @@ -97,7 +97,7 @@ Mailing list 简单来说,就是一个邮件通知机制,所有的 Dubbo 开 ### 3.1 撰写文档 - [Dubbo文档](http://dubbo.apache.org/zh-cn/)是其开源组成成分的重要一环,其内容源文件位于:[https://github.com/apache/dubbo-website](https://github.com/apache/dubbo-website)。同样也是一个 Git 仓库,任何你想要对 dubbo 知识点的补充,都可以在这儿提交 pull request,只需要一些 markdown 的语法知识,和一些可有可无的 npm 语法即可。如果你觉得贡献代码对于现在的自己仍然有点难度,不妨从贡献文档开始接触开源。 + [Dubbo文档](/)是其开源组成成分的重要一环,其内容源文件位于:[https://github.com/apache/dubbo-website](https://github.com/apache/dubbo-website)。同样也是一个 Git 仓库,任何你想要对 dubbo 知识点的补充,都可以在这儿提交 pull request,只需要一些 markdown 的语法知识,和一些可有可无的 npm 语法即可。如果你觉得贡献代码对于现在的自己仍然有点难度,不妨从贡献文档开始接触开源。 ### 3.2 ISSUE @@ -178,7 +178,7 @@ Mailing list 简单来说,就是一个邮件通知机制,所有的 Dubbo 开 如果说项目是托管在 GitHub上的,以下是我们总结出的提交RP的建议: -- **Fork 代码仓库** 并克隆到本地,在本地的仓库配置“上游”为远端仓库。这样你可以在提交你的PR时保持和“上游”同步,会减少很多解决冲突的时间。(更多关于同步的说明,请参考[这里](https://help.github.com/articles/syncing-a-fork/).) +- **Fork 代码仓库** 并克隆到本地,在本地的仓库配置“上游”为远端仓库。这样你可以在提交你的PR时保持和“上游”同步,会减少很多解决冲突的时间。(更多关于同步的说明,请参考[这里](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork).) - **创建一个分支** 用于自己编辑。 - **参考任何相关的issue** 或者在你的RP中支持文档(比如. “Closes #37.”) - **包含之前和之后的快照** 如果你的改动是包含了不同的 HTML/CSS。在你的PR中拖拉相应的图片。 diff --git a/content/zh/blog/java/demos/dubbo-copywriting-style.md b/content/zh/blog/java/demos/dubbo-copywriting-style.md index d6ea59187763..beb417dda154 100644 --- a/content/zh/blog/java/demos/dubbo-copywriting-style.md +++ b/content/zh/blog/java/demos/dubbo-copywriting-style.md @@ -229,7 +229,6 @@ Microsoft 有个 [`-ms-text-autospace`](http://msdn.microsoft.com/en-us/library/ | 仓库 | 语言 | | ------------------------------------------------------------ | --------------- | | [vinta/paranoid-auto-spacing](https://github.com/vinta/paranoid-auto-spacing) | JavaScript | -| [huei90/pangu.node](https://github.com/huei90/pangu.node) | Node.js | | [huacnlee/auto-correct](https://github.com/huacnlee/auto-correct) | Ruby | | [sparanoid/space-lover](https://github.com/sparanoid/space-lover) | PHP (WordPress) | | [nauxliu/auto-correct](https://github.com/NauxLiu/auto-correct) | PHP | @@ -240,23 +239,20 @@ Microsoft 有个 [`-ms-text-autospace`](http://msdn.microsoft.com/en-us/library/ ## 谁在这样做? -| 网站 | 文案 | UGC | -| ------------------------------------------------- | ---- | ------------ | -| [Apple 中国](http://www.apple.com/cn/) | Yes | N/A | -| [Apple 香港](http://www.apple.com/hk/) | Yes | N/A | -| [Apple 台湾](http://www.apple.com/tw/) | Yes | N/A | -| [Microsoft 中国](http://www.microsoft.com/zh-cn/) | Yes | N/A | -| [Microsoft 香港](http://www.microsoft.com/zh-hk/) | Yes | N/A | -| [Microsoft 台湾](http://www.microsoft.com/zh-tw/) | Yes | N/A | -| [LeanCloud](https://leancloud.cn/) | Yes | N/A | -| [知乎](https://www.zhihu.com/) | Yes | 部分用户达成 | -| [V2EX](https://www.v2ex.com/) | Yes | Yes | -| [SegmentFault](https://segmentfault.com/) | Yes | 部分用户达成 | -| [Apple4us](http://apple4us.com/) | Yes | N/A | -| [豌豆荚](https://www.wandoujia.com/) | Yes | N/A | -| [Ruby China](https://ruby-china.org/) | Yes | 标题达成 | -| [PHPHub](https://phphub.org/) | Yes | 标题达成 | -| [少数派](http://sspai.com/) | Yes | N/A | +| 网站 | 文案 | UGC | +|--------------------------------------------------| ---- | ------------ | +| [Apple 中国](http://www.apple.com/cn/) | Yes | N/A | +| [Apple 香港](http://www.apple.com/hk/) | Yes | N/A | +| [Apple 台湾](http://www.apple.com/tw/) | Yes | N/A | +| [LeanCloud](https://leancloud.cn/) | Yes | N/A | +| [知乎](https://www.zhihu.com/) | Yes | 部分用户达成 | +| [V2EX](https://www.v2ex.com/) | Yes | Yes | +| [SegmentFault](https://segmentfault.com/) | Yes | 部分用户达成 | +| [Apple4us](http://apple4us.com/) | Yes | N/A | +| [豌豆荚](https://www.wandoujia.com/) | Yes | N/A | +| [Ruby China](https://ruby-china.org/) | Yes | 标题达成 | +| [PHPHub](https://phphub.org/) | Yes | 标题达成 | +| [少数派](http://sspai.com/) | Yes | N/A | ## 参考文献 diff --git a/content/zh/blog/java/demos/dubbo-externalized-configuration.md b/content/zh/blog/java/demos/dubbo-externalized-configuration.md index b986e58c539b..f17c7a550b40 100644 --- a/content/zh/blog/java/demos/dubbo-externalized-configuration.md +++ b/content/zh/blog/java/demos/dubbo-externalized-configuration.md @@ -12,7 +12,7 @@ description: > ## 外部化配置 -在[Dubbo 注解驱动](Dubbo-Annotation-Driven.md)例子中,无论是服务提供方,还是服务消费方,均需要转配相关配置Bean: +在[Dubbo 注解驱动](/zh/blog/2018/08/07/dubbo-注解驱动/)例子中,无论是服务提供方,还是服务消费方,均需要转配相关配置Bean: ```java @Bean @@ -57,7 +57,7 @@ description: > -在 Dubbo 官方用户手册的[“属性配置”](/docs/3.0/zh-cn/docs/user/configuration/configuration-load-process.md)章节中,`dubbo.properties` 配置属性能够映射到 `ApplicationConfig` 、`ProtocolConfig` 以及 `RegistryConfig` 的字段。从某种意义上来说,`dubbo.properties` 也是 Dubbo 的外部化配置。 +在 Dubbo 官方用户手册的[“属性配置”](/zh/docs3-v2/java-sdk/reference-manual/config/properties/)章节中,`dubbo.properties` 配置属性能够映射到 `ApplicationConfig` 、`ProtocolConfig` 以及 `RegistryConfig` 的字段。从某种意义上来说,`dubbo.properties` 也是 Dubbo 的外部化配置。 diff --git a/content/zh/blog/java/demos/dubbo-generic-invoke.md b/content/zh/blog/java/demos/dubbo-generic-invoke.md index 611adce3d7a5..0e72cdb0e99f 100644 --- a/content/zh/blog/java/demos/dubbo-generic-invoke.md +++ b/content/zh/blog/java/demos/dubbo-generic-invoke.md @@ -176,4 +176,4 @@ System.out.println(helloService.hello("community")); ## 其他 * 本文介绍的泛化调用和泛接口实现,都是在原生的 `Dubbo` 协议之上的。在 2.6.2 版本之前,其他协议如 http/hessian 等是不支持泛化调用的,2.6.3 版本将会对这两个协议的泛化调用做支持。 -* 本文中提到的相关示例代码可以在 dubbo-samples中找到:https://github.com/apache/dubbo-samples/tree/master/java/dubbo-samples-generic \ No newline at end of file +* 本文中提到的相关示例代码可以在 dubbo-samples中找到:https://github.com/apache/dubbo-samples/tree/master/dubbo-samples-generic \ No newline at end of file diff --git a/content/zh/blog/java/demos/dubbo-gracefully-shutdown.md b/content/zh/blog/java/demos/dubbo-gracefully-shutdown.md index 8ce5154270ff..d605c5b06dbe 100644 --- a/content/zh/blog/java/demos/dubbo-gracefully-shutdown.md +++ b/content/zh/blog/java/demos/dubbo-gracefully-shutdown.md @@ -43,7 +43,7 @@ dubbo.service.shutdown.wait=20000 在关闭应用前,首先通过 QOS 的`offline`指令下线所有服务,然后等待一定时间确保已经到达请求全部处理完毕,由于服务已经在注册中心下线,当前应用不会有新的请求。这时再执行真正的关闭(`SIGTERM` 或` SIGINT`)流程,就能保证服务无损。 -QOS可通过 telnet 或 HTTP 方式使用,具体方式请见[Dubbo-QOS命令使用说明](http://dubbo.apache.org/zh-cn/docs/user/references/qos.html)。 +QOS可通过 telnet 或 HTTP 方式使用,具体方式请见[Dubbo-QOS命令使用说明](/zh/docsv2.7/user/references/qos/)。 ## 流程 diff --git a/content/zh/blog/java/demos/dubbo-k8s.md b/content/zh/blog/java/demos/dubbo-k8s.md index c8c5287f03e7..cdb01580c63d 100644 --- a/content/zh/blog/java/demos/dubbo-k8s.md +++ b/content/zh/blog/java/demos/dubbo-k8s.md @@ -53,7 +53,7 @@ Kubernetes是天然可作为微服务的地址注册中心,类似于Zookeeper 1. DNS: 默认Kubernetes的service是靠DNS插件(最新版推荐是coreDNS), Dubbo上有个proposal是关于这个的。我的理解是static resolution的机制是最简单最需要支持的一种service discovery机制,具体也可以参考Envoy在此的观点,由于HSF/Dubbo一直突出其软负载的地址发现能力,反而忽略Static的策略。同时蚂蚁的SOFA一直是支持此种策略,那一个SOFA工程的工程片段做一个解释。这样做有两个好处,1)当软负载中心crash不可用造成无法获取地址列表时,有一定的机制Failover到此策略来处理一定的请求。 2)在LDC/单元化下,蚂蚁的负载中心集群是机房/区域内收敛部署的,首先保证软负载中心的LDC化了进而稳定可控,当单元需要请求中心时,此VIP的地址发现就排上用场了。 -![img](https://img.alicdn.com/tfs/TB1Kj1ktpkoBKNjSZFEXXbrEVXa-985-213.png) +![img](/imgs/blog/2018/09/30/integrate-dubbo-with-kubernetes/TB1Kj1ktpkoBKNjSZFEXXbrEVXa-985-213.png) 2. API:DNS是依靠DNS插件进行的,相当于额外的运维开销,所以考虑直接通过kubernetes的client来获取endpoint。事实上,通过访问Kubernetes的API server接口是可以直接获取某个servie背后的endpoint列表,同时可以监听其地址列表的变化。从而实现Dubbo/HSF所推荐的软负载发现策略。具体可以参考代码: @@ -68,25 +68,25 @@ Kubernetes是天然可作为微服务的地址注册中心,类似于Zookeeper 1. 创建镜像仓库并绑定github代码库。如下图 -![img](https://img.alicdn.com/tfs/TB1m.tEtrorBKNjSZFjXXc_SpXa-1892-870.png) +![img](/imgs/blog/2018/09/30/integrate-dubbo-with-kubernetes/TB1m.tEtrorBKNjSZFjXXc_SpXa-1892-870.png) 2. 点击管理 **进行创建好的仓库**,通过镜像服务下的构建功能,把demo构建成image,并发布到指定仓库。如下图。 -![img](https://img.alicdn.com/tfs/TB1oYqvtcIrBKNjSZK9XXagoVXa-1872-888.png) +![img](/imgs/blog/2018/09/30/integrate-dubbo-with-kubernetes/TB1oYqvtcIrBKNjSZK9XXagoVXa-1872-888.png) 3. 切换到企业级分布式应用服务(EDAS)产品,在资源管理 -> 集群 下创建Kubernetes集群并绑定ECS,如下图. -![img](https://img.alicdn.com/tfs/TB1b1p2trZnBKNjSZFKXXcGOVXa-1858-833.png) +![img](/imgs/blog/2018/09/30/integrate-dubbo-with-kubernetes/TB1b1p2trZnBKNjSZFKXXcGOVXa-1858-833.png) 4. 应用管理 -》创建应用,**类型为kubernetes应用** 并且指定在容器镜像服务中的镜像。如下图。 -![img](https://img.alicdn.com/tfs/TB1b1p2trZnBKNjSZFKXXcGOVXa-1858-833.png) +![img](/imgs/blog/2018/09/30/integrate-dubbo-with-kubernetes/TB1b1p2trZnBKNjSZFKXXcGOVXa-1858-833.png) -![](https://img.alicdn.com/tfs/TB18uzTtdcnBKNjSZR0XXcFqFXa-1820-861.png) +![](/imgs/blog/2018/09/30/integrate-dubbo-with-kubernetes/TB18uzTtdcnBKNjSZR0XXcFqFXa-1820-861.png) 5. 创建完成后,进行应用部署。如下图 -![](https://img.alicdn.com/tfs/TB1fEpEtrorBKNjSZFjXXc_SpXa-1846-783.png) +![](/imgs/blog/2018/09/30/integrate-dubbo-with-kubernetes/TB1fEpEtrorBKNjSZFjXXc_SpXa-1846-783.png) - 补充应用名不能有大写字母,全部小写,否则有部署失败的问题。 diff --git a/content/zh/blog/java/demos/dubbo-loadbalance.md b/content/zh/blog/java/demos/dubbo-loadbalance.md index 4464c61efd2d..1386806f41e9 100644 --- a/content/zh/blog/java/demos/dubbo-loadbalance.md +++ b/content/zh/blog/java/demos/dubbo-loadbalance.md @@ -225,7 +225,7 @@ if (! sameWeight && totalWeight > 0) { ## 扩展负载均衡 -Dubbo的4种负载均衡的实现,大多数情况下能满足要求。有时候,因为业务的需要,我们可能需要实现自己的负载均衡策略。本章只说明如何配置负载均衡算法。关于Dubbo扩展机制的更多内容,请前往[Dubbo可扩展机制实战](https://lark.alipay.com/aliware_articles/vtpf9h/pe9pyr)。 +Dubbo的4种负载均衡的实现,大多数情况下能满足要求。有时候,因为业务的需要,我们可能需要实现自己的负载均衡策略。本章只说明如何配置负载均衡算法。关于Dubbo扩展机制的更多内容,请前往[Dubbo可扩展机制实战](/zh/blog/2019/04/25/dubbo可扩展机制实战/)。 1. 实现LoadBalance接口, 以下是Dubbo的LoadBalance接口: diff --git a/content/zh/blog/java/demos/dubbo-mesh-service-mesh-exploring.md b/content/zh/blog/java/demos/dubbo-mesh-service-mesh-exploring.md index a8c4b6838f3c..711fe313d983 100644 --- a/content/zh/blog/java/demos/dubbo-mesh-service-mesh-exploring.md +++ b/content/zh/blog/java/demos/dubbo-mesh-service-mesh-exploring.md @@ -57,7 +57,7 @@ description: 本文介绍了Dubbo在Service Mesh方向的实践与探索 数据安全将成为公有云分布式应用的生命线。云原生时代,业务即便没上云,企业对自身数据的安全都是有诉求的,尤其是在金融行业,如果通过抓包就能获取一些敏感信息,这将会给企业带来巨大的风险。 Cloud native成为distributionless(无分布式)的主要探索路径。分布式发展的终极形式是无分布式,在未来我们做开发,所有的代码在web上写好后,通过点击一个按钮,所有部署都会自动实现,所有的code review的工作可以在一个统一的工作台上全部实现。 -![img](/imgs/blog/meetup-chengdu/audience-shapshot) +![img](/imgs/blog/meetup-chengdu/audience-shapshot.webp) 以更快的速度,通过构建软件去探索新业务。工程师服务的是客户,通过技术输出来实现技术价值,以互联网的架构帮助赋能传统企业,帮助企业获得差异化竞争力。 diff --git a/content/zh/blog/java/demos/dubbo-new-async.md b/content/zh/blog/java/demos/dubbo-new-async.md index ac0bca48784e..7151f919f420 100644 --- a/content/zh/blog/java/demos/dubbo-new-async.md +++ b/content/zh/blog/java/demos/dubbo-new-async.md @@ -8,7 +8,7 @@ description: > 基于Dubbo实现全异步编程,是在2.7.0版本中对现有异步方式增强后新引入的功能。本文先是回顾2.6.x及之前版本对异步的支持情况及存在的问题,引出了2.7.0版本基于CompletableFuture做了哪些针对性的增强,通过几个示例详细阐述了增强后的异步编程的使用方式,最后总结了引入异步模式带来的新问题及Dubbo的解决方法。通过阅读这篇文章,可以很容易的基于Dubbo2.7.0+版本实现一个全异步的远程服务调用链路。 -从3.0.0版本开始,Dubbo框架提供了对Reactive编程范式的支持,除了编程接口之外,在跨进程的RPC通信中引入了Reactive的语义。如果你所在的环境需要使用Reactive编程范式,或者你的RPC调用需要支持流式传输,Reactive应该会给你带来帮助,具体请参考发布在阿里巴巴中间件公众号上的[响应式编程支持]()相关文章。 +从3.0.0版本开始,Dubbo框架提供了对Reactive编程范式的支持,除了编程接口之外,在跨进程的RPC通信中引入了Reactive的语义。如果你所在的环境需要使用Reactive编程范式,或者你的RPC调用需要支持流式传输,Reactive应该会给你带来帮助,具体请参考发布在阿里巴巴中间件公众号上的响应式编程支持相关文章。 > 注意,你可能并不是总需要Reactive的语义,尤其是在RPC的场景,CompletableFuture本身也能带给你Reactive模式的编程模型,在选择Reactive(RxJava、Reactor之类)而不是理解及使用成本更低的CompletableFuture前,请尝试关注以下问题: > 1. 你是请求/响应是一次性传输的还是流式传输的,一个明显特征是你定义的数据类型是 `List` 还是 `Stream` > 2. 你的RPC请求有没有要求是Cold,即在subscribe后触发,因为CompletableFuture总是hot的 @@ -19,7 +19,7 @@ description: > ## 2.6.x版本之前的异步方式 -在2.6.x及之前的版本提供了一定的异步编程能力,包括Consumer端[异步调用](http://dubbo.apache.org/zh-cn/docs/user/demos/async-call.html)、[参数回调](http://dubbo.apache.org/zh-cn/docs/user/demos/callback-parameter.html)、[事件通知](http://dubbo.apache.org/zh-cn/docs/user/demos/events-notify.html)等,在上面的文档链接中有关于使用方式的简单介绍和Demo。 +在2.6.x及之前的版本提供了一定的异步编程能力,包括Consumer端[异步调用](/zh/docsv2.7/user/examples/async-call/)、[参数回调](/zh/docsv2.7/user/examples/callback-parameter/)、[事件通知](/zh/docsv2.7/user/examples/events-notify/)等,在上面的文档链接中有关于使用方式的简单介绍和Demo。 关于参数回调,其本质上是一种服务端的数据推送能力,这是终端应用很常见的一种需求,关于这部分的重构计划,不在本文讨论范围。 @@ -170,7 +170,7 @@ Dubbo在2.7.0版本已经升级了对Java 8的支持,同时基于CompletableFu ## 示例1:CompletableFuture类型接口 -CompletableFuture类型的接口既可以用作同步调用,也可以实现Consumer或Provider的异步调用。本示例实现了Consumer和Provider端异步调用,代码参见[dubbo-samples-async-original-future](https://github.com/apache/dubbo-samples/tree/3.x/dubbo-samples-async/dubbo-samples-async-original-future)。 +CompletableFuture类型的接口既可以用作同步调用,也可以实现Consumer或Provider的异步调用。本示例实现了Consumer和Provider端异步调用,代码参见[dubbo-samples-async-original-future](https://github.com/apache/dubbo-samples/tree/master/dubbo-samples-async/dubbo-samples-async-original-future)。 1. 定义接口 @@ -246,7 +246,7 @@ CompletableFuture类型的接口既可以用作同步调用,也可以实现Con ## 示例2:重载同步接口 -这个示例演示了如何在同步接口的基础上,通过增加重载方法实现消费端的异步调用,具体代码参见地址[dubbo-samples-async-generated-future](https://github.com/apache/dubbo-samples/tree/3.x/dubbo-samples-async/dubbo-samples-async-generated-future) +这个示例演示了如何在同步接口的基础上,通过增加重载方法实现消费端的异步调用,具体代码参见地址[dubbo-samples-async-generated-future](https://github.com/apache/dubbo-samples/tree/master/dubbo-samples-async/dubbo-samples-async-generated-future) 1. 定义接口 @@ -322,7 +322,7 @@ CompletableFuture类型的接口既可以用作同步调用,也可以实现Con ## 示例3:使用AsyncContext -本示例演示了如何在同步接口的基础上,通过AsyncContext实现Provider端异步执行,示例代码参见[dubbo-samples-async-provider](https://github.com/apache/dubbo-samples/tree/3.x/dubbo-samples-async/dubbo-samples-async-provider)。 +本示例演示了如何在同步接口的基础上,通过AsyncContext实现Provider端异步执行,示例代码参见[dubbo-samples-async-provider](https://github.com/apache/dubbo-samples/tree/master/dubbo-samples-async/dubbo-samples-async-provider)。 > 之前已经提到过,已经是CompletableFuture签名的接口,要实现Provider端异步没必要再用AsyncContext。 diff --git a/content/zh/blog/java/demos/dubbo-rest.md b/content/zh/blog/java/demos/dubbo-rest.md index 2752de8cbd8f..9230e3c8fe92 100644 --- a/content/zh/blog/java/demos/dubbo-rest.md +++ b/content/zh/blog/java/demos/dubbo-rest.md @@ -15,21 +15,21 @@ REST 是 Roy Thomas Fielding [^1] 在 2000 年他的博士论文 [^2] “架构 -举例来说,一个简单的静态 HTML 页面的网站就很好的符合了 RESTful 架构风格。访问 http://acme.com/accounts 返回一个包含所有账号的页面,选取其中一个链接 http://acme.com/accounts/1 又会返回包含用户 1 的详细信息。爬虫软件在这种场景下工作的很好,当知道了某个网站的首页地址后,可以自举发现这个网站上所有关联的网页。更重要的是,这种访问形式不依赖网站提供的任何客户端,而是仅仅通过 HTTP 标准的访问方式完成的。可以说,HTML 这种超媒体文档的组织形式就是资源的表现层状态迁移的一种形式。 +举例来说,一个简单的静态 HTML 页面的网站就很好的符合了 RESTful 架构风格。访问 `http://example.com/accounts` 返回一个包含所有账号的页面,选取其中一个链接 `http://example.com/accounts/1` 又会返回包含用户 1 的详细信息。爬虫软件在这种场景下工作的很好,当知道了某个网站的首页地址后,可以自举发现这个网站上所有关联的网页。更重要的是,这种访问形式不依赖网站提供的任何客户端,而是仅仅通过 HTTP 标准的访问方式完成的。可以说,HTML 这种超媒体文档的组织形式就是资源的表现层状态迁移的一种形式。 对于一个提供服务的动态网站来说,可以按照类似的思路将其 RESTful 化: -- GET http://acme.com/accounts 返回所有账号信息 +- GET `http://example.com/accounts` 返回所有账号信息 -- POST http://acme.com/accounts 创建一个新的账号 +- POST `http://example.com/accounts` 创建一个新的账号 -- GET http://acme.com/accounts/1 返回账号 1 的信息 +- GET `http://example.com/accounts/1` 返回账号 1 的信息 -- DELETE http://acme.com/accounts/1 删除账号 1 +- DELETE `http://example.com/accounts/1` 删除账号 1 -- PUT http://acme.com/accounts/1 更新账号 1 信息 +- PUT `http://example.com/accounts/1` 更新账号 1 信息 @@ -39,7 +39,7 @@ REST 是 Roy Thomas Fielding [^1] 在 2000 年他的博士论文 [^2] “架构 ![micro-image](/imgs/blog/rest-sample.png) -*source: https://www.nginx.com/wp-content/uploads/2016/04/micro-image.png* +*source: /imgs/blog/2019/07/26/rest/micro-image.png* @@ -816,7 +816,7 @@ components: -![swagger-ui](../../img/blog/swagger-ui.png) +![swagger-ui](/imgs/blog/swagger-ui.png) @@ -824,7 +824,7 @@ components: -![swagger-ui-execute](../../img/blog/swagger-ui-execute.png) +![swagger-ui-execute](/imgs/blog/swagger-ui-execute.png) diff --git a/content/zh/blog/java/demos/dubbo-stub-mock.md b/content/zh/blog/java/demos/dubbo-stub-mock.md index 77462d21d692..887d6423aa8b 100644 --- a/content/zh/blog/java/demos/dubbo-stub-mock.md +++ b/content/zh/blog/java/demos/dubbo-stub-mock.md @@ -312,7 +312,7 @@ Caused by: org.apache.dubbo.remoting.TimeoutException: Waiting server-side respo [^stub-samples]: https://github.com/apache/dubbo-samples/tree/master/dubbo-samples-stub [^mock-samples]: https://github.com/apache/dubbo-samples/tree/master/dubbo-samples-mock -[^mock]: http://dubbo.apache.org/zh-cn/docs/user/demos/local-mock.html +[^mock]: /zh/docsv2.7/user/examples/local-mock/ diff --git a/content/zh/blog/java/demos/dubbo-supporting-grpc-http2-and-protobuf.md b/content/zh/blog/java/demos/dubbo-supporting-grpc-http2-and-protobuf.md index 2e64b4b15da5..92abf878b2b1 100644 --- a/content/zh/blog/java/demos/dubbo-supporting-grpc-http2-and-protobuf.md +++ b/content/zh/blog/java/demos/dubbo-supporting-grpc-http2-and-protobuf.md @@ -16,7 +16,7 @@ description: > ![image-20191029103919557](/imgs/blog/grpc/dubbo-ptotocol.png) -众所周知,Dubbo 协议是直接定义在 TCP 传输层协议之上,由于 TCP 高可靠全双工的特点,为 Dubbo 协议的定义提供了最大的灵活性,但同时也正是因为这样的灵活性,RPC 协议普遍都是定制化的私有协议,Dubbo 同样也面临这个问题。在这里我们着重讲一下 Dubbo 在协议通用性方面值得改进的地方,关于协议详细解析请参见[官网博客](http://dubbo.apache.org/zh-cn/blog/dubbo-protocol.html) +众所周知,Dubbo 协议是直接定义在 TCP 传输层协议之上,由于 TCP 高可靠全双工的特点,为 Dubbo 协议的定义提供了最大的灵活性,但同时也正是因为这样的灵活性,RPC 协议普遍都是定制化的私有协议,Dubbo 同样也面临这个问题。在这里我们着重讲一下 Dubbo 在协议通用性方面值得改进的地方,关于协议详细解析请参见[官网博客](/zh/blog/2018/10/05/dubbo-协议详解/) * Dubbo 协议体 Body 中有一个可扩展的 attachments 部分,这给 RPC 方法之外额外传递附加属性提供了可能,是一个很好的设计。但是类似的 Header 部分,却缺少类似的可扩展 attachments,这点可参考 HTTP 定义的 Ascii Header 设计,将 Body Attachments 和 Header Attachments 做职责划分。 * Body 协议体中的一些 RPC 请求定位符如 Service Name、Method Name、Version 等,可以提到 Header 中,和具体的序列化协议解耦,以更好的被网络基础设施识别或用于流量管控。 @@ -68,7 +68,7 @@ HTTP/2 保留了 HTTP/1 的所有语义,在保持兼容的同时,在通信 ### gRPC -上面提到了在 HTTP 及 TCP 协议之上构建 RPC 协议各自的优缺点,相比于 Dubbo 构建于 TPC 传输层之上,Google 选择将 gRPC 直接定义在 HTTP/2 协议之上,关于 gRPC 的 [基本介绍](https://platformlab.stanford.edu/Seminar Talks/gRPC.pdf)和 [设计愿景](https://grpc.io/blog/principles/?spm=ata.13261165.0.0.2be55017XbUhs8) 请参考以上两篇文章,我这里仅摘取 设计愿景 中几个能反映 gRPC 设计目的特性来做简单说明。 +上面提到了在 HTTP 及 TCP 协议之上构建 RPC 协议各自的优缺点,相比于 Dubbo 构建于 TPC 传输层之上,Google 选择将 gRPC 直接定义在 HTTP/2 协议之上,关于 gRPC 的 [基本介绍](https://grpc.io/docs/what-is-grpc/introduction/)和 [设计愿景](https://grpc.io/blog/principles/?spm=ata.13261165.0.0.2be55017XbUhs8) 请参考以上两篇文章,我这里仅摘取 设计愿景 中几个能反映 gRPC 设计目的特性来做简单说明。 * Coverage & Simplicity,协议设计和框架实现要足够通用和简单,能运行在任何设备之上,甚至一些资源首先的如 IoT、Mobile 等设备。 @@ -227,7 +227,7 @@ pluginArtifact 指定了 Dubbo 定制版本的 Java Protobuf Compiler 插件, org.apache.dubbo:protoc-gen-dubbo-java:1.19.0-SNAPSHOT:exe:${os.detected.classifier} ``` -由于 `protoc-gen-dubbo-java` 支持 gRPC 和 Dubbo 两种协议,可生成的 stub 类型,默认值是 gRPC,关于 dubbo 协议的使用可参见 [使用 Protobuf 开发 Dubbo 服务]()。 +由于 `protoc-gen-dubbo-java` 支持 gRPC 和 Dubbo 两种协议,可生成的 stub 类型,默认值是 gRPC,关于 dubbo 协议的使用可参见 [使用 Protobuf 开发 Dubbo 服务](/zh/docs3-v2/java-sdk/quick-start/idl/)。 ```xml grpc @@ -514,7 +514,7 @@ default=org.apache.dubbo.samples.basic.comtomize.MyGrpcConfigurator **三、TLS 配置** -配置方式和 Dubbo 提供的通用的 [TLS 支持]()一致,具体请参见文档 +配置方式和 Dubbo 提供的通用的 [TLS 支持](/zh/docs3-v2/java-sdk/advanced-features-and-usage/security/tls/)一致,具体请参见文档 diff --git a/content/zh/blog/news/apache-dubbo-2019-2020.md b/content/zh/blog/news/apache-dubbo-2019-2020.md index b5baeb52e78e..cd948abb6ed5 100644 --- a/content/zh/blog/news/apache-dubbo-2019-2020.md +++ b/content/zh/blog/news/apache-dubbo-2019-2020.md @@ -98,7 +98,7 @@ CompletableFuture future = helloService.sayHello("world"); 为此 2.7.5 版本引入了对 IDL + Protobuf 的支持,以解决跨语言的服务定义问题,具体可参见示例: -[dubbo-samples-protobuf](https://github.com/apache/dubbo-samples/tree/master/java/dubbo-samples-protobuf) +[dubbo-samples-protobuf](https://github.com/apache/dubbo-samples/tree/master/dubbo-samples-protobuf) ![service idl](/imgs/blog/service-idl.png) @@ -106,7 +106,7 @@ CompletableFuture future = helloService.sayHello("world"); ![idl dubbo compiler](/imgs/blog/idl-dubbo-compiler.png) -但是需要注意的一定是,由于外围的 Reactive API 需要有底层传输协议的支持才有意义,因此,目前 Reactive API 只能在使用 gRPC 协议时才有意义,具体请参见示例以及下面关于 ”[Dubbo 对 gRPC 的支持](https://github.com/apache/dubbo-samples/tree/master/java/dubbo-samples-grpc/dubbo-samples-rxjava)” 一节的讲解。 +但是需要注意的一定是,由于外围的 Reactive API 需要有底层传输协议的支持才有意义,因此,目前 Reactive API 只能在使用 gRPC 协议时才有意义,具体请参见示例以及下面关于 ”[Dubbo 对 gRPC 的支持](https://github.com/apache/dubbo-samples/tree/master/dubbo-samples-grpc/dubbo-samples-rxjava)” 一节的讲解。 ### 性能优化 @@ -120,7 +120,7 @@ CompletableFuture future = helloService.sayHello("world"); ![filter](/imgs/blog/filter.png) - 关于消费端线程模型的优化,对于网关类应用,需要消费大量服务的应用,都会在系统稳定性和性能表现上有很大提升,其优化后的总体工作原理图所下所示,具体解析可以参见之前发布的文章:[《消费端线程池模型》](http://dubbo.apache.org/zh-cn/docs/user/demos/consumer-threadpool.html) + 关于消费端线程模型的优化,对于网关类应用,需要消费大量服务的应用,都会在系统稳定性和性能表现上有很大提升,其优化后的总体工作原理图所下所示,具体解析可以参见之前发布的文章:[《消费端线程池模型》](/zh/docsv2.7/user/examples/consumer-threadpool/) 老线程模型工作原理: diff --git a/content/zh/blog/news/dubbo-history-gochina.md b/content/zh/blog/news/dubbo-history-gochina.md index 33c1fe4a7730..1dabe68c6a5b 100644 --- a/content/zh/blog/news/dubbo-history-gochina.md +++ b/content/zh/blog/news/dubbo-history-gochina.md @@ -126,11 +126,11 @@ Go 语言是一个适合处理 IO 密集型任务的语言,不擅长处理 CPU Dubbo 的限流接口源码如下: -![](/imgs/blog/dubbo-go/gochina/p15.jpeg) +![](/imgs/blog/dubbo-go/gochina/p15.png) 这个接口抽象是非常漂亮的,第一个是限流 url,第二个服务调用。下面是 Dubbo 的固定窗口限流源码: -![](/imgs/blog/dubbo-go/gochina/p16.jpeg) +![](/imgs/blog/dubbo-go/gochina/p16.png) 上面的代码很明显,"private final" 决定了 Dubbo 使用者只能使用期给定的固定窗口限流限算法,无法扩展。 @@ -179,7 +179,7 @@ dubbogo 的单机熔断是基于 hystrix-go 实现的,其判定参数有最大 所以每一步基本上都要给程序一定的时间进行等待,所以等的时间窗口是多少呢?dubbogo 默认每个步骤大概花2秒,总体一个时间窗口是10秒。 -![](/imgs/blog/dubbo-go/gochina/p24.jpeg) +![](/imgs/blog/dubbo-go/gochina/p24.png) 基本上在别的 RPC 框架里面,可能不太常见到这种处理。 @@ -206,8 +206,6 @@ k8s 提供了 pod/endpoint/service 三层维度的资源。简单的做法,可 最后就是展望未来,也就是明年的规划。 -![](/imgs/blog/dubbo-go/gochina/p27.jpeg) - 明年我们将会很快实现 dubbo router。社区在 8月份已经实现了 router 功能需要的底层的算法模块,但是当时配置中心下发相关的参数的能力还不是很强,所以没有最终完成。最近服务治理配置刚刚支持了 zookeeper 和 apollo,预计很快就可以将 router 的参数通过配置中心下发的形式支持掉。另外,还有 tracing,我们将会引入社区主流的 tracing 方案,以 opentracing 为标准,去集成 opentracing 开源生态的相关能力。第三个是 kubernetes operator,这个就是刚才说的 K8s 的服务调用,我们会基于 operator 的方案做一版新的基于 k8s 的注册中心实现。最后就是云原生生态的融入,即与 istio 的集成,dubbogo 将会成为 dubbo 在 service mesh 生态中的重要角色。 目前 dubbogo 项目,今年是能 run 起来,质量方面还有很多工作要做,功能基本上到明年可与 dubbo 2.7 补齐,目前已经基本够用。目前落地实践的是 3 个比较典型的公司,一个是携程,还有一个是涂鸦智能。 diff --git a/content/zh/blog/news/prepare-an-apache-release.md b/content/zh/blog/news/prepare-an-apache-release.md index de4b59f440be..1e8f924c96a4 100644 --- a/content/zh/blog/news/prepare-an-apache-release.md +++ b/content/zh/blog/news/prepare-an-apache-release.md @@ -171,7 +171,7 @@ $ mvn release:clean $ mvn release:prepare -Prelease -Darguments="-DskipTests" -DautoVersionSubmodules=true -Dusername=YOUR GITHUB ID -DpushChanges=false ``` -> 执行release插件时,如果指定了`-DpushChanges=true`, 插件会自动提交到远端的GitHub仓库中,此时就需要输入GitHub的密码,注意不是输入web页面的登录密码,而是一个`Personal access tokens`,获取方式详见[这里](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line) +> 执行release插件时,如果指定了`-DpushChanges=true`, 插件会自动提交到远端的GitHub仓库中,此时就需要输入GitHub的密码,注意不是输入web页面的登录密码,而是一个`Personal access tokens`,获取方式详见[这里](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token) > 这里有一点要注意的是tag, 在执行过程中,需要选择发布的artifactId, 下一个版本artifactId以及发布版本的tag, tag默认的是dubbo-parent-xxxx,需要改成dubbo-xxxx @@ -203,7 +203,7 @@ $ mvn -Prelease release:perform -Darguments="-DskipTests" -DautoVersionSubmodule 2. 将dubbo checkout到本地目录 ```shell - $ svn checkout https://dist.apache.org/repos/dist/dev/incubator/dubbo + $ svn checkout https://dist.apache.org/repos/dist/dev/dubbo # 假定本地目录为 ~/apache/incubator/dubbo ``` @@ -214,7 +214,7 @@ $ mvn -Prelease release:perform -Darguments="-DskipTests" -DautoVersionSubmodule $ mkdir ${release_version} ``` -4. 添加public key到[KEYS](https://dist.apache.org/repos/dist/dev/incubator/dubbo/KEYS)文件并提交到SVN仓库(第一次做发布的人需要做这个操作,具体操作参考KEYS文件里的说明)。KEYS主要是让参与投票的人在本地导入,用来校验sign的正确性 +4. 添加public key到[KEYS](https://dist.apache.org/repos/dist/dev/dubbo/KEYS)文件并提交到SVN仓库(第一次做发布的人需要做这个操作,具体操作参考KEYS文件里的说明)。KEYS主要是让参与投票的人在本地导入,用来校验sign的正确性 ```sh $ gpg -a --export your_key_id >> KEYS @@ -250,12 +250,12 @@ $ mvn -Prelease release:perform -Darguments="-DskipTests" -DautoVersionSubmodule ## 验证Release Candidates -详细的检查列表请参考官方的[check list](https://wiki.apache.org/incubator/IncubatorReleaseChecklist) +详细的检查列表请参考官方的[check list](https://cwiki.apache.org/confluence/display/INCUBATOR/Incubator+Release+Checklist) 首先,从一下地址下载要发布的Release Candidate到本地环境:
-https://dist.apache.org/repos/dist/dev/incubator/dubbo/${release_version}/
+https://dist.apache.org/repos/dist/dev/dubbo/${release_version}/
 
然后,开始验证环节,验证包含但不限于以下内容和形式 @@ -274,7 +274,7 @@ $ shasum -c apache-dubbo-${release_version}-bin-release.zip.sha512 如果是第一次检查,需要首先导入公钥。 ```sh - $ curl https://dist.apache.org/repos/dist/dev/incubator/dubbo/KEYS >> KEYS # download public keys to local directory + $ curl https://dist.apache.org/repos/dist/dev/dubbo/KEYS >> KEYS # download public keys to local directory $ gpg --import KEYS # import keys $ gpg —edit-key liujun > trust # type trust command @@ -335,7 +335,7 @@ Hello Dubbo Community, This is a call for vote to release Apache Dubbo (Incubating) version 2.6.2. The release candidates: -https://dist.apache.org/repos/dist/dev/incubator/dubbo/2.6.2/ +https://dist.apache.org/repos/dist/dev/dubbo/2.6.2/ Git tag for the release: https://github.com/apache/dubbo/tree/dubbo-2.6.2 @@ -347,7 +347,7 @@ Release Notes: https://github.com/apache/dubbo/releases/tag/untagged-4775c0a22c60fca55118 The artifacts have been signed with Key : 28681CB1, which can be found in the keys file: -https://dist.apache.org/repos/dist/dev/incubator/dubbo/KEYS +https://dist.apache.org/repos/dist/dev/dubbo/KEYS The vote will be open for at least 72 hours or until necessary number of votes are reached. @@ -384,7 +384,7 @@ https://lists.apache.org/thread.html/8d5c39eece6288beed2e22ca976350728c571d2a9ce A minor issue also can be found in the above thread. The release candidates (RC1): -https://dist.apache.org/repos/dist/dev/incubator/dubbo/2.6.4 +https://dist.apache.org/repos/dist/dev/dubbo/2.6.4 Git tag for the release (RC1): https://github.com/apache/dubbo/tree/dubbo-2.6.4 @@ -398,7 +398,7 @@ Release Notes: The artifacts have been signed with Key : 7955FB6D1DD21CF7, which can be found in the keys file: -https://dist.apache.org/repos/dist/dev/incubator/dubbo/KEYS +https://dist.apache.org/repos/dist/dev/dubbo/KEYS Look at here for how to verify this release candidate: https://github.com/apache/dubbo-website/blob/asf-site/blog/en-us/prepare-an-apache-release.md#prepare-apache-release @@ -433,12 +433,12 @@ The Apache Dubbo (Incubating) Team ## 正式发布 -1. 将[dev](https://dist.apache.org/repos/dist/dev/incubator/dubbo)目录下的发布包添加到[release](https://dist.apache.org/repos/dist/release/incubator/dubbo)目录下,KEYS有更新的,也需要同步更新。 -2. 删除[dev](https://dist.apache.org/repos/dist/dev/incubator/dubbo)目录下的发布包 -3. 删除[release](https://dist.apache.org/repos/dist/release/incubator/dubbo)目录下上一个版本的发布包,这些包会被自动保存在[这里](https://archive.apache.org/dist/incubator/dubbo) +1. 将[dev](https://dist.apache.org/repos/dist/dev/dubbo)目录下的发布包添加到[release](https://dist.apache.org/repos/dist/release/dubbo)目录下,KEYS有更新的,也需要同步更新。 +2. 删除[dev](https://dist.apache.org/repos/dist/dev/dubbo)目录下的发布包 +3. 删除[release](https://dist.apache.org/repos/dist/release/dubbo)目录下上一个版本的发布包,这些包会被自动保存在[这里](https://archive.apache.org/dist/incubator/dubbo) 4. 发布GitHub上的[release notes](https://github.com/apache/dubbo/releases) 5. 修改GitHub的Readme文件,将版本号更新到最新发布的版本 -6. 在官网下载[页面](http://dubbo.apache.org/en-us/blog/download.html)上添加最新版本的下载链接。最新的下载链接应该类似[这样](https://www.apache.org/dyn/closer.cgi?path=incubator/dubbo/$VERSION/apache-dubbo-$VERSION-source-release.zip). 同时更新以前版本的下载链接,改为类似[这样](https://archive.apache.org/dist/incubator/dubbo/$VERSION/apache-dubbo-$VERSION-bin-release.zip). 具体可以参考过往的[下载链接](https://github.com/apache/dubbo-website/blob/asf-site/blog/en-us/download.md) +6. 在官网下载[页面](/en/blog/2020/05/18/past-releases/)上添加最新版本的下载链接。最新的下载链接应该类似`https://www.apache.org/dyn/closer.cgi?path=incubator/dubbo/$VERSION/apache-dubbo-$VERSION-source-release.zip`. 同时更新以前版本的下载链接,改为类似`https://archive.apache.org/dist/dubbo/$VERSION/apache-dubbo-$VERSION-bin-release.zip`. 具体可以参考过往的[下载链接](/en/blog/2020/05/18/past-releases/) 7. 合并`${release-version}-release`分支到对应的主干分支, 然后删除相应的release分支,例如: `git push origin --delete 2.7.0-release` 8. 发邮件到 `dev@dubbo.apache.org` 和 `general@incubator.apache.org` 宣布release邮件模板: @@ -471,7 +471,7 @@ an issue on GitHub[4]. Apache Dubbo is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF. -[1] http://dubbo.apache.org/en-us/blog/download.html +[1] https://dubbo.apache.org/en/blog/2020/05/18/past-releases/ [2] http://central.maven.org/maven2/com/alibaba/dubbo [3] https://github.com/apache/dubbo/releases [4] https://github.com/apache/dubbo/issues diff --git a/content/zh/blog/news/releases/2.7.5.md b/content/zh/blog/news/releases/2.7.5.md index 82e108dc09a9..706cdefbc3f8 100644 --- a/content/zh/blog/news/releases/2.7.5.md +++ b/content/zh/blog/news/releases/2.7.5.md @@ -172,9 +172,9 @@ if (!mutualTls) {} 为尽可能保证应用启动的灵活性,TLS Cert 的指定还能通过 -D 参数或环境变量等方式来在启动阶段根据部署环境动态指定,具体请参见 Dubbo 配置读取规则与 TLS 示例 -Dubbo 配置读取规则:http://dubbo.apache.org/zh-cn/docs/user/configuration/configuration-load-process.html +Dubbo 配置读取规则:/zh/docs/user/configuration/configuration-load-process.html -TLS 示例:https://github.com/apache/dubbo-samples/tree/master/java/dubbo-samples-ssl +TLS 示例:https://github.com/apache/dubbo-samples/tree/master/dubbo-samples-ssl > 如果要使用的是 gRPC 协议,在开启 TLS 时会使用到协议协商机制,因此必须使用支持 ALPN 机制的 Provider,推荐使用的是 netty-tcnative,具体可参见 gRPC Java 社区的总结: https://github.com/grpc/grpc-java/blob/master/SECURITY.md diff --git a/content/zh/blog/news/releases/dubbo-go-1.4.md b/content/zh/blog/news/releases/dubbo-go-1.4.md index 5e6714a9a139..55258e7d6310 100644 --- a/content/zh/blog/news/releases/dubbo-go-1.4.md +++ b/content/zh/blog/news/releases/dubbo-go-1.4.md @@ -146,7 +146,7 @@ Dubbo 鉴权认证是为了避免敏感接口被匿名用户调用而在 SDK 层 目前这些规划的 任务清单[^4],都已经放入在 dubbo-go 项目的 issue 里面,欢迎感兴趣的朋友认领参与开发。dubbo-go 社区在 **钉钉群 23331795** 欢迎你的加入。 -[^1]: https://github.com/apache/dubbo-samples/tree/master/golang/registry/kubernetes +[^1]: https://github.com/apache/dubbo-go-samples/tree/1.5/registry/kubernetes [^2]: https://github.com/dubbogo/dubbo-samples/tree/master/golang/router/condition [^3]: https://github.com/dubbogo/dubbo-samples/tree/master/golang/configcenter/nacos [^4]: https://github.com/apache/dubbo-go/milestone/1 \ No newline at end of file diff --git a/content/zh/blog/news/releases/dubbo-go-1.5.1.md b/content/zh/blog/news/releases/dubbo-go-1.5.1.md index c7b9a9ab6cb8..c67ad3b5ef97 100644 --- a/content/zh/blog/news/releases/dubbo-go-1.5.1.md +++ b/content/zh/blog/news/releases/dubbo-go-1.5.1.md @@ -27,7 +27,7 @@ description: > 基于 Seata 扩展实现。通过增加过滤器,在服务端接收 xid 并结合 [seata-golang](https://github.com/seata-golang/seata-golang) 达到支持分布式事务的目的。 从而使 Dubbo-go 在分布式场景下,让用户有更多的选择,能适应更多的个性化场景。 -我们在 dubbo-samples 中给出了 [事务测试用例](https://github.com/apache/dubbo-samples/tree/master/golang/seata) 。 +我们在 dubbo-samples 中给出了 [事务测试用例](https://github.com/apache/dubbo-go-samples/tree/1.5/seata) 。 ## 3 多注册中心集群负载均衡 @@ -57,7 +57,7 @@ description: > #### 5.1.1 动态规则打标 -可随时在[服务治理控制台](http://dubbo.apache.org/zh-cn/docs/user/demos/routing-rule.html)下发标签归组规则 +可随时在[服务治理控制台](/zh/docsv2.7/user/examples/routing-rule/)下发标签归组规则 ```yaml # governance-tagrouter-provider应用增加了两个标签分组tag1和tag2 diff --git a/content/zh/blog/news/releases/dubbo-go-1.5.md b/content/zh/blog/news/releases/dubbo-go-1.5.md index 91fe56ec2552..a73a8d8ca8d6 100644 --- a/content/zh/blog/news/releases/dubbo-go-1.5.md +++ b/content/zh/blog/news/releases/dubbo-go-1.5.md @@ -90,10 +90,10 @@ Dubbo-go 处于一个比较稳定成熟的状态。目前新版本正处于往 (图 2 ) -以前的 dubbo-go RPC 层直接复用了 getty 框架 的 RPC[[^3](https://github.com/AlexStocks/getty/tree/master/rpc)],未能实现协议和应用通信地址的隔离。阿里中间件展图同学重构了 dubbo-go RPC 层,实现了连接复用:可以实现 consumer 与 provider 端的同一个 TCP 连接上进行多协议通信。相关 PR 业已合并,会在 dubbo-go v1.5.1 中发布。 +以前的 dubbo-go RPC 层直接复用了 getty 框架 的 RPC[[^3](https://github.com/AlexStocks/getty/tree/feature/rpc)],未能实现协议和应用通信地址的隔离。阿里中间件展图同学重构了 dubbo-go RPC 层,实现了连接复用:可以实现 consumer 与 provider 端的同一个 TCP 连接上进行多协议通信。相关 PR 业已合并,会在 dubbo-go v1.5.1 中发布。 目前下一个版本正在紧锣密鼓的开发中,具体规划及任务清单[^1] ,都已经在 Github 上体现。 [^1]: https://github.com/apache/dubbo-go/projects/8 [^2]: https://github.com/seata-golang/seata-golang -[^3]: https://github.com/AlexStocks/getty/tree/master/rpc \ No newline at end of file +[^3]: https://github.com/AlexStocks/getty/tree/feature/rpc \ No newline at end of file diff --git a/content/zh/blog/news/releases/past-releases.md b/content/zh/blog/news/releases/past-releases.md index 5766f1abbadf..cb9d74aab223 100644 --- a/content/zh/blog/news/releases/past-releases.md +++ b/content/zh/blog/news/releases/past-releases.md @@ -12,7 +12,7 @@ description: > ## Apache Dubbo -请点击了解各[版本详情和升级注意事项](https://dubbo.apache.org/zh/docs/v2.7/user/versions/) +请点击了解各[版本详情和升级注意事项](/zh/docsv2.7/user/versions/) > GitHub: https://github.com/apache/dubbo \ > 发布说明: https://github.com/apache/dubbo/releases @@ -126,13 +126,6 @@ description: > [asc](https://archive.apache.org/dist/dubbo/2.7.12/apache-dubbo-2.7.12-src.zip.asc) | [sha512](https://archive.apache.org/dist/dubbo/2.7.12/apache-dubbo-2.7.12-src.zip.sha512) - -### 2.6.10.1 (2021-05-30) - -* [source](https://archive.apache.org/dist/dubbo/2.6.10.1/apache-dubbo-2.6.10.1-source-release.zip) | - [asc](https://archive.apache.org/dist/dubbo/2.6.10.1/apache-dubbo-2.6.10.1-source-release.zip.asc) | - [sha512](https://archive.apache.org/dist/dubbo/2.6.10.1/apache-dubbo-2.6.10.1-source-release.zip.sha512) - ### 2.7.11 (2021-05-12) * [source](https://archive.apache.org/dist/dubbo/2.7.11/apache-dubbo-2.7.11-src.zip) | diff --git a/content/zh/blog/pixiu/dubbo-go-pixiu-animal.md b/content/zh/blog/pixiu/dubbo-go-pixiu-animal.md index 40400016f0b9..c7895b0c1f7b 100644 --- a/content/zh/blog/pixiu/dubbo-go-pixiu-animal.md +++ b/content/zh/blog/pixiu/dubbo-go-pixiu-animal.md @@ -59,7 +59,7 @@ Pixiu 的整体设计遵守以下原则: 不同的使用场景有着各自独特的需求。为满足不同用户的定制化需求,Pixiu 使用了插件模式。开发者可以通过编写 go plugin,将自身特有的业务逻辑以 filter 形式内嵌至 Pixiu 网关中,实现诸如企业登录鉴权等功能。 -![](https://static001.geekbang.org/infoq/fd/fd38da297d095e4c3af1c89b18804ef1.webp) +![](/imgs/blog/1/01/01/dubbo-go-pixiu/fd38da297d095e4c3af1c89b18804ef1.webp) 图 1: Pixiu 核心功能列表 @@ -67,7 +67,7 @@ Pixiu 的整体设计遵守以下原则: ## Pixiu 的架构设计 -![](https://static001.geekbang.org/infoq/2b/2b2fd6ea1cc0375392919d9e0c181f2b.webp) +![](/imgs/blog/1/01/01/dubbo-go-pixiu/2b2fd6ea1cc0375392919d9e0c181f2b.webp) 图 2: Pixiu 架构 @@ -234,7 +234,7 @@ func (ef *GenericFilter) Invoke(ctx context.Context, invoker protocol.Invoker, i ### Pixiu 的未来 -![](https://static001.geekbang.org/infoq/e5/e57050f224f658b96cd6bd917050b259.webp) +![](/imgs/blog/1/01/01/dubbo-go-pixiu/e57050f224f658b96cd6bd917050b259.webp) 图 3: Pixiu 迭代里程碑 @@ -246,7 +246,7 @@ Pixiu 作为网关产品外,其衍生项目也会在我们的未来计划中 Pixiu 目前的定位是一个七层协议网关,其最初版本是被定义成一个 Dubbo 的服务网关。作为云时代的产品,Pixiu 的发展方向必然是面向云原生的。现在的版本为 0.2.1, 已经实现基本的 Dubbo/Http 服务代理和部分的网关通用功能。目前正在开发中的 0.4 及其后续版本支持 gRPC 和 Spring Cloud 服务调用, 后续还将提供 MQ 服务支持。另外,社区将继续优化配置方式,降低用户的使用难度,继续优化官方的 filter,使 Pixiu 可以在官方层面实现更多的网关通用功能。 -![](https://static001.geekbang.org/infoq/0c/0c1afe00699eb3e5cc022e48966ef5a6.webp) +![](/imgs/blog/1/01/01/dubbo-go-pixiu/0c1afe00699eb3e5cc022e48966ef5a6.webp) 在未来的一年内,社区计划支持 xDS API,将 Pixiu 演化为 Dubbo mesh 的 sidecar。其最终目的就是:在现有的 dubbo mesh 形态中演化出 Proxy Service Mesh 形态。基于这个形态,Js、Python、PHP、Ruby 和 Perl 等脚本语言程序除了收获 dubbo mesh 原有的技术红利之外,大概率还能收获性能上的提升。 diff --git a/content/zh/docs/advanced/auth.md b/content/zh/docs/advanced/auth.md index c1ac11d2a007..1cd513759d5d 100644 --- a/content/zh/docs/advanced/auth.md +++ b/content/zh/docs/advanced/auth.md @@ -13,7 +13,7 @@ description: "服务鉴权" 类似支付之类的对安全性敏感的业务可能会有限制匿名调用的需求。在加固安全性方面,2.7.5 引入了基于AK/SK机制的认证鉴权机制,并且引入了鉴权服务中心,主要原理是消费端在请求需要鉴权的服务时,会通过SK、请求元数据、时间戳、参数等信息来生成对应的请求签名,通过Dubbo的Attahcment机制携带到对端进行验签,验签通过才进行业务逻辑处理。如下图所示: -![](https://raw.githubusercontent.com/Ooo0oO0o0oO/res/master/auth.png) +![](/imgs/docsv2.7/user/examples/auth/auth.png) diff --git a/content/zh/docs/advanced/config-connections.md b/content/zh/docs/advanced/config-connections.md index f69496aa42f4..45a541b581f3 100644 --- a/content/zh/docs/advanced/config-connections.md +++ b/content/zh/docs/advanced/config-connections.md @@ -37,7 +37,7 @@ description: "Dubbo 中服务端和客户端的连接控制" ``` -如果 `` 和 `` 都配了 connections,`` 优先,参见:[配置的覆盖策略](../../configuration/xml) +如果 `` 和 `` 都配了 connections,`` 优先,参见:[配置的覆盖策略](../../references/configuration/xml/) [^1]: 因为连接在 Server上,所以配置在 Provider 上 [^2]: 如果是长连接,比如 Dubbo 协议,connections 表示该服务对每个提供者建立的长连接数 diff --git a/content/zh/docs/advanced/config-rule.md b/content/zh/docs/advanced/config-rule.md index 76847ce7347c..78fa7170755d 100644 --- a/content/zh/docs/advanced/config-rule.md +++ b/content/zh/docs/advanced/config-rule.md @@ -18,7 +18,7 @@ description: "在 Dubbo 中配置应用级治理规则和服务级治理规则" ## 概览 -请在[服务治理控制台](http://47.91.207.147/#/governance/config)查看或修改覆盖规则。 +请在服务治理控制台查看或修改覆盖规则。 应用粒度 diff --git a/content/zh/docs/advanced/group-merger.md b/content/zh/docs/advanced/group-merger.md index 3ab5e78375d9..ac8b7eadbe61 100644 --- a/content/zh/docs/advanced/group-merger.md +++ b/content/zh/docs/advanced/group-merger.md @@ -46,7 +46,7 @@ description: "通过分组对结果进行聚合并返回聚合后的结果" 指定合并策略,缺省根据返回值类型自动匹配,如果同一类型有两个合并器时,需指定合并器的名称 {{% alert title="提示" color="primary" %}} -参见:[合并结果扩展](../../../dev/impls/merger) +参见:[合并结果扩展](../../../docsv2.7/dev/impls/merger/) {{% /alert %}} ```xml diff --git a/content/zh/docs/advanced/logger-strategy.md b/content/zh/docs/advanced/logger-strategy.md index d865b0d61c46..8471812ff56d 100644 --- a/content/zh/docs/advanced/logger-strategy.md +++ b/content/zh/docs/advanced/logger-strategy.md @@ -29,4 +29,4 @@ description: "在 Dubbo 中适配日志框架" ``` -[1]: 自定义扩展可以参考 [日志适配扩展](../../../dev/impls/logger-adapter) +[1]: 自定义扩展可以参考 [日志适配扩展](../../../docsv2.7/dev/impls/logger-adapter/) diff --git a/content/zh/docs/advanced/multi-protocols.md b/content/zh/docs/advanced/multi-protocols.md index 0454a316cf50..697381ec4d08 100644 --- a/content/zh/docs/advanced/multi-protocols.md +++ b/content/zh/docs/advanced/multi-protocols.md @@ -53,4 +53,4 @@ Dubbo 允许配置多协议,在不同服务上支持不同协议或者同一
``` -[^1]: 可以自行扩展协议,参见:[协议扩展](http://dubbo.apache.org/books/dubbo-dev-book/impls/protocol.html) +[^1]: 可以自行扩展协议,参见:[协议扩展](/zh/docsv2.7/dev/impls/protocol/) diff --git a/content/zh/docs/advanced/protobuf&interface.md b/content/zh/docs/advanced/protobuf&interface.md index b17b7ca932ba..79fc90bafec5 100644 --- a/content/zh/docs/advanced/protobuf&interface.md +++ b/content/zh/docs/advanced/protobuf&interface.md @@ -53,7 +53,7 @@ enum TrafficLightColor { * 生成的java代码 -![image](https://user-images.githubusercontent.com/22830937/124234531-b96c2c80-db46-11eb-8155-a77dbe059f07.png) +![image](/imgs/docs/advanced/protobufinterface/124234531-b96c2c80-db46-11eb-8155-a77dbe059f07.png) > 枚举是常量,因此采用大写 ### 1.2.2. 数组 @@ -68,7 +68,7 @@ message VipIDToRidReq { * 生成的java代码 -![image](https://user-images.githubusercontent.com/22830937/124234564-c4bf5800-db46-11eb-94fc-a056af6089cb.png) +![image](/imgs/docs/advanced/protobufinterface/124234564-c4bf5800-db46-11eb-94fc-a056af6089cb.png) > 底层实际上是1个ArrayList ### 2.2.3. 集合 @@ -87,7 +87,7 @@ message BatchOnlineRes { * 生成的java代码 -![image](https://user-images.githubusercontent.com/22830937/124234654-e4568080-db46-11eb-9700-b30022ebee21.png) +![image](/imgs/docs/advanced/protobufinterface/124234654-e4568080-db46-11eb-9700-b30022ebee21.png) ### 2.2.5. 嵌套 @@ -112,7 +112,7 @@ message AnchorInfo { * 生成的java代码 -![image](https://user-images.githubusercontent.com/22830937/124234723-f89a7d80-db46-11eb-82d0-a8aee5322098.png) +![image](/imgs/docs/advanced/protobufinterface/124234723-f89a7d80-db46-11eb-82d0-a8aee5322098.png) ## 3. 字段默认值 diff --git a/content/zh/docs/advanced/routing-rule.md b/content/zh/docs/advanced/routing-rule.md index db57fe805731..4ec157cff221 100644 --- a/content/zh/docs/advanced/routing-rule.md +++ b/content/zh/docs/advanced/routing-rule.md @@ -255,6 +255,6 @@ RpcContext.getContext().setAttachment(Constants.TAG_KEY,"tag1"); {{% alert title="提示" color="primary" %}} `2.6.x` 版本以及更早的版本请使用[老版本路由规则](../routing-rule-deprecated) -自定义路由参考[路由扩展](../../../dev/impls/router) +自定义路由参考[路由扩展](/zh/docs3-v2/java-sdk/reference-manual/spi/description/router/) {{% /alert %}} diff --git a/content/zh/docs/advanced/simplify-registry-data.md b/content/zh/docs/advanced/simplify-registry-data.md index 4345cd7c2cae..229947b8db17 100644 --- a/content/zh/docs/advanced/simplify-registry-data.md +++ b/content/zh/docs/advanced/simplify-registry-data.md @@ -11,9 +11,9 @@ description: "减少注册中心上服务的注册数据" ## 背景 -Dubbo provider 中的服务配置项有接近 [30 个配置项](http://dubbo.apache.org/en-us/docs/user/references/xml/dubbo-service.html)。 排除注册中心服务治理需要之外,很大一部分配置项是 provider 自己使用,不需要透传给消费者。这部分数据不需要进入注册中心,而只需要以 key-value 形式持久化存储。 +Dubbo provider 中的服务配置项有接近 [30 个配置项](/zh/docsv2.7/user/references/xml/dubbo-service/)。 排除注册中心服务治理需要之外,很大一部分配置项是 provider 自己使用,不需要透传给消费者。这部分数据不需要进入注册中心,而只需要以 key-value 形式持久化存储。 -Dubbo consumer 中的配置项也有 [20+个配置项](http://dubbo.apache.org/en-us/docs/user/references/xml/dubbo-reference.html)。在注册中心之中,服务消费者列表中只需要关注 application,version,group,ip,dubbo 版本等少量配置,其他配置也可以以 key-value 形式持久化存储。 +Dubbo consumer 中的配置项也有 [20+个配置项](/zh/docsv2.7/user/references/xml/dubbo-reference/)。在注册中心之中,服务消费者列表中只需要关注 application,version,group,ip,dubbo 版本等少量配置,其他配置也可以以 key-value 形式持久化存储。 这些数据是以服务为维度注册进入注册中心,导致了数据量的膨胀,进而引发注册中心(如 zookeeper)的网络开销增大,性能降低。 diff --git a/content/zh/docs/advanced/tls.md b/content/zh/docs/advanced/tls.md index 567ffef84908..9fb85a56f495 100644 --- a/content/zh/docs/advanced/tls.md +++ b/content/zh/docs/advanced/tls.md @@ -45,7 +45,7 @@ if (!mutualTls) {} 为尽可能保证应用启动的灵活性,TLS Cert 的指定还能通过 -D 参数或环境变量等方式来在启动阶段根据部署环境动态指定,具体请参见 Dubbo 配置读取规则与 TLS 示例 {{% alert title="提示" color="primary" %}} -参考 Dubbo [配置读取规则](../../configuration/configuration-load-process),TLS [示例](https://github.com/apache/dubbo-samples/tree/master/dubbo-samples-ssl) +参考 Dubbo [配置读取规则](/zh/docsv2.7/user/configuration/configuration-load-process/),TLS [示例](https://github.com/apache/dubbo-samples/tree/master/dubbo-samples-ssl) 如果要使用的是 gRPC 协议,在开启 TLS 时会使用到协议协商机制,因此必须使用支持 ALPN 机制的 Provider,推荐使用的是 netty-tcnative,具体可参见 gRPC Java 社区的[总结]( https://github.com/grpc/grpc-java/blob/master/SECURITY.md) {{% /alert %}} diff --git a/content/zh/docs/concepts/registry-configcenter-metadata.md b/content/zh/docs/concepts/registry-configcenter-metadata.md index 1eb343b901b9..bfc7114032f8 100644 --- a/content/zh/docs/concepts/registry-configcenter-metadata.md +++ b/content/zh/docs/concepts/registry-configcenter-metadata.md @@ -78,4 +78,4 @@ Dubbo SDK对三大中心都支持了Multiple模式。 拿注册中心举例,下面是一个多活场景的部署架构示意图: -![//imgs/v3/concepts/multiple-registry-deployment-architecture](/imgs/v3/concepts/multiple-registry-deployment-architecture) +![//imgs/v3/concepts/multiple-registry-deployment-architecture](/imgs/v3/concepts/multiple-registry-deployment-architecture.png) diff --git a/content/zh/docs/languages/erlang/quick-start.md b/content/zh/docs/languages/erlang/quick-start.md index 61147952602a..699ecd47483c 100644 --- a/content/zh/docs/languages/erlang/quick-start.md +++ b/content/zh/docs/languages/erlang/quick-start.md @@ -37,7 +37,7 @@ into the project's `apps` directory. ``` ## 消费者配置 -Please reference [Reference Config](./reference.md) +Please reference [Reference Config](../reference/) ## Init dubbolib in your project It is need you diff --git a/content/zh/docs/languages/golang/dubbo-go-3.0/concept/app_and_interface.md b/content/zh/docs/languages/golang/dubbo-go-3.0/concept/app_and_interface.md index a420f570a885..40ed9d3f4209 100644 --- a/content/zh/docs/languages/golang/dubbo-go-3.0/concept/app_and_interface.md +++ b/content/zh/docs/languages/golang/dubbo-go-3.0/concept/app_and_interface.md @@ -68,4 +68,4 @@ Dubbo-go 服务层级为两个级别:分别是应用级别(App Level)和接口 暴露的服务是接口级别的,一个用户定义的 Provider Struct/一个用户定义的Consumer Struct,对应一个Service/Reference 模块,一个应用可以同时存在Consumer 模块和 Provider 模块,因此可以同时存在多个Service/Reference 模块。 -下一章:[【网络协议】](./protocol.html) +下一章:[【网络协议】](../protocol/) diff --git a/content/zh/docs/languages/golang/dubbo-go-3.0/concept/configuration.md b/content/zh/docs/languages/golang/dubbo-go-3.0/concept/configuration.md index 59fb1d7c2cb0..af3b16aa2f8a 100644 --- a/content/zh/docs/languages/golang/dubbo-go-3.0/concept/configuration.md +++ b/content/zh/docs/languages/golang/dubbo-go-3.0/concept/configuration.md @@ -230,4 +230,4 @@ dubbo: # 框架从 apollo 配置中最更新对应位置加载配置文件,并根据该配置文件启动 ``` -下一章:[【Dubbogo Samples 介绍】](../samples/samples_repo.html) \ No newline at end of file +下一章:[【Dubbogo Samples 介绍】](../../samples/samples_repo/) \ No newline at end of file diff --git a/content/zh/docs/languages/golang/dubbo-go-3.0/concept/protocol.md b/content/zh/docs/languages/golang/dubbo-go-3.0/concept/protocol.md index eb3bd37a4584..46681de3a6fe 100644 --- a/content/zh/docs/languages/golang/dubbo-go-3.0/concept/protocol.md +++ b/content/zh/docs/languages/golang/dubbo-go-3.0/concept/protocol.md @@ -109,4 +109,4 @@ dubbo: ``` -下一章:[【注册中心】](./registry.html) \ No newline at end of file +下一章:[【注册中心】](../registry/) \ No newline at end of file diff --git a/content/zh/docs/languages/golang/dubbo-go-3.0/concept/registry.md b/content/zh/docs/languages/golang/dubbo-go-3.0/concept/registry.md index d93c95cf5743..092375d111d1 100644 --- a/content/zh/docs/languages/golang/dubbo-go-3.0/concept/registry.md +++ b/content/zh/docs/languages/golang/dubbo-go-3.0/concept/registry.md @@ -15,9 +15,9 @@ description: Dubbo-go 的注册中心 对于 Dubbo-go 微服务框架,注册中心在 RPC 场景下复杂保存 Provider 应用的服务信息。Provider 注册地址到注册中心,Consumer 从注册中心读取和订阅 Provider 地址列表。如图所示: -![](https://dubbo.apache.org/imgs/architecture.png) +![](/imgs/architecture.png) -关于 Dubbo 服务发现细节,详情可参考 [Dubbo 官网的概念介绍](https://dubbo.apache.org/zh/docs/concepts/service-discovery/) +关于 Dubbo 服务发现细节,详情可参考 [Dubbo 官网的概念介绍](/zh/docs/concepts/service-discovery/) Dubbo-go 为注册中心抽象了一套接口如下: @@ -177,4 +177,4 @@ dubbo: interface: com.apache.dubbo.sample.basic.IGreeter ``` -下一章:[【框架配置介绍】](./configuration.html) \ No newline at end of file +下一章:[【框架配置介绍】](../configuration/) \ No newline at end of file diff --git a/content/zh/docs/languages/golang/dubbo-go-3.0/preface/3.0_feature.md b/content/zh/docs/languages/golang/dubbo-go-3.0/preface/3.0_feature.md index a05646d9f273..5d612743f370 100644 --- a/content/zh/docs/languages/golang/dubbo-go-3.0/preface/3.0_feature.md +++ b/content/zh/docs/languages/golang/dubbo-go-3.0/preface/3.0_feature.md @@ -17,7 +17,7 @@ description: dubbo-go 3.0 新特性的介绍 ### 1.1 概述 -![](../../pic/3.0/tri.png) +[//]: # (![](../../pic/3.0/tri.png)) - 通信层面 @@ -42,7 +42,7 @@ description: dubbo-go 3.0 新特性的介绍 ### 2.1 简介 -![](../../pic/3.0/disc.png) +[//]: # (![](../../pic/3.0/disc.png)) 在服务注册阶段,服务端实例将应用级别的注册信息,主要包含从应用名到实例IP的映射注册到注册中心。在服务发现阶段,客户端实例,通过注册中心获取到需要请求的服务实例IP。进入服务自省阶段,服务自省过程为通过应用信息获取接口信息的过程。如上图,包含两种模式: @@ -63,11 +63,11 @@ description: dubbo-go 3.0 新特性的介绍 virtual_service.yaml -![](../../pic/3.0/virtual_service.png) +[//]: # (![](../../pic/3.0/virtual_service.png)) 以及 dist_rule.yml -![](../../pic/3.0/dest_rule.png) +[//]: # (![](../../pic/3.0/dest_rule.png)) 框架可根据路由文件针对特定的请求进行流量转发。 @@ -76,4 +76,4 @@ virtual_service.yaml 阿里云官方介绍文章:[《Dubbo 3.0 - 开启下一代云原生微服务》](https://developer.aliyun.com/article/770964?utm_content=g_1000175535) -下一章:[【快速开始】](../quickstart/3.0/quickstart_triple.html) +下一章:[【快速开始】](../../quickstart/quickstart_triple/) diff --git a/content/zh/docs/languages/golang/dubbo-go-3.0/quickstart/quickstart_dubbo.md b/content/zh/docs/languages/golang/dubbo-go-3.0/quickstart/quickstart_dubbo.md index 50e5cc3412b0..521f0247e56c 100644 --- a/content/zh/docs/languages/golang/dubbo-go-3.0/quickstart/quickstart_dubbo.md +++ b/content/zh/docs/languages/golang/dubbo-go-3.0/quickstart/quickstart_dubbo.md @@ -241,6 +241,6 @@ response result: &{ID:1 Name:laurence Age:22 Time:2021-11-12 17:59:39.185 +0800 获得调用结果成功 -更多samples可以参阅 [【dubbo-go-samples】](../../samples/samples_repo.html) +更多samples可以参阅 [【dubbo-go-samples】](../../samples/samples_repo/) -下一章:[【Dubbogo 基本概念】](../../concept/app_and_interface.html) +下一章:[【Dubbogo 基本概念】](../../concept/app_and_interface/) diff --git a/content/zh/docs/languages/golang/dubbo-go-3.0/quickstart/quickstart_triple.md b/content/zh/docs/languages/golang/dubbo-go-3.0/quickstart/quickstart_triple.md index 81a2241d750b..b639a5a04e6a 100644 --- a/content/zh/docs/languages/golang/dubbo-go-3.0/quickstart/quickstart_triple.md +++ b/content/zh/docs/languages/golang/dubbo-go-3.0/quickstart/quickstart_triple.md @@ -282,9 +282,7 @@ func (s *GreeterProvider) SayHello(ctx context.Context, in *api.HelloRequest) (* quickstart 目录下,执行 `go mod init dubbo3-demo` -如果弹出 go mod detected 弹窗,需要勾选 Enable Go modules integration ,设置GOPROXY,保证 Goland 可以正确拉取到依赖,方便开发。或者在设置中按照如下位置设置。 - -![](../../../../../img/doc-module.png) +如果弹出 go mod detected 弹窗,需要勾选 Enable Go modules integration ,设置GOPROXY,保证 Goland 可以正确拉取到依赖,方便开发。 命令行执行 `export GOPROXY="https://goproxy.cn" `设置PROXY @@ -340,6 +338,6 @@ quickstart 细心的读者可以发现,以上例子编写的的服务端可以接受来自客户端的普通RPC、流式RPC调用请求。目前只编写了普通调用的Client,读者可以根据samples库中的例子来尝试编写流式客户端发起调用。 -更多samples可以参阅 [【dubbo-go-samples】](../../samples/samples_repo.html) +更多samples可以参阅 [【dubbo-go-samples】](../../samples/samples_repo/) -下一章:[【Dubbo 协议快速开始】](./quickstart_dubbo.html) +下一章:[【Dubbo 协议快速开始】](../quickstart_dubbo/) diff --git a/content/zh/docs/languages/golang/dubbo-go-3.0/samples/config-center-dynamic.md b/content/zh/docs/languages/golang/dubbo-go-3.0/samples/config-center-dynamic.md index 0a5290929a3b..d96a3143c1ac 100644 --- a/content/zh/docs/languages/golang/dubbo-go-3.0/samples/config-center-dynamic.md +++ b/content/zh/docs/languages/golang/dubbo-go-3.0/samples/config-center-dynamic.md @@ -145,7 +145,7 @@ func (l listener) Process(event *config_center.ConfigChangeEvent) { ``` -当然,以 API 的形式来启动框架时,可以直接以API的形式来启动框架。参考基本概念模块的 [Dubbogo 框架配置](../concept/configuration.html) +当然,以 API 的形式来启动框架时,可以直接以API的形式来启动框架。参考基本概念模块的 [Dubbogo 框架配置](../../concept/configuration/) ## 4. Dubbogo 配置热更新 @@ -155,5 +155,5 @@ func (l listener) Process(event *config_center.ConfigChangeEvent) { -下一章: [【Filter】](./custom-filter.html) +下一章: [【Filter】](../custom-filter/) diff --git a/content/zh/docs/languages/golang/dubbo-go-3.0/samples/custom-filter.md b/content/zh/docs/languages/golang/dubbo-go-3.0/samples/custom-filter.md index 17bf9398b305..076c1ee560af 100644 --- a/content/zh/docs/languages/golang/dubbo-go-3.0/samples/custom-filter.md +++ b/content/zh/docs/languages/golang/dubbo-go-3.0/samples/custom-filter.md @@ -119,5 +119,5 @@ func (f *MyClientFilter) OnResponse(ctx context.Context, result protocol.Result, -下一章: [【注册中心配置】](./registry.html) +下一章: [【注册中心配置】](../registry/) diff --git a/content/zh/docs/languages/golang/dubbo-go-3.0/samples/custom-logger.md b/content/zh/docs/languages/golang/dubbo-go-3.0/samples/custom-logger.md index 13d35055a54d..0cea948e88f4 100644 --- a/content/zh/docs/languages/golang/dubbo-go-3.0/samples/custom-logger.md +++ b/content/zh/docs/languages/golang/dubbo-go-3.0/samples/custom-logger.md @@ -91,5 +91,5 @@ logger.SetLogger(myLogger) // 在 main 函数中设置自定义logger - 日志API不可以在Init 阶段使用,否则可能会发生意料之外的问题。 -下一章: [【Metrics 数据上报】](./metrics.html) +下一章: [【Metrics 数据上报】](../metrics/) diff --git a/content/zh/docs/languages/golang/dubbo-go-3.0/samples/exception_response.md b/content/zh/docs/languages/golang/dubbo-go-3.0/samples/exception_response.md index eecbae7f8d3f..d6eb8334b9a8 100644 --- a/content/zh/docs/languages/golang/dubbo-go-3.0/samples/exception_response.md +++ b/content/zh/docs/languages/golang/dubbo-go-3.0/samples/exception_response.md @@ -121,4 +121,4 @@ dubbo.apache.org/dubbo-go/v3/common/proxy/proxy_factory.(*ProxyInvoker).Invoke 可看到报错信息和堆栈 -下一章: [【日志】](./custom-logger.html) \ No newline at end of file +下一章: [【日志】](../custom-logger/) \ No newline at end of file diff --git a/content/zh/docs/languages/golang/dubbo-go-3.0/samples/generic.md b/content/zh/docs/languages/golang/dubbo-go-3.0/samples/generic.md index 8204fdf39682..13cb3b92b49d 100644 --- a/content/zh/docs/languages/golang/dubbo-go-3.0/samples/generic.md +++ b/content/zh/docs/languages/golang/dubbo-go-3.0/samples/generic.md @@ -108,5 +108,5 @@ INFO cmd/client.go:89 GetUser1(userId string) res: map[age:48 class:or -下一章: [【应用级服务发现】](./service-discovery.html) +下一章: [【应用级服务发现】](../service-discovery/) diff --git a/content/zh/docs/languages/golang/dubbo-go-3.0/samples/go_java_interactive.md b/content/zh/docs/languages/golang/dubbo-go-3.0/samples/go_java_interactive.md index f4a179dd084c..7b46840e269d 100644 --- a/content/zh/docs/languages/golang/dubbo-go-3.0/samples/go_java_interactive.md +++ b/content/zh/docs/languages/golang/dubbo-go-3.0/samples/go_java_interactive.md @@ -160,7 +160,7 @@ JDK 8,Golang >= 1.15,Dubbo 3.0.2,zookeeper 启动, #### Java-Server 启动 -1. 定义 Java 的 PB 文件,可参考 [Dubbo 快速开始](https://dubbo.apache.org/zh/docs/quick-start/) +1. 定义 Java 的 PB 文件,可参考 [Dubbo 快速开始](/zh/docs/quick-start/) ```protobuf syntax = "proto3"; @@ -450,13 +450,13 @@ public class ApiConsumer { ## 2. 基于 Dubbo 协议互通 (Hessian2序列化) -参考 [dubbo-go-samples/rpc/dubbo](https://github.com/apache/dubbo-go-samples/tree/rpc/dubbo) +参考 [dubbo-go-samples/rpc/dubbo](https://github.com/apache/dubbo-go-samples/tree/master/rpc/dubbo) ### 2.1 Go-Client -> Java-Server #### Java-Server 启动 -1. 定义 Java 接口、参数和返回值,可参考 [Dubbo 快速开始](https://dubbo.apache.org/zh/docs/quick-start/) +1. 定义 Java 接口、参数和返回值,可参考 [Dubbo 快速开始](/zh/docs/quick-start/) ```java package org.apache.dubbo; @@ -853,5 +853,5 @@ public class Consumer { } ``` -下一章: [【配置中心和配置监听】](./config-center-dynamic.html) +下一章: [【配置中心和配置监听】](../config-center-dynamic/) diff --git a/content/zh/docs/languages/golang/dubbo-go-3.0/samples/metrics.md b/content/zh/docs/languages/golang/dubbo-go-3.0/samples/metrics.md index 6ba7f2c00542..e7d4075be30a 100644 --- a/content/zh/docs/languages/golang/dubbo-go-3.0/samples/metrics.md +++ b/content/zh/docs/languages/golang/dubbo-go-3.0/samples/metrics.md @@ -213,4 +213,4 @@ dubbo_test_summary_with_label_count{summarylabel1="value1",summarylabel2="value2 -下一章: [【泛化调用】](./generic.html) +下一章: [【泛化调用】](../generic/) diff --git a/content/zh/docs/languages/golang/dubbo-go-3.0/samples/registry.md b/content/zh/docs/languages/golang/dubbo-go-3.0/samples/registry.md index d5c8a3729873..be595c469136 100644 --- a/content/zh/docs/languages/golang/dubbo-go-3.0/samples/registry.md +++ b/content/zh/docs/languages/golang/dubbo-go-3.0/samples/registry.md @@ -115,5 +115,5 @@ dubbo: interface: com.apache.dubbo.sample.basic.IGreeter ``` -下一章: [【Triple 协议异常回传】](./exception_response.html) +下一章: [【Triple 协议异常回传】](../exception_response/) diff --git a/content/zh/docs/languages/golang/dubbo-go-3.0/samples/samples_repo.md b/content/zh/docs/languages/golang/dubbo-go-3.0/samples/samples_repo.md index 7f19fd87045a..aeae4df4dd82 100644 --- a/content/zh/docs/languages/golang/dubbo-go-3.0/samples/samples_repo.md +++ b/content/zh/docs/languages/golang/dubbo-go-3.0/samples/samples_repo.md @@ -139,7 +139,7 @@ description: dubbo-go 3.0 示例仓库 一旦在 GoLand 中打开本项目,可以发现,在 "Run Configuration" 弹出菜单中已经存在了一系列事先配置好了的用来运行相关服务提供方和调用方的选项,例如:"helloworld-go-server" 和 "helloworld-go-client"。 -可以选择其中的任意一个快速启动相关示例。当然在运行之前,假设需要的注册中心已经事先启动了,不然用例将会失败。您可以选择手动自行启动的方式,也可以利用工程中提供的 "docker-compose.yml" 在启动注册中心的 docker 实例。选择后者的话,可以参考[第三种方式](#3-manually-run-in-ide)中的细节。 +可以选择其中的任意一个快速启动相关示例。当然在运行之前,假设需要的注册中心已经事先启动了,不然用例将会失败。您可以选择手动自行启动的方式,也可以利用工程中提供的 "docker-compose.yml" 在启动注册中心的 docker 实例。 ### 2.3.在 IDE 中手工运行 diff --git a/content/zh/docs/languages/golang/dubbo-go-3.0/samples/service-discovery.md b/content/zh/docs/languages/golang/dubbo-go-3.0/samples/service-discovery.md index ee8b93c743bf..ee971a526aeb 100644 --- a/content/zh/docs/languages/golang/dubbo-go-3.0/samples/service-discovery.md +++ b/content/zh/docs/languages/golang/dubbo-go-3.0/samples/service-discovery.md @@ -61,4 +61,4 @@ dubbo: 相比于常规配置,定义好registry-type: service, 并且定义好元数据中心后,将会使用应用级服务注册/服务发现。 -下一章: [【路由规则】](./mesh_router.html) \ No newline at end of file +下一章: [【路由规则】](../mesh_router/) \ No newline at end of file diff --git a/content/zh/docs/languages/golang/quick-start.md b/content/zh/docs/languages/golang/quick-start.md index 79beae29752f..04c6b8c7e79b 100644 --- a/content/zh/docs/languages/golang/quick-start.md +++ b/content/zh/docs/languages/golang/quick-start.md @@ -9,7 +9,7 @@ description: "" {{% pageinfo %}} 此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅[最新版本](/zh/docs3-v2/golang-sdk/quickstart/)。 {{% /pageinfo %}} -推荐[使用 IDL](../../../examples/quick-start) 定义跨语言的服务与编码格式,以下展示的是 Golang 语言版本的服务定义与开发方式,如果你有遗留系统或无多语言开发需求,可参考以下使用方式。 +推荐[使用 IDL](../dubbo-go-3.0/quickstart/quickstart_triple) 定义跨语言的服务与编码格式,以下展示的是 Golang 语言版本的服务定义与开发方式,如果你有遗留系统或无多语言开发需求,可参考以下使用方式。 # 快速开始 diff --git a/content/zh/docs/migration/migration-and-compatibility-guide.md b/content/zh/docs/migration/migration-and-compatibility-guide.md index f5b9a9dfc574..ba1b3e470189 100644 --- a/content/zh/docs/migration/migration-and-compatibility-guide.md +++ b/content/zh/docs/migration/migration-and-compatibility-guide.md @@ -37,13 +37,13 @@ Dubbo 3.0 提供的新特性包括: * **新的地址发现模型(应用级服务发现)。** * 查看[应用级服务发现的迁移步骤](../migration-service-discovery) - * 查看[应用级服务发现的使用方式]() - * 查看[应用级服务发现设计与实现]()。 + * 查看应用级服务发现的使用方式 + * 查看应用级服务发现设计与实现。 * **下一代基于 HTTP/2 的 Triple 协议。** * 查看[Triple 协议迁移步骤](../migration-triple) * 查看 [Triple 协议使用方式](../../references/protocols/tri) * 查看 Triple 协议设计与实现。 * **统一的路由规则。** - * 查看[统一路由规则的迁移步骤](../migration-routingrule) - * 查看[统一路由规则使用方式](../../references/routerule) + * 查看[统一路由规则的迁移步骤](../migration-routingrule/) + * 查看[统一路由规则使用方式](../../references/routers/) * 查看统一路由规则设计与实现 \ No newline at end of file diff --git a/content/zh/docs/migration/migration-triple.md b/content/zh/docs/migration/migration-triple.md index e1d98fafc35b..81507dcf5294 100644 --- a/content/zh/docs/migration/migration-triple.md +++ b/content/zh/docs/migration/migration-triple.md @@ -11,7 +11,7 @@ description: "Triple协议迁移指南" ## Triple 介绍 -`Triple` 协议的格式和原理请参阅 [RPC 通信协议](https://dubbo.apache.org/zh/docs/concepts/rpc-protocol/) +`Triple` 协议的格式和原理请参阅 [RPC 通信协议](/zh/docs/concepts/rpc-protocol/) 根据 Triple 设计的目标,`Triple` 协议有以下优势: @@ -38,7 +38,7 @@ Dubbo3的之初就有一条目标是完美兼容 Dubbo2,所以为了 Dubbo2 所以,如果决定要升级到 Dubbo3 的 `Triple` 协议,只需要修改配置中的协议名称为 `tri` (注意: 不是triple)即可。 -接下来我们我们以一个使用 Dubbo2 协议的[工程](https://github.com/apache/dubbo-samples/tree/master/dubbo-samples-triple/src/main/java/org/apache/dubbo/sample/tri/migration) 来举例,如何一步一步安全的升级。 +接下来我们我们以一个使用 Dubbo2 协议的[工程](https://github.com/apache/dubbo-samples/tree/master/dubbo-samples-triple/src/main/java/org/apache/dubbo/sample/tri) 来举例,如何一步一步安全的升级。 1. 仅使用 `dubbo` 协议启动 `provider` 和 `consumer`,并完成调用。 2. 使用 `dubbo` 和 `tri` 协议 启动`provider`,以 `dubbo` 协议启动 `consumer`,并完成调用。 @@ -75,7 +75,7 @@ public class IGreeter2Impl implements IWrapperGreeter { 为保证兼容性,我们先将部分 provider 升级到 `dubbo3` 版本并使用 `dubbo` 协议。 -使用 `dubbo` 协议启动一个 [`Provider`](https://github.com/apache/dubbo-samples/tree/master/dubbo-samples-triple/src/main/java/com/apache/dubbo/sample/basic/migration/ApiMigrationDubboProvider) 和 [`Consumer`](https://github.com/apache/dubbo-samples/tree/master/dubbo-samples-triple/src/main/java/com/apache/dubbo/sample/basic/migration/ApiMigrationDubboConsumer) ,完成调用,输出如下: +使用 `dubbo` 协议启动一个 [`Provider`](https://github.com/apache/dubbo-samples/tree/master/dubbo-samples-triple/src/main/java/org/apache/dubbo/sample/tri/migration/ApiMigrationDubboProvider.java) 和 [`Consumer`](https://github.com/apache/dubbo-samples/tree/master/dubbo-samples-triple/src/main/java/org/apache/dubbo/sample/tri/migration/ApiMigrationDubboConsumer.java) ,完成调用,输出如下: ![result](/imgs/v3/migration/tri/dubbo3-tri-migration-dubbo-dubbo-result.png) ### 同时使用 dubbo 和 triple 协议 @@ -88,7 +88,7 @@ public class IGreeter2Impl implements IWrapperGreeter { > 按照推荐升级步骤,provider 已经支持了tri协议,所以 dubbo3的 consumer 可以直接使用 tri 协议 -使用`dubbo`协议和`triple`协议启动[`Provider`](https://github.com/apache/dubbo-samples/tree/master/dubbo-samples-triple/src/main/java/com/apache/dubbo/sample/basic/migration/ApiMigrationBothProvider)和[`Consumer`](https://github.com/apache/dubbo-samples/tree/master/dubbo-samples-triple/src/main/java/com/apache/dubbo/sample/basic/migration/ApiMigrationBothConsumer),完成调用,输出如下: +使用`dubbo`协议和`triple`协议启动[`Provider`](https://github.com/apache/dubbo-samples/tree/master/dubbo-samples-triple/src/main/java/org/apache/dubbo/sample/tri/migration/ApiMigrationBothProvider.java)和[`Consumer`](https://github.com/apache/dubbo-samples/tree/master/dubbo-samples-triple/src/main/java/org/apache/dubbo/sample/tri/migration/ApiMigrationBothConsumer.java),完成调用,输出如下: ![result](/imgs/v3/migration/tri/dubbo3-tri-migration-both-dubbo-tri-result.png) @@ -100,8 +100,8 @@ public class IGreeter2Impl implements IWrapperGreeter { 结构如图所示: ![strust](/imgs/v3/migration/tri/migrate-only-tri-strust.png) -[Provider](https://github.com/apache/dubbo-samples/tree/master/dubbo-samples-triple/src/main/java/com/apache/dubbo/sample/basic/migration/ApiMigrationTriProvider) -和 [Consumer](https://github.com/apache/dubbo-samples/tree/master/dubbo-samples-triple/src/main/java/com/apache/dubbo/sample/basic/migration/ApiMigrationTriConsumer) 完成调用,输出如下: +[Provider](https://github.com/apache/dubbo-samples/tree/master/dubbo-samples-triple/src/main/java/org/apache/dubbo/sample/tri/migration/ApiMigrationTriProvider.java) +和 [Consumer](https://github.com/apache/dubbo-samples/tree/master/dubbo-samples-triple/src/main/java/org/apache/dubbo/sample/tri/migration/ApiMigrationTriConsumer.java) 完成调用,输出如下: ![result](/imgs/v3/migration/tri/dubbo3-tri-migration-tri-tri-result.png) @@ -325,8 +325,8 @@ public interface PbGreeter { 关于 Triple 协议的应用级服务注册和发现和其他语言是一致的,可以通过下列内容了解更多。 -- [服务发现](https://dubbo.apache.org/zh/docs/concepts/service-discovery/) -- [应用级地址发现迁移指南](https://dubbo.apache.org/zh/docs/migration/migration-service-discovery/) +- [服务发现](/zh/docs/concepts/service-discovery/) +- [应用级地址发现迁移指南](/zh/docs/migration/migration-service-discovery/) ## 与 GRPC 互通 diff --git a/content/zh/docs/new-in-dubbo3.md b/content/zh/docs/new-in-dubbo3.md index 6ac807b77815..51f60830d041 100644 --- a/content/zh/docs/new-in-dubbo3.md +++ b/content/zh/docs/new-in-dubbo3.md @@ -30,7 +30,7 @@ Dubbo 可支持集群规模步入百万实例层次。 Dubbo3 构建的业务应用可直接部署在 VM、Container、Kubernetes 等平台,Dubbo3 很好的解决了 Dubbo 服务与调度平台之间的生命周期对齐,Dubbo 服务发现地址 与容器平台绑定的问题。 -在服务发现层面,Dubbo3 支持与 [Kubernetes Native Service]() 的融合,目前限于 Headless Service。 +在服务发现层面,Dubbo3 支持与 Kubernetes Native Service 的融合,目前限于 Headless Service。 Dubbo3 规划了两种形态的 Service Mesh 方案,在不同的业务场景、不同的迁移阶段、不同的基础设施保障情况下,Dubbo 都会有 Mesh 方案可供选择, 而这进一步的都可以通过统一的控制面进行治理。 diff --git a/content/zh/docs/quick-start.md b/content/zh/docs/quick-start.md index 97b63d30fa44..9b57a9ce2a3a 100644 --- a/content/zh/docs/quick-start.md +++ b/content/zh/docs/quick-start.md @@ -13,7 +13,7 @@ description: "示例演示了如何使用 Dubbo Spring Boot Starter 方式快速 > Dubbo 还提供了包括XML、API 等多种启动与接入方式,更多开发方式和配置细节可参见[配置手册](../references/configuration/)。 ## 下载示例代码 -完整示例代码在 [dubbo-samples](https://github.com/apache/dubbo-samples/dubbo-samples-spring-boot) 中 +完整示例代码在 [dubbo-samples](https://github.com/apache/dubbo-samples/tree/master/dubbo-samples-spring-boot) 中 1. 下载源码 ```shell script diff --git a/content/zh/docs/references/config-center.md b/content/zh/docs/references/config-center.md index 3c84a0f310d3..7327e27dae8c 100644 --- a/content/zh/docs/references/config-center.md +++ b/content/zh/docs/references/config-center.md @@ -63,9 +63,9 @@ configCenter.setAddress("zookeeper://127.0.0.1:2181"); 不同的规则以不同的 key 后缀区分: -- configurators,[覆盖规则](../../examples/config-rule) -- tag-router,[标签路由](../../examples/routing-rule) -- condition-router,[条件路由](../../examples/condition-router) +- configurators,[覆盖规则](/zh/docsv2.7/user/examples/config-rule/) +- tag-router,[标签路由](/zh/docsv2.7/user/examples/routing-rule/) +- condition-router,[条件路由](/zh/docsv2.7/user/examples/routing-rule/#条件路由) - migration,[迁移规则](../../migration/migration-service-discovery) #### Nacos @@ -76,8 +76,8 @@ configCenter.setAddress("zookeeper://127.0.0.1:2181"); 不同的规则以 dataId 的后缀区分: -- configurators,[覆盖规则](../../examples/config-rule) -- tag-router,[标签路由](../../examples/routing-rule) -- condition-router,[条件路由](../../examples/condition-router) +- configurators,[覆盖规则](/zh/docsv2.7/user/examples/config-rule/) +- tag-router,[标签路由](/zh/docsv2.7/user/examples/routing-rule/) +- condition-router,[条件路由](/zh/docsv2.7/user/examples/routing-rule/#条件路由) - migration,[迁移规则](../../migration/migration-service-discovery) diff --git a/content/zh/docs/references/configuration/environment-variables.md b/content/zh/docs/references/configuration/environment-variables.md index c0c7c9f932d2..7e550b5588bc 100644 --- a/content/zh/docs/references/configuration/environment-variables.md +++ b/content/zh/docs/references/configuration/environment-variables.md @@ -6,7 +6,7 @@ weight: 70 description: "在 Dubbo 中自动加载环境变量" --- -{{% pageinfo %}} 此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅[最新版本](/zh/docs3-v2/java-sdk/reference-manual/config/environment-variables/)。 +{{% pageinfo %}} 此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅[最新版本](/zh/docs3-v2/java-sdk/reference-manual/config/principle/#33-外部化配置)。 {{% /pageinfo %}} 从 2.7.3 版本开始,Dubbo 会自动从约定 key 中读取配置,并将配置以 Key-Value 的形式写入到URL中。 diff --git a/content/zh/docs/references/configuration/external-config.md b/content/zh/docs/references/configuration/external-config.md index d5920255d149..539d6134bdca 100644 --- a/content/zh/docs/references/configuration/external-config.md +++ b/content/zh/docs/references/configuration/external-config.md @@ -6,7 +6,7 @@ weight: 60 description: "将Dubbo应用的配置放到外部集中管理" --- -{{% pageinfo %}} 此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅[最新版本](/zh/docs3-v2/java-sdk/reference-manual/config/external-config/)。 +{{% pageinfo %}} 此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅[最新版本](/zh/docs3-v2/java-sdk/reference-manual/config/principle/#33-外部化配置)。 {{% /pageinfo %}} ### 外部化配置 diff --git a/content/zh/docs/references/lifecycle/rest.md b/content/zh/docs/references/lifecycle/rest.md index 9723a6601580..7c2de87c6612 100644 --- a/content/zh/docs/references/lifecycle/rest.md +++ b/content/zh/docs/references/lifecycle/rest.md @@ -186,7 +186,7 @@ JAX-RS是标准的Java REST API,得到了业界的广泛支持和应用,其 JAX-RS在网上的资料非常丰富,例如下面的入门教程: -* Oracle官方的tutorial:http://docs.oracle.com/javaee/7/tutorial/doc/jaxrs.htm +* Oracle官方的tutorial:https://www.oracle.com/technical-resources/articles/java/jax-rs.html * IBM developerWorks中国站文章:http://www.ibm.com/developerworks/cn/java/j-lo-jaxrs/ 更多的资料请自行google或者百度一下。就学习JAX-RS来说,一般主要掌握其各种annotation的用法即可。 diff --git a/content/zh/docs/references/metadata.md b/content/zh/docs/references/metadata.md index d25817d8875a..b96ac2ea9ebc 100644 --- a/content/zh/docs/references/metadata.md +++ b/content/zh/docs/references/metadata.md @@ -11,8 +11,8 @@ description: "Dubbo 服务元数据参考手册" ## 背景 -dubbo provider中的服务配置项有接近[30个配置项](https://dubbo.apache.org/zh/docs/v2.7/user/references/xml/dubbo-provider/)。 排除注册中心服务治理需要之外,很大一部分配置项是provider自己使用,不需要透传给消费者。这部分数据不需要进入注册中心,而只需要以key-value形式持久化存储。 -dubbo consumer中的配置项也有[20+个配置项](https://dubbo.apache.org/zh/docs/v2.7/user/references/xml/dubbo-consumer/)。在注册中心之中,服务消费者列表中只需要关注application,version,group,ip,dubbo版本等少量配置,其他配置也可以以key-value形式持久化存储。 +dubbo provider中的服务配置项有接近[30个配置项](/zh/docsv2.7/user/references/xml/dubbo-provider/)。 排除注册中心服务治理需要之外,很大一部分配置项是provider自己使用,不需要透传给消费者。这部分数据不需要进入注册中心,而只需要以key-value形式持久化存储。 +dubbo consumer中的配置项也有[20+个配置项](/zh/docsv2.7/user/references/xml/dubbo-consumer/)。在注册中心之中,服务消费者列表中只需要关注application,version,group,ip,dubbo版本等少量配置,其他配置也可以以key-value形式持久化存储。 这些数据是以服务为维度注册进入注册中心,导致了数据量的膨胀,进而引发注册中心(如zookeeper)的网络开销增大,性能降低。 除了上述配置项的存储之外,dubbo服务元数据信息也需要被存储下来。元数据信息包括服务接口,及接口的方法信息。这些信息将被用于服务mock,服务测试。 diff --git a/content/zh/docs/references/protocols/gRPC.md b/content/zh/docs/references/protocols/gRPC.md index 6d9180fd4820..563a5d1a6678 100644 --- a/content/zh/docs/references/protocols/gRPC.md +++ b/content/zh/docs/references/protocols/gRPC.md @@ -24,5 +24,5 @@ Dubbo 自 2.7.5 版本开始支持 gRPC 协议,对于计划使用 HTTP/2 通 具体可参见以下[示例](https://github.com/apache/dubbo-samples/tree/master/dubbo-samples-grpc) -除了原生 StreamObserver 接口类型之外,Dubbo 还支持 [RxJava](https://github.com/apache/dubbo-samples/tree/master/java/dubbo-samples-grpc/dubbo-samples-rxjava)、[Reactor](https://github.com/apache/dubbo-samples/tree/master/java/dubbo-samples-grpc/dubbo-samples-reactor) 编程风格的 API +除了原生 StreamObserver 接口类型之外,Dubbo 还支持 [RxJava](https://github.com/apache/dubbo-samples/tree/master/dubbo-samples-grpc/dubbo-samples-rxjava)、[Reactor](https://github.com/apache/dubbo-samples/tree/master/dubbo-samples-grpc/dubbo-samples-reactor) 编程风格的 API diff --git a/content/zh/docs/references/protocols/rest.md b/content/zh/docs/references/protocols/rest.md index 092482a88681..64cc1fd1c051 100644 --- a/content/zh/docs/references/protocols/rest.md +++ b/content/zh/docs/references/protocols/rest.md @@ -186,7 +186,7 @@ JAX-RS是标准的Java REST API,得到了业界的广泛支持和应用,其 JAX-RS在网上的资料非常丰富,例如下面的入门教程: -* Oracle官方的tutorial:http://docs.oracle.com/javaee/7/tutorial/doc/jaxrs.htm +* Oracle官方的tutorial:https://www.oracle.com/technical-resources/articles/java/jax-rs.html * IBM developerWorks中国站文章:http://www.ibm.com/developerworks/cn/java/j-lo-jaxrs/ 更多的资料请自行google或者百度一下。就学习JAX-RS来说,一般主要掌握其各种annotation的用法即可。 diff --git a/content/zh/docs/references/registry/redis.md b/content/zh/docs/references/registry/redis.md index a70675267feb..25f2b12682ca 100644 --- a/content/zh/docs/references/registry/redis.md +++ b/content/zh/docs/references/registry/redis.md @@ -78,12 +78,3 @@ Redis 过期数据通过心跳的方式检测脏数据,服务器时间必须 ## 可靠性声明 阿里内部并没有采用 Redis 做为注册中心,而是使用自己实现的基于数据库的注册中心,即:Redis 注册中心并没有在阿里内部长时间运行的可靠性保障,此 Redis 桥接实现只为开源版本提供,其可靠性依赖于 Redis 本身的可靠性。 - - -## 安装 - - -安装方式参见: [Redis安装手册]( ../../../admin/install/redis.md),只需搭一个原生的 Redis 服务器,并将 [Quick Start](../../preface/usage.md) 中 Provider 和 Consumer 里的 `conf/dubbo.properties` 中的 `dubbo.registry.address` 的值改为 `redis://127.0.0.1:6379` 即可使用。 - - -[^1]: [Redis](http://redis.io) 是一个高效的 KV 存储服务器 diff --git a/content/zh/docs/references/registry/zookeeper.md b/content/zh/docs/references/registry/zookeeper.md index 7a14960a1a42..9009979bfcf1 100644 --- a/content/zh/docs/references/registry/zookeeper.md +++ b/content/zh/docs/references/registry/zookeeper.md @@ -41,7 +41,7 @@ description: "Zookeeper 注册中心参考手册" ``` -或直接[下载](http://repo1.maven.org/maven2/org/apache/zookeeper/zookeeper)。 +或直接[下载](https://repo1.maven.org/maven2/org/apache/zookeeper/zookeeper)。 Dubbo 支持 zkclient 和 curator 两种 Zookeeper 客户端实现: @@ -69,7 +69,7 @@ dubbo.registry.client=zkclient zookeeper://10.20.153.10:2181?client=zkclient ``` -需依赖或直接[下载](http://repo1.maven.org/maven2/com/github/sgroschupf/zkclient): +需依赖或直接[下载](https://repo1.maven.org/maven2/com/github/sgroschupf/zkclient): ```xml diff --git a/content/zh/docs3-v2/dubbo-go-pixiu/dev/trie.md b/content/zh/docs3-v2/dubbo-go-pixiu/dev/trie.md index c2010fdd4e27..5aabe8712985 100644 --- a/content/zh/docs3-v2/dubbo-go-pixiu/dev/trie.md +++ b/content/zh/docs3-v2/dubbo-go-pixiu/dev/trie.md @@ -112,7 +112,7 @@ path: '/api/v1/test-dubbo/user/name/:name' 1. 在遇到通配节点前逻辑与find 依旧相同 : 从root 开始遍历字典书,'/api/v2/*' 称之为路径,在当前层级寻找指定路径,如果存在就继续在子树下完成剩下的路径匹配。 '/api/v2' 先从 logic root 找到 '/api' ,并在 '/api' 的子树下继续查找剩下的路径 '/v2' 。 1. 在处理统配节点的时候会与 find 逻辑有所不同:'/v2' 下普通子树无匹配节点,回朔到通配子树,查看是否能匹配,这个例子中 '/v2' 下无通配子树,查询不到节点 。值得注意的是回朔逻辑的先后顺序,是先找普通子树再回朔到通配子树还是先查找通配子树再回朔到普通子树是取决于优先级规则的,按照需求必须是先查找普通子树。 -但是我们目前还是缺乏 '/**' 这种通配的表达能力代表了多级通配,可以分析需求得到结论,这种通配符,一定不存在子树,是一种特殊的叶子结点,仅用于 match 逻辑回朔时做特殊判断。继续加点特殊 node 后演化为:
![](/imgs/pixiu/trie-5.png)
好了至此,需求都能满足了。
'/api/**' 等价路径为:
![](https://cdn.nlark.com/yuque/0/2022/png/1333641/1642993180981-51a0df19-bb03-49c8-9128-a6e95dbabfcd.png#crop=0&crop=0&crop=1&crop=1&from=url&id=GFLwD&margin=%5Bobject%20Object%5D&originHeight=1010&originWidth=1676&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
其他逻辑大同小异,match 逻辑回朔再多一级判断,如果一级通配子树也匹配不到结果,则再看一下多级通配子树是否为空(其实留一个标位就可以,为了统一模型好理解,还是用一个子树去描述) +但是我们目前还是缺乏 '/**' 这种通配的表达能力代表了多级通配,可以分析需求得到结论,这种通配符,一定不存在子树,是一种特殊的叶子结点,仅用于 match 逻辑回朔时做特殊判断。继续加点特殊 node 后演化为:
![](/imgs/pixiu/trie-5.png)
好了至此,需求都能满足了。
'/api/**' 等价路径为:
![](/imgs/docs3-v2/dubbo-go-pixiu/dev/trie/1642993180981-51a0df19-bb03-49c8-9128-a6e95dbabfcd.png)
其他逻辑大同小异,match 逻辑回朔再多一级判断,如果一级通配子树也匹配不到结果,则再看一下多级通配子树是否为空(其实留一个标位就可以,为了统一模型好理解,还是用一个子树去描述) 到目前这个版本所有上文提到的能力已经都能有效支撑,回头分析一下时间复杂读。
url 被 '/' 分割出一个一个的段,容易理解在匹配一个url 过程中复杂度是 O(n) n= url 段数。与树中存有的规则数量无关。再分析 n 的范围,n 其实不是一个可以无限大的数字,一部分浏览器甚至约束 url 长度必须小于 2000,按照一个单词长度为 5 来计算,可以大概估计段数最多会在 400 左右,n 如果可以被视为一个常数,那么复杂读可以看作是 O(1)。 diff --git a/content/zh/docs3-v2/dubbo-go-pixiu/user/appendix/http-to-dubbo-default-stragety.md b/content/zh/docs3-v2/dubbo-go-pixiu/user/appendix/http-to-dubbo-default-stragety.md index 22263f73a56d..02cd222007c7 100644 --- a/content/zh/docs3-v2/dubbo-go-pixiu/user/appendix/http-to-dubbo-default-stragety.md +++ b/content/zh/docs3-v2/dubbo-go-pixiu/user/appendix/http-to-dubbo-default-stragety.md @@ -56,7 +56,7 @@ http response 中包含请求的处理状态,返回结果或者调用的错误 #### Http 请求的 URL -格式:[http://host/ {service} / {method](http://host/service/method)} or [https://host/ {service} / {method](https://host/service/method)} +格式:`[http://host/ {service} / {method](http://host/service/method)}` or `[https://host/ {service} / {method](https://host/service/method)}` @@ -275,7 +275,7 @@ Triple 是基于GRPC的,定义在Http2 协议之上 #### Triple 通过 URL 传递调用的服务名和方法名 -格式: [http://host/ {service} / {method](http://host/service/method)} +格式: `[http://host/ {service} / {method](http://host/service/method)}` 我们的规范兼容 Triple 通过http2传递参数的形式,尽量做到dubbo 和 triple 的统一。 diff --git a/content/zh/docs3-v2/dubbo-go-pixiu/user/configurations.md b/content/zh/docs3-v2/dubbo-go-pixiu/user/configurations.md index fe6a5eb1a6aa..f7b77830dac0 100755 --- a/content/zh/docs3-v2/dubbo-go-pixiu/user/configurations.md +++ b/content/zh/docs3-v2/dubbo-go-pixiu/user/configurations.md @@ -52,7 +52,7 @@ static_resources: #### Listener -比如说上述配置就声明了一个监听本地 8883 端口的 HTTP 类型的 Listener,更多 Listener 的配置可以查看 [Listener](/zh-cn/docs/user/listener/http.html)。 +比如说上述配置就声明了一个监听本地 8883 端口的 HTTP 类型的 Listener,更多 Listener 的配置可以查看 [Listener](../listener/http/)。 ``` listeners: @@ -78,7 +78,7 @@ filters: http_filters: ``` -上述配置指明了使用 `dgp.filter.httpconnectionmanager` 这款 NetworkFilter,它能够接收 Http 请求的 `Request` 和 `Response` 进行处理,并且可以配置 Route 路由信息和使用 HttpFilter 对请求进行链式处理。更多的 NetworkFilter 可以查看 [NetworkfFilter文档](/zh-cn/docs/user/networkfilter/http.html) +上述配置指明了使用 `dgp.filter.httpconnectionmanager` 这款 NetworkFilter,它能够接收 Http 请求的 `Request` 和 `Response` 进行处理,并且可以配置 Route 路由信息和使用 HttpFilter 对请求进行链式处理。更多的 NetworkFilter 可以查看 [NetworkfFilter文档](../networkfilter/http/) @@ -138,13 +138,13 @@ route 可以用于对请求进行路由分发,以下面配置为例。具体 ``` 如上配置所示,`httpconnectionmanager` 这个 NetworkFilter 下有一个 HttpFilter chain。其中包括 `dgp.filter.http.dubboproxy` 这一款 HttpFilter。 -它负责将 HTTP 请求转换为 Dubbo 请求,并转发出去。它需要配置一个 Dubbo 集群注册中心的地址信息,指定其为 zookeeper 中间件。其中 `auto_resolve` 则指定使用 HTTP to Dubbo 默认转换协议来进行相关数据转换,具体可以参考[《默认转换协议》](/zh-cn/docs/user/appendix/http-to-dubbo-default-stragety.html)。 +它负责将 HTTP 请求转换为 Dubbo 请求,并转发出去。它需要配置一个 Dubbo 集群注册中心的地址信息,指定其为 zookeeper 中间件。其中 `auto_resolve` 则指定使用 HTTP to Dubbo 默认转换协议来进行相关数据转换,具体可以参考[《默认转换协议》](../appendix/http-to-dubbo-default-stragety/)。 -更多的 HttpFilter 可以查看 [HttpFilter文档](/zh-cn/docs/user/httpfilter/dubbo.html)。 +更多的 HttpFilter 可以查看 [HttpFilter文档](../httpfilter/dubbo/)。 #### Adapter Adapter 代表 Pixiu 和外界元数据中心交互的能力。目前有两款,分别是 `dgp.adapter.dubboregistrycenter` 和 `dgp.adapter.springcloud`,分别代表从 Dubbo 集群注册中心和 Spring Cloud 集群注册中心获取服务实例信息,构建 Pixiu 转发 Http 请求路由规则的。 -更多的 Adapter 可以查看 [Adapter文档](/zh-cn/docs/user/adapter/dubbo.html)。 +更多的 Adapter 可以查看 [Adapter文档](../adapter/dubbo/)。 diff --git a/content/zh/docs3-v2/dubbo-go-pixiu/user/deployment.md b/content/zh/docs3-v2/dubbo-go-pixiu/user/deployment.md index 80c5f7f6c483..f0e5cb24160f 100644 --- a/content/zh/docs3-v2/dubbo-go-pixiu/user/deployment.md +++ b/content/zh/docs3-v2/dubbo-go-pixiu/user/deployment.md @@ -14,7 +14,7 @@ weight: 30 `docker pull phial3/dubbo-go-pixiu:latest` ### 2、按照需求准备pixiu配置 -#### [pixiu配置参数详解](./configurations.md) +#### [pixiu配置参数详解](../configurations/) 准备 `log.yml` 和 `conf.yaml` 配置文件,将这两个配置文件在pixiu启动的时候挂在到本地 @@ -63,7 +63,7 @@ docker run -itd --name dubbo-go-pixiu -p 8883:8883 \ ### 2、配置pixiu -#### [pixiu配置参数详解](./configurations.md) +#### [pixiu配置参数详解](../configurations/) 进入到pixiu的源码目录`cd dubbo-go-pixiu/`,在`dubbo-go-pixiu/configs/`目录下 修改配置文件`conf.yaml`和`log.yml` @@ -76,4 +76,4 @@ docker run -itd --name dubbo-go-pixiu -p 8883:8883 \ 在当前目录下`make run` 可根据你当前的配置直接启动pixiu服务 -[运行示例参考](./quickstart.md) +[运行示例参考](../quickstart/) diff --git a/content/zh/docs3-v2/dubbo-go-pixiu/user/listener/http.md b/content/zh/docs3-v2/dubbo-go-pixiu/user/listener/http.md index 38ac73c3a315..e5d450a8194d 100644 --- a/content/zh/docs3-v2/dubbo-go-pixiu/user/listener/http.md +++ b/content/zh/docs3-v2/dubbo-go-pixiu/user/listener/http.md @@ -22,8 +22,8 @@ static_resources: Http Listener 的具体实现可以参考 `pkg/listener/http`。 有关 HTTP Listener 的案例,可以参考: -- HTTP to Dubbo 请求的转换,[案例](/zh-cn/docs/user/samples/http_to_dubbo.html) -- HTTP 请求代理,[案例](/zh-cn/docs/user/samples/http_proxy.html) +- HTTP to Dubbo 请求的转换,[案例](/zh/docs3-v2/dubbo-go-pixiu/user/samples/http_to_dubbo/) +- HTTP 请求代理,[案例](/zh/docs3-v2/dubbo-go-pixiu/user/samples/http_proxy/) 目前也支持 HTTPS 协议。可以将 `protocol_type` 修改为 `HTTPS`。并且添加 `domains` 和 `certs_dir` 来指定域名和 cert 文件目录。 @@ -40,7 +40,7 @@ Http Listener 的具体实现可以参考 `pkg/listener/http`。 certs_dir: $PROJECT_DIR/cert ``` -具体案例可以查看 [案例](/zh-cn/docs/user/samples/https.html) +具体案例可以查看 [案例](/zh/docs3-v2/dubbo-go-pixiu/user/samples/https/) diff --git a/content/zh/docs3-v2/erlang-sdk/quick-start.md b/content/zh/docs3-v2/erlang-sdk/quick-start.md index d57c4221027b..930e2b3a31a1 100644 --- a/content/zh/docs3-v2/erlang-sdk/quick-start.md +++ b/content/zh/docs3-v2/erlang-sdk/quick-start.md @@ -34,7 +34,7 @@ into the project's `apps` directory. ``` ## 消费者配置 -Please reference [Reference Config](./reference.md) +Please reference [Reference Config](../reference/) ## Init dubbolib in your project It is need you diff --git a/content/zh/docs3-v2/golang-sdk/concept/_index.md b/content/zh/docs3-v2/golang-sdk/concept/_index.md index 271fab692907..61f0c9305978 100644 --- a/content/zh/docs3-v2/golang-sdk/concept/_index.md +++ b/content/zh/docs3-v2/golang-sdk/concept/_index.md @@ -8,7 +8,7 @@ weight: 1 # Dubbo-go 概念 -![](https://github.com/dubbogo/dubbogo.github.io/blob/master/docs/zh-cn/pic/3.0/dubbogo.png?raw=true) +![](/imgs/docs3-v2/golang-sdk/concept/dubbogo.png) Apache/Dubbo-go ([github.com/apache/dubbo-go](https://github.com/apache/dubbo-go)) diff --git a/content/zh/docs3-v2/golang-sdk/concept/config/basic_concept.md b/content/zh/docs3-v2/golang-sdk/concept/config/basic_concept.md index 41c96867af96..6474a81f7dda 100644 --- a/content/zh/docs3-v2/golang-sdk/concept/config/basic_concept.md +++ b/content/zh/docs3-v2/golang-sdk/concept/config/basic_concept.md @@ -28,11 +28,11 @@ yaml 开发者可以使用 API 的形式构建配置,从而启动框架。该方法较适合 dubbo-go 作为第三方组件引入的情况。 -详情见任务[【配置API】](../../tasks/config/config_api/) +详情见任务[【配置API】](../../../tasks/config/config_api/) ## 3. 配置中心 开发者可以将配置放置在配置中心,从而便于配置的管理和修改。 -详情见任务[【远程配置】](../../tasks/config/remote_config/) +详情见任务[【远程配置】](../../../tasks/config/remote_config/) diff --git a/content/zh/docs3-v2/golang-sdk/concept/mesh/proxyless_service_mesh.md b/content/zh/docs3-v2/golang-sdk/concept/mesh/proxyless_service_mesh.md index 63d7cd64e1dc..abef8c1dc67c 100644 --- a/content/zh/docs3-v2/golang-sdk/concept/mesh/proxyless_service_mesh.md +++ b/content/zh/docs3-v2/golang-sdk/concept/mesh/proxyless_service_mesh.md @@ -8,9 +8,9 @@ keywords: 无代理服务网格 ### 1.1 Service Mesh 简析 -Istio 是当今最流行的开源服务网格。它由控制平面和数据平面构成,其架构如下,图片摘自 [istio官网](istio.io) +Istio 是当今最流行的开源服务网格。它由控制平面和数据平面构成,其架构如下,图片摘自 [istio官网](https://istio.io/) -![使用 Istio 后](https://istio.io/latest/img/service-mesh.svg) +![使用 Istio 后](/imgs/docs3-v2/golang-sdk/concept/mesh/proxyless_service_mesh/service-mesh.svg) 位于图中下半部分的控制平面负责配置、服务信息、证书等资源的下发。位于上半部分的数据平面关注业务之间的通信流量;传统服务网格通过代理的方式拦截所有的业务网络流量,代理需要感知到控制平面下发的配置资源,从而按照要求控制网络流量的走向。 @@ -26,7 +26,7 @@ Service 为服务治理提供了一个很好的思路,将基础架构与业务 无代理服务网格,是近几年提出的一个新的概念,isito、gRPC、brpc 等开源社区都在这一方向进行了探索和实践。无代理服务网格框架以 SDK 的形式被业务应用引入,负责服务之间的通信、治理。来自控制平面的配置直接下发至服务框架,由服务框架代替上述 sidecar 的功能。 -![](https://ata2-img.oss-cn-zhangjiakou.aliyuncs.com/neweditor/894c0e52-9d34-4490-b49b-24973ef4aabc.png) +![](/imgs/docs3-v2/golang-sdk/concept/mesh/proxyless_service_mesh/894c0e52-9d34-4490-b49b-24973ef4aabc.png) 服务框架(SDK)的主要能力可以概括为以下三点: @@ -58,7 +58,7 @@ Service 为服务治理提供了一个很好的思路,将基础架构与业务 Dubbo-go 本身拥有可扩展的服务注册发现能力,我们为 service mesh 场景适配了注册中心的实现。开发人员可以将 dubbo-go 应用的信息注册在 istiod 控制平面上。客户端应用可以查询已经注册的接口数据,完成服务发现过程。 -![](https://ata2-img.oss-cn-zhangjiakou.aliyuncs.com/neweditor/454d1e31-0be3-41fe-97ec-f52673ebf74f.png) +![](/imgs/docs3-v2/golang-sdk/concept/mesh/proxyless_service_mesh/454d1e31-0be3-41fe-97ec-f52673ebf74f.png) 1. 开发人员使用 dubbogo-cli 工具创建应用模板,发布 Deployment / Service 到集群中。 2. 服务端拉取全量 CDS 和 EDS ,比对本机IP,拿到当前应用的的主机名。并将本应用的所有接口名到主机名的映射,注册在Istiod上面。 @@ -75,7 +75,7 @@ Dubbo-go 拥有路由能力,通过 xds 协议客户端从 istiod 订阅路由 dubbogo-cli 是 Apach/dubbo-go 生态的子项目,为开发者提供便利的应用模板创建、工具安装、接口调试等功能,以提高用户的研发效率。 -详情可以参阅 [【dubbogo-cli 工具】](../../refer/use_dubbogo_cli/) +详情可以参阅 [【dubbogo-cli 工具】](../../../refer/use_dubbogo_cli/) ## 3. Dubbo-go-Mesh 的优势 @@ -108,4 +108,4 @@ Dubbo-go 是一个横跨多个生态的服务框架。 ## 4. 任务 -您可以跟随[【Dubbo-go Mesh 任务】](../../tasks/mesh/build/)来体验 Dubbo-go 服务网格能力。 +您可以跟随[【Dubbo-go Mesh 任务】](../../../tasks/mesh/build/)来体验 Dubbo-go 服务网格能力。 diff --git a/content/zh/docs3-v2/golang-sdk/concept/more/3.0_feature.md b/content/zh/docs3-v2/golang-sdk/concept/more/3.0_feature.md index f17fd2da2e86..30a7f75f459e 100644 --- a/content/zh/docs3-v2/golang-sdk/concept/more/3.0_feature.md +++ b/content/zh/docs3-v2/golang-sdk/concept/more/3.0_feature.md @@ -10,7 +10,7 @@ keywords: dubbo-go 3.0 新特性 ### 1.1 概述 -![](https://github.com/dubbogo/dubbogo.github.io/blob/master/docs/zh-cn/pic/3.0/tri.png?raw=true) +![](/imgs/docs3-v2/golang-sdk/concept/more/3.0_feature/tri.png) - 通信层面 @@ -35,7 +35,7 @@ keywords: dubbo-go 3.0 新特性 ### 2.1 简介 -![](https://github.com/dubbogo/dubbogo.github.io/blob/master/docs/zh-cn/pic/3.0/disc.png?raw=true) +![](/imgs/docs3-v2/golang-sdk/concept/more/3.0_feature/disc.png) 在服务注册阶段,服务端实例将应用级别的注册信息,主要包含从应用名到实例IP的映射注册到注册中心。在服务发现阶段,客户端实例,通过注册中心获取到需要请求的服务实例IP。进入服务自省阶段,服务自省过程为通过应用信息获取接口信息的过程。如上图,包含两种模式: @@ -56,11 +56,11 @@ keywords: dubbo-go 3.0 新特性 virtual_service.yaml -![](https://github.com/dubbogo/dubbogo.github.io/blob/master/docs/zh-cn/pic/3.0/virtual_service.png?raw=true) +![](/imgs/docs3-v2/golang-sdk/concept/more/3.0_feature/virtual_service.png) 以及 dist_rule.yml -![](https://github.com/dubbogo/dubbogo.github.io/blob/master/docs/zh-cn/pic/3.0/dest_rule.png?raw=true) +![](/imgs/docs3-v2/golang-sdk/concept/more/3.0_feature/dest_rule.png) 框架可根据路由文件针对特定的请求进行流量转发。 diff --git a/content/zh/docs3-v2/golang-sdk/concept/more/app_and_interface.md b/content/zh/docs3-v2/golang-sdk/concept/more/app_and_interface.md index a887becc4c7d..dcc1ccadcfa8 100644 --- a/content/zh/docs3-v2/golang-sdk/concept/more/app_and_interface.md +++ b/content/zh/docs3-v2/golang-sdk/concept/more/app_and_interface.md @@ -11,7 +11,7 @@ Dubbogo 服务层级为两个级别:分别是应用级别(App Level)和接口 如下图所示,可以看到,应用级别的组件以浅红色标注,接口级别的组件以浅蓝色标注: -![](https://github.com/dubbogo/dubbogo.github.io/blob/master/docs/zh-cn/pic/3.0/dubbogo-concept.png?raw=true) +![](/imgs/docs3-v2/golang-sdk/concept/more/app_and_interface/dubbogo-concept.png) ## 1. 应用级别组件 diff --git a/content/zh/docs3-v2/golang-sdk/concept/more/architecture.md b/content/zh/docs3-v2/golang-sdk/concept/more/architecture.md index 27edf502ac01..238029a0a95c 100644 --- a/content/zh/docs3-v2/golang-sdk/concept/more/architecture.md +++ b/content/zh/docs3-v2/golang-sdk/concept/more/architecture.md @@ -4,7 +4,7 @@ title: 架构 keywords: 架构 --- -![architecture](https://github.com/dubbogo/dubbogo.github.io/blob/master/img/architecture.png?raw=true) +![architecture](/imgs/docs3-v2/golang-sdk/concept/more/architecture/architecture.png) #### 节点说明 diff --git a/content/zh/docs3-v2/golang-sdk/concept/rpc/generic.md b/content/zh/docs3-v2/golang-sdk/concept/rpc/generic.md index fda27231b53a..1e78d06cb29f 100644 --- a/content/zh/docs3-v2/golang-sdk/concept/rpc/generic.md +++ b/content/zh/docs3-v2/golang-sdk/concept/rpc/generic.md @@ -10,7 +10,7 @@ keywords: 泛化调用 为了便于理解,这篇文档中以网关使用场景介绍泛化调用。我们先来考虑普通调用(非泛化调用)。下图包含了 consumer 和 provider 两个关键角色(后文中用 endpoint 代表一个 consumer 或一个 provider),各自都有一份关于 org.apache.dubbo.sample.User 接口的定义。假定在调用行为中需要使用 org.apache.dubbo.sample.User 接口。 -![img](https://cdn.nlark.com/yuque/0/2021/png/291978/1631941941270-86ce9845-5a88-4cb5-8c8a-da8ae7eeb4d5.png) +![img](/imgs/docs3-v2/golang-sdk/concept/rpc/generic/1631941941270-86ce9845-5a88-4cb5-8c8a-da8ae7eeb4d5.png) RPC 需要借助网络介质传输,因此数据不能以 go struct 形式传输,而必须以二进制形式传输。这就要求 consumer 端在传输前,需要将实现 org.apache.dubbo.sample.User 接口的结构体序列化为二进制格式。同样的,对于 provider 端,需要将二进制数据反序列化为结构体信息。**总之,普通调用要求接口信息在每一个 endpoint 必须有相同的定义,这样才能保证数据序列化和反序列化的结果与预期一致**。 @@ -20,7 +20,7 @@ RPC 需要借助网络介质传输,因此数据不能以 go struct 形式传 泛化调用本质上就是把复杂结构转化为通用结构,这里说的通用结构是指 map、string 等,网关是可以顺利解析并传递这些通用结构的。 -![img](https://cdn.nlark.com/yuque/0/2021/png/291978/1632207075184-25939db4-f384-452e-a0b8-e1deff7971de.png) +![img](/imgs/docs3-v2/golang-sdk/concept/rpc/generic/1632207075184-25939db4-f384-452e-a0b8-e1deff7971de.png) 目前,Dubbo-go v3 只支持 Map 泛化方式(default)。我们以 User 接口为例,其定义如下所示。 @@ -86,7 +86,7 @@ Consumer 端的 Filter 会自动根据 Dubbo URL 携带的配置自动将普通 ### 手动泛化调用 -手动泛化调用发起的请求不经过 filter,所以需要 consumer 端显式地发起泛化调用,典型应用场景是测试。在 [dubbo-go-samples](https://github.com/apache/dubbo-go-samples/tree/3.0/generic) 中,为了便于测试都是采用手动调用的方式。 +手动泛化调用发起的请求不经过 filter,所以需要 consumer 端显式地发起泛化调用,典型应用场景是测试。在 [dubbo-go-samples](https://github.com/apache/dubbo-go-samples/tree/master/generic) 中,为了便于测试都是采用手动调用的方式。 泛化调用不需要创建配置文件(dubbogo.yaml),但是需要在代码中手动配置注册中心、reference 等信息,初始化方法被封装到 newRefConf 方法中,如下所示。 @@ -152,4 +152,4 @@ GenericService 的 Invoke 方法接收四个参数,分别是: 相关阅读:[【Dubbo-go 服务代理模型】](https://blog.csdn.net/weixin_39860915/article/details/122738548) -相关任务[【泛化调用】](../../tasks/rpc/generic/) +相关任务[【泛化调用】](../../../tasks/rpc/generic/) diff --git a/content/zh/docs3-v2/golang-sdk/concept/rpc/multi_language.md b/content/zh/docs3-v2/golang-sdk/concept/rpc/multi_language.md index 2d3cb0bc830e..9d104ef80daf 100644 --- a/content/zh/docs3-v2/golang-sdk/concept/rpc/multi_language.md +++ b/content/zh/docs3-v2/golang-sdk/concept/rpc/multi_language.md @@ -5,7 +5,7 @@ keywords: 多语言 RPC --- -![](https://dubbogo.github.io/img/dubbogo-3.0-invocation.png) +![](/imgs/docs3-v2/golang-sdk/concept/rpc/multi_language/dubbogo-3.0-invocation.png) ## 跨语言调用 @@ -13,8 +13,8 @@ keywords: 多语言 RPC 在多语言场景中,跨语言调用能力就显得十分重要。 -跨语言能力本质上是 [【网络协议】](./protocol.htlm) 提供的能力。如何方便地让用户使用需要的网络协议、针对合适的跨语言场景进行开发、享受 Dubbo 生态的服务治理能力,是 Dubbo-go 服务框架所关心的。 +跨语言能力本质上是 [【网络协议】](../protocol/) 提供的能力。如何方便地让用户使用需要的网络协议、针对合适的跨语言场景进行开发、享受 Dubbo 生态的服务治理能力,是 Dubbo-go 服务框架所关心的。 ## 跨生态 -Dubbo-go 服务框架提供了跨生态的能力,开发人员可以使用 Dubbo-go 以及其[生态项目](../../ecology/ecology/)建立 HTTP/前端服务、Dubbo/Spring 应用、gRPC 生态应用之间的联系。 +Dubbo-go 服务框架提供了跨生态的能力,开发人员可以使用 Dubbo-go 以及其[生态项目](../../../refer/ecology/)建立 HTTP/前端服务、Dubbo/Spring 应用、gRPC 生态应用之间的联系。 diff --git a/content/zh/docs3-v2/golang-sdk/concept/service_management/_index.md b/content/zh/docs3-v2/golang-sdk/concept/service_management/_index.md index 941fb9744154..c76fb41dc0f5 100644 --- a/content/zh/docs3-v2/golang-sdk/concept/service_management/_index.md +++ b/content/zh/docs3-v2/golang-sdk/concept/service_management/_index.md @@ -7,8 +7,6 @@ weight: 3 # Dubbo-go 概念 -![](../../pic/3.0/dubbogo.png) - Apache/Dubbo-go ([github.com/apache/dubbo-go](https://github.com/apache/dubbo-go)) 是一款分布式 RPC 框架;是 Apache/Dubbo 的 Go 语言实现。旨在为开发者提供便利的微服务应用开发体验。 diff --git a/content/zh/docs3-v2/golang-sdk/concept/service_management/adaptive_lb.md b/content/zh/docs3-v2/golang-sdk/concept/service_management/adaptive_lb.md index c273ac19212c..a9bbded89e05 100644 --- a/content/zh/docs3-v2/golang-sdk/concept/service_management/adaptive_lb.md +++ b/content/zh/docs3-v2/golang-sdk/concept/service_management/adaptive_lb.md @@ -18,7 +18,7 @@ description: 柔性负载均衡 - TPS 从服务提供者的角度反映系统利用率。在系统压力未饱和前,请求数越大则系统利用率越高,但是进一步加大请求量直至系统过饱和后,出现过载的问题,导致整体效率呈下降趋势。 - 响应时间是从服务调用者的角度反映系统性能。在系统压力未饱和前,响应时间与请求数成线性增长的关系,但是进一步加大请求量直至系统过饱和后,响应时间与请求数成指数级增长。 -![img](https://dubbogo.github.io/img/adaptive.png) +![img](/imgs/docs3-v2/golang-sdk/samples/adaptive-service/adaptive.png) 柔性服务则在调用过程中收集 diff --git a/content/zh/docs3-v2/golang-sdk/concept/service_management/aop_and_extension.md b/content/zh/docs3-v2/golang-sdk/concept/service_management/aop_and_extension.md index 0cfad72de0d4..48bff4552b67 100644 --- a/content/zh/docs3-v2/golang-sdk/concept/service_management/aop_and_extension.md +++ b/content/zh/docs3-v2/golang-sdk/concept/service_management/aop_and_extension.md @@ -99,7 +99,7 @@ import ( 在上述介绍的基础之上,开发人员可以效仿内置模块,编写自定义扩展组件。 -可参考任务[【自定义服务调用中间件】](../../tasks/service_management/aop/),该例子以Filter 接口为例,基于面向切面编程的思路,提供给用户介入调用链路进行过滤的能力。 +可参考任务[【自定义服务调用中间件】](../../../tasks/service_management/aop/),该例子以Filter 接口为例,基于面向切面编程的思路,提供给用户介入调用链路进行过滤的能力。 ## 4. 面向切面编程的设计(AOP) diff --git a/content/zh/docs3-v2/golang-sdk/concept/service_management/registry.md b/content/zh/docs3-v2/golang-sdk/concept/service_management/registry.md index 2fd427840caf..c72ab6df53b4 100644 --- a/content/zh/docs3-v2/golang-sdk/concept/service_management/registry.md +++ b/content/zh/docs3-v2/golang-sdk/concept/service_management/registry.md @@ -13,9 +13,9 @@ description: 服务注册发现 服务端注册接口信息和到自身地址到注册中心,客户端从注册中心读取和订阅需要调用的地址列表。整个架构如图所示: -![](https://dubbo.apache.org/imgs/architecture.png) +![](/imgs/architecture.png) -关于 Dubbo 服务发现细节,详情可参考 [Dubbo 官网的概念介绍](https://dubbo.apache.org/zh/docs/concepts/service-discovery/) +关于 Dubbo 服务发现细节,详情可参考 [Dubbo 官网的概念介绍](/zh/docs/concepts/service-discovery/) ## 2. 概念 diff --git a/content/zh/docs3-v2/golang-sdk/samples/adaptive-service.md b/content/zh/docs3-v2/golang-sdk/samples/adaptive-service.md index 7d15f61873fd..6a567a64d7b7 100644 --- a/content/zh/docs3-v2/golang-sdk/samples/adaptive-service.md +++ b/content/zh/docs3-v2/golang-sdk/samples/adaptive-service.md @@ -15,7 +15,7 @@ description: dubbogo 3.0 柔性服务 - TPS 从服务提供者的角度反映系统利用率。在系统压力未饱和前,请求数越大则系统利用率越高,但是进一步加大请求量直至系统过饱和后,出现过载的问题,导致整体效率呈下降趋势。 - 响应时间是从服务调用者的角度反映系统性能。在系统压力未饱和前,响应时间与请求数成线性增长的关系,但是进一步加大请求量直至系统过饱和后,响应时间与请求数成指数级增长。 -![img](https://dubbogo.github.io/img/adaptive.png) +![img](/imgs/docs3-v2/golang-sdk/samples/adaptive-service/adaptive.png) 柔性服务则在调用过程中收集 @@ -25,4 +25,4 @@ description: dubbogo 3.0 柔性服务 服务柔性将在之后的迭代中持续优化,追求与 Dubbo 社区共同探索出最佳实践。 -下一章: [【使用 Pixiu 暴露 Dubbo-go 服务】](./pixiu-nacos-triple/) \ No newline at end of file +下一章: [【使用 Pixiu 暴露 Dubbo-go 服务】](../pixiu-nacos-triple/) \ No newline at end of file diff --git a/content/zh/docs3-v2/golang-sdk/samples/config-center-dynamic.md b/content/zh/docs3-v2/golang-sdk/samples/config-center-dynamic.md index 5a1fad2c4922..0cfde8955143 100644 --- a/content/zh/docs3-v2/golang-sdk/samples/config-center-dynamic.md +++ b/content/zh/docs3-v2/golang-sdk/samples/config-center-dynamic.md @@ -138,7 +138,7 @@ func (l listener) Process(event *config_center.ConfigChangeEvent) { ``` -当然,以 API 的形式来启动框架时,可以直接以API的形式来启动框架。参考基本概念模块的 [Dubbogo 框架配置](../concept/configuration/) +当然,以 API 的形式来启动框架时,可以直接以API的形式来启动框架。参考基本概念模块的 [Dubbogo 框架配置](../../concept/config/) ## 4. Dubbogo 配置热更新 @@ -148,5 +148,5 @@ func (l listener) Process(event *config_center.ConfigChangeEvent) { -下一章: [【Filter】](./custom-filter/) +下一章: [【Filter】](../custom-filter/) diff --git a/content/zh/docs3-v2/golang-sdk/samples/custom-filter.md b/content/zh/docs3-v2/golang-sdk/samples/custom-filter.md index 63e870b8e7a3..57890249054b 100644 --- a/content/zh/docs3-v2/golang-sdk/samples/custom-filter.md +++ b/content/zh/docs3-v2/golang-sdk/samples/custom-filter.md @@ -112,5 +112,5 @@ func (f *MyClientFilter) OnResponse(ctx context.Context, result protocol.Result, -下一章: [【注册中心配置】](./registry/) +下一章: [【注册中心配置】](../registry/) diff --git a/content/zh/docs3-v2/golang-sdk/samples/custom-logger.md b/content/zh/docs3-v2/golang-sdk/samples/custom-logger.md index 2165f891ad14..d3d5fa7d00de 100644 --- a/content/zh/docs3-v2/golang-sdk/samples/custom-logger.md +++ b/content/zh/docs3-v2/golang-sdk/samples/custom-logger.md @@ -84,5 +84,5 @@ logger.SetLogger(myLogger) // 在 main 函数中设置自定义logger - 日志API不可以在Init 阶段使用,否则可能会发生意料之外的问题。 -下一章: [【Metrics 数据上报】](./metrics/) +下一章: [【Metrics 数据上报】](../metrics/) diff --git a/content/zh/docs3-v2/golang-sdk/samples/exception_response.md b/content/zh/docs3-v2/golang-sdk/samples/exception_response.md index e61250f0e059..67cb5dbfc758 100644 --- a/content/zh/docs3-v2/golang-sdk/samples/exception_response.md +++ b/content/zh/docs3-v2/golang-sdk/samples/exception_response.md @@ -114,4 +114,4 @@ dubbo.apache.org/dubbo-go/v3/common/proxy/proxy_factory.(*ProxyInvoker).Invoke 可看到报错信息和堆栈 -下一章: [【日志】](./custom-logger/) \ No newline at end of file +下一章: [【日志】](../custom-logger/) \ No newline at end of file diff --git a/content/zh/docs3-v2/golang-sdk/samples/go_java_interactive.md b/content/zh/docs3-v2/golang-sdk/samples/go_java_interactive.md index 9d1075296d9c..ebabfbae89bb 100644 --- a/content/zh/docs3-v2/golang-sdk/samples/go_java_interactive.md +++ b/content/zh/docs3-v2/golang-sdk/samples/go_java_interactive.md @@ -153,7 +153,7 @@ JDK 8,Golang >= 1.15,Dubbo 3.0.2,zookeeper 启动, #### Java-Server 启动 -1. 定义 Java 的 PB 文件,可参考 [Dubbo 快速开始](https://dubbo.apache.org/zh/docs/quick-start/) +1. 定义 Java 的 PB 文件,可参考 [Dubbo 快速开始](/zh/docs/quick-start/) ```protobuf syntax = "proto3"; @@ -443,13 +443,13 @@ public class ApiConsumer { ## 2. 基于 Dubbo 协议互通 (Hessian2序列化) -参考 [dubbo-go-samples/rpc/dubbo](https://github.com/apache/dubbo-go-samples/tree/rpc/dubbo) +参考 [dubbo-go-samples/rpc/dubbo](https://github.com/apache/dubbo-go-samples/tree/master/rpc/dubbo) ### 2.1 Go-Client -> Java-Server #### Java-Server 启动 -1. 定义 Java 接口、参数和返回值,可参考 [Dubbo 快速开始](https://dubbo.apache.org/zh/docs/quick-start/) +1. 定义 Java 接口、参数和返回值,可参考 [Dubbo 快速开始](/zh/docs/quick-start/) ```java package org.apache.dubbo; diff --git a/content/zh/docs3-v2/golang-sdk/samples/grpc_cli.md b/content/zh/docs3-v2/golang-sdk/samples/grpc_cli.md index b18cde10a172..e493ccdbcfd8 100644 --- a/content/zh/docs3-v2/golang-sdk/samples/grpc_cli.md +++ b/content/zh/docs3-v2/golang-sdk/samples/grpc_cli.md @@ -16,6 +16,6 @@ Triple 协议兼容 gRPC 生态,并默认开启 gRPC 反射服务,因此可 ## 3. 例子 -参考 [3.0 快速开始](https://dubbogo.github.io/zh-cn/docs/user/quickstart/3.0/quickstart_triple/) +参考 [3.0 快速开始](../../quickstart/quickstart_triple/) diff --git a/content/zh/docs3-v2/golang-sdk/samples/pixiu-nacos-triple.md b/content/zh/docs3-v2/golang-sdk/samples/pixiu-nacos-triple.md index e20304c39cac..ba349859b12e 100644 --- a/content/zh/docs3-v2/golang-sdk/samples/pixiu-nacos-triple.md +++ b/content/zh/docs3-v2/golang-sdk/samples/pixiu-nacos-triple.md @@ -6,7 +6,7 @@ type: docs Dubbo-go-pixiu 网关支持调用 GO/Java 的 Dubbo 集群。在 Dubbo-go 3.0 的场景下,我们可以通过 Pixiu 网关,在集群外以 HTTP 协议请求 pixiu 网关,在网关层进行协议转换,进一步调用集群内的Dubbo-go 服务。 -![img](https://dubbogo.github.io/img/triple-pixiu.png) +![img](/imgs/docs3-v2/golang-sdk/samples/pixiu-nacos-triple/triple-pixiu.png) 用户调用 Dubbo-go 服务的 path 为http://$(app_name)/$(service_name)/$(method) diff --git a/content/zh/docs3-v2/golang-sdk/samples/samples_repo.md b/content/zh/docs3-v2/golang-sdk/samples/samples_repo.md index 1530a4119a28..deb3cfec0b8a 100644 --- a/content/zh/docs3-v2/golang-sdk/samples/samples_repo.md +++ b/content/zh/docs3-v2/golang-sdk/samples/samples_repo.md @@ -136,7 +136,7 @@ description: dubbo-go 3.0 示例仓库 一旦在 GoLand 中打开本项目,可以发现,在 "Run Configuration" 弹出菜单中已经存在了一系列事先配置好了的用来运行相关服务提供方和调用方的选项,例如:"helloworld-go-server" 和 "helloworld-go-client"。 -可以选择其中的任意一个快速启动相关示例。当然在运行之前,假设需要的注册中心已经事先启动了,不然用例将会失败。您可以选择手动自行启动的方式,也可以利用工程中提供的 "docker-compose.yml" 在启动注册中心的 docker 实例。选择后者的话,可以参考[第三种方式](#3-manually-run-in-ide)中的细节。 +可以选择其中的任意一个快速启动相关示例。当然在运行之前,假设需要的注册中心已经事先启动了,不然用例将会失败。您可以选择手动自行启动的方式,也可以利用工程中提供的 "docker-compose.yml" 在启动注册中心的 docker 实例。 ### 2.3.在 IDE 中手工运行 diff --git a/content/zh/docs3-v2/golang-sdk/tasks/mesh/app.md b/content/zh/docs3-v2/golang-sdk/tasks/mesh/app.md index c1f75846e2b7..0e24f8d977fa 100644 --- a/content/zh/docs3-v2/golang-sdk/tasks/mesh/app.md +++ b/content/zh/docs3-v2/golang-sdk/tasks/mesh/app.md @@ -10,7 +10,7 @@ weight: 2 - dubbo-go cli 工具和依赖工具已安装、grpc_cli (如需本地调试)。 - docker、helm、kubectl 环境已安装。(arm 机器需支持 docker buildx) -- [任务【istio 环境部署】](./build/) 已完成 +- [任务【istio 环境部署】](../build/) 已完成 ## 2. 开发 server 端 Dubbo-go 应用 @@ -237,7 +237,7 @@ Forwarding from 127.0.0.1:20000 -> 20000 Forwarding from [::1]:20000 -> 20000 ``` -使用 grpc_cli 调试集群内的应用,参考任务[【使用 grpc_cli 调试 Dubbo-go 应用】](../debug/grpc_cli/) +使用 grpc_cli 调试集群内的应用,参考任务[【使用 grpc_cli 调试 Dubbo-go 应用】](../../debug/grpc_cli/) ```bash $ grpc_cli ls localhost:20000 -l diff --git a/content/zh/docs3-v2/golang-sdk/tasks/mesh/traffic_management.md b/content/zh/docs3-v2/golang-sdk/tasks/mesh/traffic_management.md index 4da1a1090979..95884911db12 100644 --- a/content/zh/docs3-v2/golang-sdk/tasks/mesh/traffic_management.md +++ b/content/zh/docs3-v2/golang-sdk/tasks/mesh/traffic_management.md @@ -4,7 +4,7 @@ type: docs weight: 3 --- -在本节中,我们将延续上一个任务[【在 Istio 环境部署 Dubbo-go 应用】](./app/)。 +在本节中,我们将延续上一个任务[【在 Istio 环境部署 Dubbo-go 应用】](../app/)。 在之前的任务中,我们在集群中部署了一组 Dubbo-go Server和 Client 端应用,验证了服务发现和调用成功。在本节中,我们将创建新版本的 Server 端应用。通过配置 VirtualService 和 DestinationRule ,实现路由管理,和流量转移能力 @@ -12,7 +12,7 @@ weight: 3 - dubbo-go cli 工具和依赖工具已安装、grpc_cli (如需本地调试)。 - docker、helm、kubectl 环境已安装。(arm 机器需支持 docker buildx) -- 任务[【在 Istio 环境部署 Dubbo-go 应用】](./app/)已完成 +- 任务[【在 Istio 环境部署 Dubbo-go 应用】](../app/)已完成 ## 2. 开发多版本Dubbo-go 应用。 diff --git a/content/zh/docs3-v2/golang-sdk/tasks/pixiu/http_triple.md b/content/zh/docs3-v2/golang-sdk/tasks/pixiu/http_triple.md index 673dbeae94eb..fa64e5a553d3 100644 --- a/content/zh/docs3-v2/golang-sdk/tasks/pixiu/http_triple.md +++ b/content/zh/docs3-v2/golang-sdk/tasks/pixiu/http_triple.md @@ -13,7 +13,7 @@ weight: 1 Dubbo-go-pixiu 网关支持调用 GO/Java 的 Dubbo 集群。在 Dubbo-go 3.0 的场景下,我们可以通过 Pixiu 网关,在集群外以 HTTP 协议请求 pixiu 网关,在网关层进行协议转换,进一步调用集群内的Dubbo-go 服务。 -![image.png](https://raw.githubusercontent.com/dubbogo/dubbogo.github.io/master/img/triple-pixiu.png) +![image.png](/imgs/docs3-v2/golang-sdk/tasks/pixiu/http_triple/triple-pixiu.png) 用户调用 Dubbo-go 服务的 path 为http://$(app_name)/$(service_name)/$(method)。 diff --git a/content/zh/docs3-v2/golang-sdk/tasks/rpc/call_java.md b/content/zh/docs3-v2/golang-sdk/tasks/rpc/call_java.md index 31271fd995b0..b8f5cf756fad 100644 --- a/content/zh/docs3-v2/golang-sdk/tasks/rpc/call_java.md +++ b/content/zh/docs3-v2/golang-sdk/tasks/rpc/call_java.md @@ -153,7 +153,7 @@ JDK 8,Golang >= 1.15,Dubbo 3.0.2,zookeeper 启动, #### Java-Server 启动 -1. 定义 Java 的 PB 文件,可参考 [Dubbo 快速开始](https://dubbo.apache.org/zh/docs/quick-start/) +1. 定义 Java 的 PB 文件,可参考 [Dubbo 快速开始](/zh/docs/quick-start/) ```protobuf syntax = "proto3"; @@ -442,13 +442,13 @@ public class ApiConsumer { ## 2. 基于 Dubbo 协议互通 (Hessian2序列化) -参考 [dubbo-go-samples/rpc/dubbo](https://github.com/apache/dubbo-go-samples/tree/rpc/dubbo) +参考 [dubbo-go-samples/rpc/dubbo](https://github.com/apache/dubbo-go-samples/tree/master/rpc/dubbo) ### 2.1 Go-Client -> Java-Server #### Java-Server 启动 -1. 定义 Java 接口、参数和返回值,可参考 [Dubbo 快速开始](https://dubbo.apache.org/zh/docs/quick-start/) +1. 定义 Java 接口、参数和返回值,可参考 [Dubbo 快速开始](/zh/docs/quick-start/) ```java package org.apache.dubbo; diff --git a/content/zh/docs3-v2/golang-sdk/tasks/rpc/choose_protocol.md b/content/zh/docs3-v2/golang-sdk/tasks/rpc/choose_protocol.md index 8b93644e9e6f..f35fd51b81f9 100644 --- a/content/zh/docs3-v2/golang-sdk/tasks/rpc/choose_protocol.md +++ b/content/zh/docs3-v2/golang-sdk/tasks/rpc/choose_protocol.md @@ -230,4 +230,4 @@ response result: &{ID:1 Name:laurence Age:22 Time:2021-11-12 17:59:39.185 +0800 调用成功 -更多samples可以参阅 [【dubbo-go-samples】](../../samples/samples_repo/) +更多samples可以参阅 [【dubbo-go-samples】](../../../samples/samples_repo/) diff --git a/content/zh/docs3-v2/golang-sdk/tasks/service_management/aop.md b/content/zh/docs3-v2/golang-sdk/tasks/service_management/aop.md index 685738e42248..169d9de1c4c0 100644 --- a/content/zh/docs3-v2/golang-sdk/tasks/service_management/aop.md +++ b/content/zh/docs3-v2/golang-sdk/tasks/service_management/aop.md @@ -9,7 +9,7 @@ weight: 1 ## 1. 准备工作 - dubbo-go cli 工具和依赖工具已安装 -- 阅读[【组件加载与可扩展性】](../../concept/service_management/aop_and_extension/) +- 阅读[【组件加载与可扩展性】](../../../concept/service_management/aop_and_extension/) - 创建一个新的 demo 应用 ## 2. 配置指定 Filter diff --git a/content/zh/docs3-v2/java-sdk/advanced-features-and-usage/others/dubbo-kubernetes-probe.md b/content/zh/docs3-v2/java-sdk/advanced-features-and-usage/others/dubbo-kubernetes-probe.md index 60bd9b8a2e63..582558f497a6 100644 --- a/content/zh/docs3-v2/java-sdk/advanced-features-and-usage/others/dubbo-kubernetes-probe.md +++ b/content/zh/docs3-v2/java-sdk/advanced-features-and-usage/others/dubbo-kubernetes-probe.md @@ -19,7 +19,7 @@ description: "了解 Dubbo3 与 Kubernetes 生命周期对齐探针的扩展与 - startupProbe: `org.apache.dubbo.qos.probe.StartupProbe` 接口将自动获取当前应用所有 SPI 的实现,对应接口的 SPI 实现均成功就绪则接口返回成功。 -SPI的介绍见[Dubbo SPI扩展](https://dubbo.apache.org/zh/docs3-building/java-sdk/reference-manual/spi/description/) +SPI的介绍见[Dubbo SPI扩展](/zh/docs3-v2/java-sdk/reference-manual/spi/description/) #### 存活检测 diff --git a/content/zh/docs3-v2/java-sdk/advanced-features-and-usage/performance/concurrency-control.md b/content/zh/docs3-v2/java-sdk/advanced-features-and-usage/performance/concurrency-control.md index 48bab8ebd34d..b60e6ec47cef 100644 --- a/content/zh/docs3-v2/java-sdk/advanced-features-and-usage/performance/concurrency-control.md +++ b/content/zh/docs3-v2/java-sdk/advanced-features-and-usage/performance/concurrency-control.md @@ -57,7 +57,7 @@ description: "Dubbo 中的并发控制" ``` -如果 `` 和 `` 都配了actives,`` 优先,参见:[配置的覆盖策略](../../references/configuration/xml)。 +如果 `` 和 `` 都配了actives,`` 优先,参见:[配置的覆盖策略](../../../reference-manual/config/principle/)。 ## Load Balance 均衡 diff --git a/content/zh/docs3-v2/java-sdk/advanced-features-and-usage/performance/config-connections.md b/content/zh/docs3-v2/java-sdk/advanced-features-and-usage/performance/config-connections.md index ac3ff04c3c27..f9b2ef2daba7 100644 --- a/content/zh/docs3-v2/java-sdk/advanced-features-and-usage/performance/config-connections.md +++ b/content/zh/docs3-v2/java-sdk/advanced-features-and-usage/performance/config-connections.md @@ -6,9 +6,6 @@ weight: 29 description: "Dubbo 中服务端和客户端的连接控制" --- -{{% pageinfo %}} 此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅[最新版本](/zh/docs3-v2/java-sdk/advanced-features-and-usage/performance/concurrency-control/)。 -{{% /pageinfo %}} - ## 服务端连接控制 限制服务器端接受的连接不能超过 10 个 [^1]: @@ -37,7 +34,7 @@ description: "Dubbo 中服务端和客户端的连接控制" ``` -如果 `` 和 `` 都配了 connections,`` 优先,参见:[配置的覆盖策略](../../configuration/xml) +如果 `` 和 `` 都配了 connections,`` 优先,参见:[配置的覆盖策略](../../../reference-manual/config/principle/) [^1]: 因为连接在 Server上,所以配置在 Provider 上 [^2]: 如果是长连接,比如 Dubbo 协议,connections 表示该服务对每个提供者建立的长连接数 diff --git a/content/zh/docs3-v2/java-sdk/advanced-features-and-usage/performance/loadbalance.md b/content/zh/docs3-v2/java-sdk/advanced-features-and-usage/performance/loadbalance.md index c8335608fbd6..dd533e6384c0 100644 --- a/content/zh/docs3-v2/java-sdk/advanced-features-and-usage/performance/loadbalance.md +++ b/content/zh/docs3-v2/java-sdk/advanced-features-and-usage/performance/loadbalance.md @@ -10,7 +10,7 @@ description: "Dubbo 提供的集群负载均衡策略" 具体实现上,Dubbo 提供的是客户端负载均衡,即由 Consumer 通过负载均衡算法得出需要将请求提交到哪个 Provider 实例。 -可以自行扩展负载均衡策略,参见:[负载均衡扩展](../../references/spis/load-balance) +可以自行扩展负载均衡策略,参见:[负载均衡扩展](../../../reference-manual/spi/description/load-balance) ## 负载均衡策略 目前 Dubbo 内置了如下负载均衡算法,用户可直接配置使用: diff --git a/content/zh/docs3-v2/java-sdk/advanced-features-and-usage/rpc/context.md b/content/zh/docs3-v2/java-sdk/advanced-features-and-usage/rpc/context.md index ee7e6bcbbd7c..c58a3ad8a679 100644 --- a/content/zh/docs3-v2/java-sdk/advanced-features-and-usage/rpc/context.md +++ b/content/zh/docs3-v2/java-sdk/advanced-features-and-usage/rpc/context.md @@ -6,7 +6,7 @@ weight: 6 description: "通过上下文存放当前调用过程中所需的环境信息" --- ## 特性说明 -上下文中存放的是当前调用过程中所需的环境信息。所有配置信息都将转换为 URL 的参数,参见 [schema 配置参考手册](../../../v3.0/references/xml) 中的**对应URL参数**一列。 +上下文中存放的是当前调用过程中所需的环境信息。所有配置信息都将转换为 URL 的参数,参见 [schema 配置参考手册](../../../reference-manual/config/properties/) 中的**对应URL参数**一列。 RpcContext 是一个 ThreadLocal 的临时状态记录器,当接收到 RPC 请求,或发起 RPC 请求时,RpcContext 的状态都会变化。比如:A 调 B,B 再调 C,则 B 机器上,在 B 调 C 之前,RpcContext 记录的是 A 调 B 的信息,在 B 调 C 之后,RpcContext 记录的是 B 调 C 的信息。 #### 类型: diff --git a/content/zh/docs3-v2/java-sdk/advanced-features-and-usage/rpc/fault-tolerent-strategy.md b/content/zh/docs3-v2/java-sdk/advanced-features-and-usage/rpc/fault-tolerent-strategy.md index f3b9a7daea96..c358e7b2de88 100644 --- a/content/zh/docs3-v2/java-sdk/advanced-features-and-usage/rpc/fault-tolerent-strategy.md +++ b/content/zh/docs3-v2/java-sdk/advanced-features-and-usage/rpc/fault-tolerent-strategy.md @@ -20,7 +20,7 @@ description: "集群调用失败时,Dubbo 提供的容错方案" ## 集群容错模式 -可以自行扩展集群容错策略,参见:[集群扩展](../../references/spis/cluster) +可以自行扩展集群容错策略,参见:[集群扩展](../../../reference-manual/spi/description/cluster/) ### Failover Cluster diff --git a/content/zh/docs3-v2/java-sdk/advanced-features-and-usage/security/auth.md b/content/zh/docs3-v2/java-sdk/advanced-features-and-usage/security/auth.md index de101e90ccb1..70e50820d3c9 100644 --- a/content/zh/docs3-v2/java-sdk/advanced-features-and-usage/security/auth.md +++ b/content/zh/docs3-v2/java-sdk/advanced-features-and-usage/security/auth.md @@ -10,7 +10,7 @@ description: "服务鉴权" 类似支付之类的对安全性敏感的业务可能会有限制匿名调用的需求。在加固安全性方面,2.7.5 引入了基于AK/SK机制的认证鉴权机制,并且引入了鉴权服务中心,主要原理是消费端在请求需要鉴权的服务时,会通过SK、请求元数据、时间戳、参数等信息来生成对应的请求签名,通过Dubbo的Attahcment机制携带到对端进行验签,验签通过才进行业务逻辑处理。如下图所示: -![](https://raw.githubusercontent.com/Ooo0oO0o0oO/res/master/auth.png) +![](/imgs/docsv2.7/user/examples/auth/auth.png) diff --git a/content/zh/docs3-v2/java-sdk/advanced-features-and-usage/service/consistent-hash.md b/content/zh/docs3-v2/java-sdk/advanced-features-and-usage/service/consistent-hash.md index 5247b61131bc..f114b8363c22 100644 --- a/content/zh/docs3-v2/java-sdk/advanced-features-and-usage/service/consistent-hash.md +++ b/content/zh/docs3-v2/java-sdk/advanced-features-and-usage/service/consistent-hash.md @@ -6,7 +6,7 @@ weight: 6 description: "在负载均衡阶段基于一致性哈希进行选址" --- ## 特性说明 -[Dubbo 一致性Hash负载均衡实现剖析](https://dubbo.apache.org/zh/blog/2019/05/01/dubbo-%E4%B8%80%E8%87%B4%E6%80%A7hash%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1%E5%AE%9E%E7%8E%B0%E5%89%96%E6%9E%90/) +[Dubbo 一致性Hash负载均衡实现剖析](/zh/blog/2019/05/01/dubbo-%E4%B8%80%E8%87%B4%E6%80%A7hash%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1%E5%AE%9E%E7%8E%B0%E5%89%96%E6%9E%90/) ## 使用场景 diff --git a/content/zh/docs3-v2/java-sdk/advanced-features-and-usage/service/multi-protocols.md b/content/zh/docs3-v2/java-sdk/advanced-features-and-usage/service/multi-protocols.md index a81e877d5502..7c1e09f8034b 100644 --- a/content/zh/docs3-v2/java-sdk/advanced-features-and-usage/service/multi-protocols.md +++ b/content/zh/docs3-v2/java-sdk/advanced-features-and-usage/service/multi-protocols.md @@ -50,4 +50,4 @@ Dubbo 允许配置多协议,在不同服务上支持不同协议或者同一 ``` -[^1]: 可以自行扩展协议,参见:[协议扩展](http://dubbo.apache.org/books/dubbo-dev-book/impls/protocol.html) +[^1]: 可以自行扩展协议,参见:[协议扩展](/zh/docsv2.7/dev/impls/protocol/) diff --git a/content/zh/docs3-v2/java-sdk/advanced-features-and-usage/service/routing/routing-rule.md b/content/zh/docs3-v2/java-sdk/advanced-features-and-usage/service/routing/routing-rule.md index f9c1a1b9fbc5..fc5d244360ac 100644 --- a/content/zh/docs3-v2/java-sdk/advanced-features-and-usage/service/routing/routing-rule.md +++ b/content/zh/docs3-v2/java-sdk/advanced-features-and-usage/service/routing/routing-rule.md @@ -250,8 +250,6 @@ RpcContext.getContext().setAttachment(Constants.TAG_KEY,"tag1"); 2. `dubbo.tag`未设置时,只会匹配tag为空的provider。即使集群中存在可用的服务,若 tag 不匹配也就无法调用,这与约定1不同,携带标签的请求可以降级访问到无标签的服务,但不携带标签/携带其他种类标签的请求永远无法访问到其他标签的服务。 {{% alert title="提示" color="primary" %}} -`2.6.x` 版本以及更早的版本请使用[老版本路由规则](../routing-rule-deprecated) - -自定义路由参考[路由扩展](../../../dev/impls/router) +自定义路由参考[路由扩展](/zh/docs3-v2/java-sdk/reference-manual/spi/description/router/) {{% /alert %}} diff --git a/content/zh/docs3-v2/java-sdk/advanced-features-and-usage/service/transaction.md b/content/zh/docs3-v2/java-sdk/advanced-features-and-usage/service/transaction.md index 853a45957a22..003cba546ecb 100644 --- a/content/zh/docs3-v2/java-sdk/advanced-features-and-usage/service/transaction.md +++ b/content/zh/docs3-v2/java-sdk/advanced-features-and-usage/service/transaction.md @@ -10,7 +10,7 @@ description: "在 Dubbo 中使用分布式事务" **第一步:** -首先访问: [https://seata.io/zh-cn/blog/download.html](https://gitee.com/link?target=https%3A%2F%2Fseata.io%2Fzh-cn%2Fblog%2Fdownload.html) +首先访问: [https://seata.io/zh-cn/blog/download.html](https://seata.io/zh-cn/blog/download.html) 下载我们需要使用的seata1.5.2服务 diff --git a/content/zh/docs3-v2/java-sdk/concepts-and-architecture/code-architecture.md b/content/zh/docs3-v2/java-sdk/concepts-and-architecture/code-architecture.md index 87bbead1d925..3706b8c48b9d 100644 --- a/content/zh/docs3-v2/java-sdk/concepts-and-architecture/code-architecture.md +++ b/content/zh/docs3-v2/java-sdk/concepts-and-architecture/code-architecture.md @@ -101,5 +101,3 @@ weight: 2 * 采用 Microkernel + Plugin 模式,Microkernel 只负责组装 Plugin,Dubbo 自身的功能也是通过扩展点实现的,也就是 Dubbo 的所有功能点都可被用户自定义扩展所替换。 * 采用 URL 作为配置信息的统一格式,所有扩展点都通过传递 URL 携带配置信息。 - -更多设计原则参见:[框架设计原则](../principals/) diff --git a/content/zh/docs3-v2/java-sdk/reference-manual/config-center/apollo/_index.md b/content/zh/docs3-v2/java-sdk/reference-manual/config-center/apollo.md similarity index 100% rename from content/zh/docs3-v2/java-sdk/reference-manual/config-center/apollo/_index.md rename to content/zh/docs3-v2/java-sdk/reference-manual/config-center/apollo.md diff --git a/content/zh/docs3-v2/java-sdk/reference-manual/config-center/nacos/_index.md b/content/zh/docs3-v2/java-sdk/reference-manual/config-center/nacos.md similarity index 93% rename from content/zh/docs3-v2/java-sdk/reference-manual/config-center/nacos/_index.md rename to content/zh/docs3-v2/java-sdk/reference-manual/config-center/nacos.md index 5b457c64e859..9de1549e7036 100644 --- a/content/zh/docs3-v2/java-sdk/reference-manual/config-center/nacos/_index.md +++ b/content/zh/docs3-v2/java-sdk/reference-manual/config-center/nacos.md @@ -44,10 +44,10 @@ ConfigCenterConfig configCenter = new ConfigCenterConfig(); configCenter.setAddress("nacos://127.0.0.1:8848"); ``` -`address` 格式请参考 [Nacos 注册中心 - 启用配置](../../registry/nacos/#2.2-配置并启用-Nacos) +`address` 格式请参考 [Nacos 注册中心 - 启用配置](../../registry/nacos/#22-配置并启用-nacos) ## 3 高级配置 -如要开启认证鉴权,请参考 [Nacos 注册中心 - 启用认证鉴权](../../registry/nacos/#3.1-认证) +如要开启认证鉴权,请参考 [Nacos 注册中心 - 启用认证鉴权](../../registry/nacos/#31-认证) ### 3.1 外部化配置 #### 3.1.1 全局外部化配置 @@ -91,24 +91,24 @@ dubbo address: zookeeper://127.0.0.1:2181 group: dubbo-cluster1 namespace: dev1 -`` +``` 对配置中心而言,`group` 与 `namespace` 应该是全公司(集群)统一的,应该避免不同应用使用不同的值。 ### 3.3 Nacos 扩展配置 -更多 Nacos sdk/server 支持的参数配置请参见 [Nacos 注册中心 - 更多配置](../../registry/nacos/#3.5-更多配置) +更多 Nacos sdk/server 支持的参数配置请参见 [Nacos 注册中心 - 更多配置](../../registry/nacos/#35-更多配置) ## 4 流量治理规则 对 Nacos 而言,所有流量治理规则和外部化配置都应该是全局可见的,因此相同逻辑集群内的应用都必须使用相同的 namespace 与 group。其中,namespace 的默认值是 `public`,group 默认值是 `dubbo`,应用不得擅自修改 namespace 与 group,除非能保持全局一致。 -流量治理规则的增删改建议通过 dubbo-admin 完成,更多内容可查看 [Dubbo 支持的流量治理能力]()。 +流量治理规则的增删改建议通过 dubbo-admin 完成,更多内容可查看 Dubbo 支持的流量治理能力。 ![nacos-configcenter-governance.jpg](/imgs/user/nacos-configcenter-governance.png) 流量治理规则有多种类型,不同类型的规则 dataId 的后缀是不同的: - configurators,[覆盖规则](../../../advanced-features-and-usage/rpc/config-rule/) -- tag-router,[标签路由](../../../advanced-features-and-usage/service/routing/routing-rule/#标签路由) +- tag-router,[标签路由](../../../advanced-features-and-usage/service/routing/routing-rule/#标签路由规则) - condition-router,[条件路由](../../../advanced-features-and-usage/service/routing/routing-rule/#条件路由) diff --git a/content/zh/docs3-v2/java-sdk/reference-manual/config-center/zookeeper/_index.md b/content/zh/docs3-v2/java-sdk/reference-manual/config-center/zookeeper.md similarity index 97% rename from content/zh/docs3-v2/java-sdk/reference-manual/config-center/zookeeper/_index.md rename to content/zh/docs3-v2/java-sdk/reference-manual/config-center/zookeeper.md index 7b78b22032e4..894965c97180 100644 --- a/content/zh/docs3-v2/java-sdk/reference-manual/config-center/zookeeper/_index.md +++ b/content/zh/docs3-v2/java-sdk/reference-manual/config-center/zookeeper.md @@ -84,7 +84,7 @@ dubbo 对配置中心而言,`group` 与 `namespace` 应该是全公司(集群)统一的,应该避免不同应用使用不同的值,外部化配置和治理规则也应该存放在对应的 group 与 namespace。 ## 4 流量治理规则 -所有流量治理规则默认都存储在 `/dubbo/config` 节点下,具体节点结构图如下。流量治理规则的增删改建议通过 dubbo-admin 完成,更多内容可查看 [Dubbo 支持的具体流量治理能力]() +所有流量治理规则默认都存储在 `/dubbo/config` 节点下,具体节点结构图如下。流量治理规则的增删改建议通过 dubbo-admin 完成,更多内容可查看 Dubbo 支持的具体流量治理能力 ![zk-configcenter-governance](/imgs/user/zk-configcenter-governance.jpg) diff --git a/content/zh/docs3-v2/java-sdk/reference-manual/config/annotation/_index.md b/content/zh/docs3-v2/java-sdk/reference-manual/config/annotation.md similarity index 98% rename from content/zh/docs3-v2/java-sdk/reference-manual/config/annotation/_index.md rename to content/zh/docs3-v2/java-sdk/reference-manual/config/annotation.md index 57c955a64a49..062d026a214b 100644 --- a/content/zh/docs3-v2/java-sdk/reference-manual/config/annotation/_index.md +++ b/content/zh/docs3-v2/java-sdk/reference-manual/config/annotation.md @@ -85,7 +85,7 @@ description: "以 Annotation、Spring Boot 开发 Dubbo 应用" ### application.yml 或 application.properties -除 service、reference 之外的组件都可以在 application.yml 文件中设置,如果要扩展 service 或 reference 的注解配置,则需要增加 `dubbo.properties` 配置文件或使用其他非注解如 Java Config 方式,具体请看下文 [扩展注解的配置](#扩展注解的配置)。 +除 service、reference 之外的组件都可以在 application.yml 文件中设置,如果要扩展 service 或 reference 的注解配置,则需要增加 `dubbo.properties` 配置文件或使用其他非注解如 Java Config 方式,具体请看下文 [扩展注解的配置](#扩展注解配置)。 service、reference 组件也可以通过 `id` 与 application 中的全局组件做关联,以下面配置为例: @@ -205,7 +205,7 @@ public class ProviderConfiguration { ``` #### 通过 dubbo.properties 补充配置 -对于使用 `DubboService` 或 `DubboReference` 的场景,可以使用 dubbo.properties 作为配置补充,[具体格式](../principle#1-配置格式)这里有更详细解释。 +对于使用 `DubboService` 或 `DubboReference` 的场景,可以使用 dubbo.properties 作为配置补充,[具体格式](../principle/#1-配置格式)这里有更详细解释。 ```properties dubbo.service.org.apache.dubbo.springboot.demo.DemoService.timeout=5000 diff --git a/content/zh/docs3-v2/java-sdk/reference-manual/config/api/_index.md b/content/zh/docs3-v2/java-sdk/reference-manual/config/api.md similarity index 100% rename from content/zh/docs3-v2/java-sdk/reference-manual/config/api/_index.md rename to content/zh/docs3-v2/java-sdk/reference-manual/config/api.md diff --git a/content/zh/docs3-v2/java-sdk/reference-manual/config/overview/_index.md b/content/zh/docs3-v2/java-sdk/reference-manual/config/overview.md similarity index 94% rename from content/zh/docs3-v2/java-sdk/reference-manual/config/overview/_index.md rename to content/zh/docs3-v2/java-sdk/reference-manual/config/overview.md index 05aefe426a33..d6940005c12d 100644 --- a/content/zh/docs3-v2/java-sdk/reference-manual/config/overview/_index.md +++ b/content/zh/docs3-v2/java-sdk/reference-manual/config/overview.md @@ -9,7 +9,6 @@ description: "对 Dubbo 配置总体设计与工作原理进行了总体概述 * [使用 Spring Boot 快速开发 Dubbo 应用](../../../quick-start/spring-boot/) * [配置项参考手册,了解有哪些配置项可用](../properties) * [配置加载及覆盖的工作原理](../principle) -* [运行态地址 URL 及优先级规则](../blog) ## 配置组件 @@ -35,7 +34,7 @@ method | 指定方法级的配置 | service 和 reference 的子配置 | 可选 argument | 某个方法的参数配置 | method的子配置 | 可选 -> 1. 从实现原理层面,最终 Dubbo 所有的配置项都会被组装到 URL 中,以 URL 为载体在后续的启动、RPC 调用过程中传递,进而控制框架行为。如想了解更多,请参照 Dubbo 源码解析系列文档或 [Blog](/blog/java/codeanalysis/introduction-to-dubbo-url#rpc调用)。 +> 1. 从实现原理层面,最终 Dubbo 所有的配置项都会被组装到 URL 中,以 URL 为载体在后续的启动、RPC 调用过程中传递,进而控制框架行为。如想了解更多,请参照 Dubbo 源码解析系列文档或 [Blog](/zh/blog/2019/10/17/dubbo-中的-url-统一模型/#rpc调用)。 > 2. 各组件支持的具体配置项及含义请参考 [配置项手册](../properties) ### service 与 reference @@ -143,14 +142,14 @@ demo.service.version=1.0.0 ### 属性配置 根据属性Key-value生成配置组件,类似SpringBoot的ConfigurationProperties,具体请参考[属性配置](../properties)。 -属性配置的另外一个重要的功能特性是[属性覆盖](../properties#属性覆盖),使用外部属性的值覆盖已创建的配置组件属性。 +属性配置的另外一个重要的功能特性是[属性覆盖](../principle/#32-属性覆盖),使用外部属性的值覆盖已创建的配置组件属性。 -如果要将属性配置放到外部的配置中心,请参考[外部化配置](../external-config)。 +如果要将属性配置放到外部的配置中心,请参考[外部化配置](../principle/#33-外部化配置)。 除了外围驱动方式上的差异,Dubbo 的配置读取总体上遵循了以下几个原则: 1. Dubbo 支持了多层级的配置,并按预定优先级自动实现配置间的覆盖,最终所有配置汇总到数据总线URL后驱动后续的服务暴露、引用等流程。 -2. 配置格式以 Properties 为主,在配置内容上遵循约定的 `path-based` 的[命名规范](../properties#配置格式) +2. 配置格式以 Properties 为主,在配置内容上遵循约定的 `path-based` 的[命名规范](../principle/#1-配置格式) ## 配置加载流程 @@ -161,7 +160,7 @@ Dubbo 遵循一种 [path-based 的配置规范](../principle/),每一个配置 - JVM System Properties,JVM -D 参数 - System environment,JVM进程的环境变量 -- Externalized Configuration,[外部化配置](../properties#3.3-外部化配置),从配置中心读取 +- Externalized Configuration,[外部化配置](../principle/#33-外部化配置),从配置中心读取 - Application Configuration,应用的属性配置,从Spring应用的Environment中提取"dubbo"打头的属性集 - API / XML /注解等编程接口采集的配置可以被理解成配置来源的一种,是直接面向用户编程的配置采集方式 - 从classpath读取配置文件 dubbo.properties diff --git a/content/zh/docs3-v2/java-sdk/reference-manual/config/principle/_index.md b/content/zh/docs3-v2/java-sdk/reference-manual/config/principle.md similarity index 99% rename from content/zh/docs3-v2/java-sdk/reference-manual/config/principle/_index.md rename to content/zh/docs3-v2/java-sdk/reference-manual/config/principle.md index a3e20f989efe..832fa3aa1525 100644 --- a/content/zh/docs3-v2/java-sdk/reference-manual/config/principle/_index.md +++ b/content/zh/docs3-v2/java-sdk/reference-manual/config/principle.md @@ -241,7 +241,7 @@ Dubbo 默认支持 6 种配置来源: - JVM System Properties,JVM -D 参数 - System environment,JVM进程的环境变量 -- Externalized Configuration,[外部化配置](#3.3-外部化配置),从配置中心读取 +- Externalized Configuration,[外部化配置](#33-外部化配置),从配置中心读取 - Application Configuration,应用的属性配置,从Spring应用的Environment中提取"dubbo"打头的属性集 - API / XML /注解等编程接口采集的配置可以被理解成配置来源的一种,是直接面向用户编程的配置采集方式 - 从classpath读取配置文件 dubbo.properties @@ -324,7 +324,7 @@ dubbo.application.qos.port=33333 ``` - 优先级 - 外部化配置默认较本地配置有更高的优先级,因此这里配置的内容会覆盖本地配置值,关于各配置形式间的[覆盖关系](#覆盖关系) 有单独一章说明。 + 外部化配置默认较本地配置有更高的优先级,因此这里配置的内容会覆盖本地配置值,关于各配置形式间的[覆盖关系](#21-覆盖关系) 有单独一章说明。 - 作用域 外部化配置有全局和应用两个级别,全局配置是所有应用共享的,应用级配置是由每个应用自己维护且只对自身可见的。当前已支持的扩展实现有 Zookeeper、Apollo、Nacos。 diff --git a/content/zh/docs3-v2/java-sdk/reference-manual/config/properties/_index.md b/content/zh/docs3-v2/java-sdk/reference-manual/config/properties.md similarity index 100% rename from content/zh/docs3-v2/java-sdk/reference-manual/config/properties/_index.md rename to content/zh/docs3-v2/java-sdk/reference-manual/config/properties.md diff --git a/content/zh/docs3-v2/java-sdk/reference-manual/config/xml/_index.md b/content/zh/docs3-v2/java-sdk/reference-manual/config/xml.md similarity index 100% rename from content/zh/docs3-v2/java-sdk/reference-manual/config/xml/_index.md rename to content/zh/docs3-v2/java-sdk/reference-manual/config/xml.md diff --git a/content/zh/docs3-v2/java-sdk/reference-manual/metadata-center/nacos/_index.md b/content/zh/docs3-v2/java-sdk/reference-manual/metadata-center/nacos.md similarity index 92% rename from content/zh/docs3-v2/java-sdk/reference-manual/metadata-center/nacos/_index.md rename to content/zh/docs3-v2/java-sdk/reference-manual/metadata-center/nacos.md index af8f758367ca..ac1105bb1037 100644 --- a/content/zh/docs3-v2/java-sdk/reference-manual/metadata-center/nacos/_index.md +++ b/content/zh/docs3-v2/java-sdk/reference-manual/metadata-center/nacos.md @@ -7,7 +7,7 @@ description: "Nacos 元数据中心基本使用与工作原理" --- ## 1 预备工作 -- 了解 [Dubbo 基本开发步骤](https://dubbo.apache.org/zh/docs3-building/java-sdk/quick-start/spring-boot/) +- 了解 [Dubbo 基本开发步骤](/zh/docs3-v2/java-sdk/quick-start/spring-boot/) - 参考 [Nacos快速入门](https://nacos.io/zh-cn/docs/quick-start.html) 启动 Nacos server > 当Dubbo使用`3.0.0`及以上版本时,需要使用Nacos `2.0.0`及以上版本 @@ -47,7 +47,7 @@ MetadataReportConfig metadataConfig = new MetadataReportConfig(); metadataConfig.setAddress("nacos://127.0.0.1:8848"); ``` -`address` 格式请参考 [Nacos 注册中心 - 启用配置](../../registry/nacos/#2.2-配置并启用-Nacos) +`address` 格式请参考 [Nacos 注册中心 - 启用配置](../../registry/nacos/#22-配置并启用-nacos) ## 3 高级配置 @@ -55,7 +55,7 @@ metadataConfig.setAddress("nacos://127.0.0.1:8848"); ## 4 工作原理 -### 4.1 [服务运维元数据](../overview/2-服务运维元数据) +### 4.1 [服务运维元数据](../overview/#2-服务运维元数据) 在 Nacos 的控制台上可看到服务提供者、消费者注册的服务运维相关的元数据信息: @@ -81,7 +81,7 @@ Consumers接口元信息详情(通过 `report-consumer-definition=true` 控制 ![image-dubbo-metadata-nacos-4.png](/imgs/blog/dubbo-metadata-nacos-4.png) -### 4.2 [地址发现 - 接口-应用映射](../overview/2-地址发现元数据) +### 4.2 [地址发现 - 接口-应用映射](../overview//#11-接口---应用映射关系) 在上面提到,service name 和 application name 可能是一对多的,在 nacos 中,使用单个 key-value 进行保存,多个 application name 通过英文逗号`,`隔开。由于是单个 key-value 去保存数据,在多客户端的情况下可能会存在并发覆盖的问题。因此,我们使用 nacos 中 publishConfigCas 的能力去解决该问题。在 nacos 中,使用 publishConfigCas 会让用户传递一个参数 casMd5,该值的含义是之前配置内容的 md5 值。不同客户端在更新之前,先去查一次 nacos 的 content 的值,计算出 md5 值,当作本地凭证。在更新时,把凭证 md5 传到服务端比对 md5 值, 如果不一致说明在次期间被其他客户端修改过,重新获取凭证再进行重试(CAS)。目前如果重试6次都失败的话,放弃本次更新映射行为。 Nacos api: @@ -94,7 +94,7 @@ configService.publishConfigCas(key, group, content, ticket); ![nacos-metadata-report-service-name-mapping.png](/imgs/user/nacos-metadata-report-service-name-mapping.png) -### 4.3 [地址发现 - 接口配置元数据](../overview/2-地址发现元数据) +### 4.3 [地址发现 - 接口配置元数据](../overview/#12-接口配置元数据) 要开启远程接口配置元数据注册,需在应用中增加以下配置,因为默认情况下 Dubbo3 应用级服务发现会启用服务自省模式,并不会注册数据到元数据中心。 diff --git a/content/zh/docs3-v2/java-sdk/reference-manual/metadata-center/overview/_index.md b/content/zh/docs3-v2/java-sdk/reference-manual/metadata-center/overview.md similarity index 98% rename from content/zh/docs3-v2/java-sdk/reference-manual/metadata-center/overview/_index.md rename to content/zh/docs3-v2/java-sdk/reference-manual/metadata-center/overview.md index 34ef57682c9d..0183abb1759e 100644 --- a/content/zh/docs3-v2/java-sdk/reference-manual/metadata-center/overview/_index.md +++ b/content/zh/docs3-v2/java-sdk/reference-manual/metadata-center/overview.md @@ -209,5 +209,5 @@ dubbo.metadata-report.sync.report=false ##非必须,default值为false > 如果元数据地址(dubbo.metadata-report.address)也不进行配置,会判断注册中心的协议是否支持元数据中心,如果支持,会使用注册中心的地址来用作元数据中心。 ## 4 了解如何扩展 -请参见 [扩展 metadata-report](../spi/description/metadata-report/) 了解如何扩展自定义第三方实现。 +请参见 [扩展 metadata-report](../../spi/description/metadata-report/) 了解如何扩展自定义第三方实现。 diff --git a/content/zh/docs3-v2/java-sdk/reference-manual/metadata-center/redis/_index.md b/content/zh/docs3-v2/java-sdk/reference-manual/metadata-center/redis.md similarity index 100% rename from content/zh/docs3-v2/java-sdk/reference-manual/metadata-center/redis/_index.md rename to content/zh/docs3-v2/java-sdk/reference-manual/metadata-center/redis.md diff --git a/content/zh/docs3-v2/java-sdk/reference-manual/metadata-center/zookeeper/_index.md b/content/zh/docs3-v2/java-sdk/reference-manual/metadata-center/zookeeper.md similarity index 97% rename from content/zh/docs3-v2/java-sdk/reference-manual/metadata-center/zookeeper/_index.md rename to content/zh/docs3-v2/java-sdk/reference-manual/metadata-center/zookeeper.md index 77039bcf2354..745b4c1d405c 100644 --- a/content/zh/docs3-v2/java-sdk/reference-manual/metadata-center/zookeeper/_index.md +++ b/content/zh/docs3-v2/java-sdk/reference-manual/metadata-center/zookeeper.md @@ -51,7 +51,7 @@ metadataConfig.setAddress("zookeeper://127.0.0.1:2181"); ## 4 工作原理 -### 4.1 [服务运维元数据](../overview/2-服务运维元数据) +### 4.1 [服务运维元数据](../overview/#2-服务运维元数据) Zookeeper 基于树形结构进行数据存储,它的元数据信息位于以下节点: ```text @@ -101,7 +101,7 @@ dataLength = 219 numChildren = 0 ``` -### 4.2 [地址发现 - 接口-应用名映射](../overview/2-地址发现元数据) +### 4.2 [地址发现 - 接口-应用名映射](../overview/#11-接口---应用映射关系) 在Dubbo 3.0 中,默认使用了服务自省机制去实现服务发现,关于服务自省可以查看[服务自省](https://mercyblitz.github.io/2020/05/11/Apache-Dubbo-%E6%9C%8D%E5%8A%A1%E8%87%AA%E7%9C%81%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1/) 简而言之,服务自省机制需要能够通过 interface name 去找到对应的 application name,这个关系可以是一对多的,即一个 service name 可能会对应多个不同的 application name。在 3.0 中,元数据中心提供此项映射的能力。 @@ -139,7 +139,7 @@ dataLength = 62 numChildren = 0 ``` -### 4.3 [地址发现 - 接口配置元数据](../overview/2-地址发现元数据) +### 4.3 [地址发现 - 接口配置元数据](../overview/#12-接口配置元数据) 要开启远程接口配置元数据注册,需在应用中增加以下配置,因为默认情况下 Dubbo3 应用级服务发现会启用服务自省模式,并不会注册数据到元数据中心。 diff --git a/content/zh/docs3-v2/java-sdk/reference-manual/protocol/grpc/guide.md b/content/zh/docs3-v2/java-sdk/reference-manual/protocol/grpc/guide.md index c85fff68d8ef..a9d59062dd51 100644 --- a/content/zh/docs3-v2/java-sdk/reference-manual/protocol/grpc/guide.md +++ b/content/zh/docs3-v2/java-sdk/reference-manual/protocol/grpc/guide.md @@ -29,4 +29,4 @@ Dubbo 自 2.7.5 版本开始支持 gRPC 协议,对于计划使用 HTTP/2 通 2. 配置 compiler 插件,本地预编译 3. 配置暴露/引用 Dubbo 服务 -除了原生 StreamObserver 接口类型之外,Dubbo 还支持 [RxJava](https://github.com/apache/dubbo-samples/tree/master/java/dubbo-samples-grpc/dubbo-samples-rxjava)、[Reactor](https://github.com/apache/dubbo-samples/tree/master/java/dubbo-samples-grpc/dubbo-samples-reactor) 编程风格的 API。 +除了原生 StreamObserver 接口类型之外,Dubbo 还支持 [RxJava](https://github.com/apache/dubbo-samples/tree/master/dubbo-samples-grpc/dubbo-samples-rxjava)、[Reactor](https://github.com/apache/dubbo-samples/tree/master/dubbo-samples-grpc/dubbo-samples-reactor) 编程风格的 API。 diff --git a/content/zh/docs3-v2/java-sdk/reference-manual/protocol/grpc/overview.md b/content/zh/docs3-v2/java-sdk/reference-manual/protocol/grpc/overview.md index d0513b1ffee4..50a8466aa2aa 100644 --- a/content/zh/docs3-v2/java-sdk/reference-manual/protocol/grpc/overview.md +++ b/content/zh/docs3-v2/java-sdk/reference-manual/protocol/grpc/overview.md @@ -19,5 +19,5 @@ Dubbo 自 2.7.5 版本开始支持 gRPC 协议,对于计划使用 HTTP/2 通 具体可参见以下[示例](https://github.com/apache/dubbo-samples/tree/master/dubbo-samples-grpc) -除了原生 StreamObserver 接口类型之外,Dubbo 还支持 [RxJava](https://github.com/apache/dubbo-samples/tree/master/java/dubbo-samples-grpc/dubbo-samples-rxjava)、[Reactor](https://github.com/apache/dubbo-samples/tree/master/java/dubbo-samples-grpc/dubbo-samples-reactor) 编程风格的 API +除了原生 StreamObserver 接口类型之外,Dubbo 还支持 [RxJava](https://github.com/apache/dubbo-samples/tree/master/dubbo-samples-grpc/dubbo-samples-rxjava)、[Reactor](https://github.com/apache/dubbo-samples/tree/master/dubbo-samples-grpc/dubbo-samples-reactor) 编程风格的 API diff --git a/content/zh/docs3-v2/java-sdk/reference-manual/protocol/rest/overview.md b/content/zh/docs3-v2/java-sdk/reference-manual/protocol/rest/overview.md index 35a818058cfe..d167c4980253 100644 --- a/content/zh/docs3-v2/java-sdk/reference-manual/protocol/rest/overview.md +++ b/content/zh/docs3-v2/java-sdk/reference-manual/protocol/rest/overview.md @@ -183,7 +183,7 @@ JAX-RS是标准的Java REST API,得到了业界的广泛支持和应用,其 JAX-RS在网上的资料非常丰富,例如下面的入门教程: -* Oracle官方的tutorial:http://docs.oracle.com/javaee/7/tutorial/doc/jaxrs.htm +* Oracle官方的tutorial:https://www.oracle.com/technical-resources/articles/java/jax-rs.html * IBM developerWorks中国站文章:http://www.ibm.com/developerworks/cn/java/j-lo-jaxrs/ 更多的资料请自行google或者百度一下。就学习JAX-RS来说,一般主要掌握其各种annotation的用法即可。 diff --git a/content/zh/docs3-v2/java-sdk/reference-manual/protocol/triple/pojo.md b/content/zh/docs3-v2/java-sdk/reference-manual/protocol/triple/pojo.md index bda3903af693..75ded6b06c96 100644 --- a/content/zh/docs3-v2/java-sdk/reference-manual/protocol/triple/pojo.md +++ b/content/zh/docs3-v2/java-sdk/reference-manual/protocol/triple/pojo.md @@ -6,7 +6,7 @@ weight: 2 --- 这篇教程会通过从零构建一个简单的工程来演示如何基于 POJO 方式使用 Dubbo Triple, 在应用不改变已有接口定义的同时升级到 Triple 协议。 -POJO on Triple 原理请参考[POJO on Triple](TBD) +POJO on Triple 原理请参考POJO on Triple(TBD) ### 前置条件 - [JDK](https://jdk.java.net/) 版本 >= 8 diff --git a/content/zh/docs3-v2/java-sdk/reference-manual/registry/overview/_index.md b/content/zh/docs3-v2/java-sdk/reference-manual/registry/overview/_index.md index 7b993c803ec9..eb7cd403642e 100644 --- a/content/zh/docs3-v2/java-sdk/reference-manual/registry/overview/_index.md +++ b/content/zh/docs3-v2/java-sdk/reference-manual/registry/overview/_index.md @@ -6,7 +6,7 @@ weight: 1 description: "" --- -注册中心是 Dubbo 服务治理的核心组件,Dubbo 依赖注册中心的协调实现服务(地址)发现,自动化的服务发现是微服务实现动态扩缩容、负载均衡、、流量治理的基础。Dubbo 的服务发现机制经历了 Dubbo2 时代的接口级服务发现、Dubbo3 时代的应用级服务发现,具体可参见 [服务发现机制]() 解析了解具体演进过程。 +注册中心是 Dubbo 服务治理的核心组件,Dubbo 依赖注册中心的协调实现服务(地址)发现,自动化的服务发现是微服务实现动态扩缩容、负载均衡、、流量治理的基础。Dubbo 的服务发现机制经历了 Dubbo2 时代的接口级服务发现、Dubbo3 时代的应用级服务发现,具体可参见 [服务发现机制](/zh/docs3-v2/java-sdk/concepts-and-architecture/service-discovery/) 解析了解具体演进过程。 ## 基本使用 开发应用时必须指定 Dubbo 注册中心(registry)组件,配置很简单,只需指定注册中心的集群地址即可: @@ -28,7 +28,7 @@ dubbo > 应用必须指定 Dubbo 注册中心,即使不启用注册中心也要配置(可通过设置地址为空 address='N/A' )。 -除了 其余根据每个配置中心的不同,可以参考 [registry 配置参考手册]()或通过 parameters 参数进行扩展。 +除了 其余根据每个配置中心的不同,可以参考 [registry 配置参考手册](/zh/docs3-v2/java-sdk/reference-manual/config/properties/#registry)或通过 parameters 参数进行扩展。 ## 配置中心与元数据中心 配置中心、元数据中心是实现 Dubbo 高阶服务治理能力的基础组件,相比于注册中心通常这两个组件的配置是可选的。 @@ -71,7 +71,7 @@ Dubbo 主干目前支持的主流注册中心实现包括 同时也支持 Kubernetes、Mesh 体系的服务发现。 -另外,[Dubbo 扩展生态](https://github.com/apache/dubbo-spi-extensions) 还提供了 Consul、Eureka、Etcd 等注册中心扩展实现。也欢迎通过 [registry spi 扩展](../../spi./) 贡献更多的注册中心实现到 Dubbo 生态。 +另外,[Dubbo 扩展生态](https://github.com/apache/dubbo-spi-extensions) 还提供了 Consul、Eureka、Etcd 等注册中心扩展实现。也欢迎通过 [registry spi 扩展](../../spi/) 贡献更多的注册中心实现到 Dubbo 生态。 Dubbo 还支持在一个应用中 [指定多个注册中心](../multiple-registry/),并将服务根据注册中心分组,这样做使得服务分组管理或服务迁移变得更容易。 diff --git a/content/zh/docs3-v2/java-sdk/reference-manual/spi/overview/_index.md b/content/zh/docs3-v2/java-sdk/reference-manual/spi/overview.md similarity index 98% rename from content/zh/docs3-v2/java-sdk/reference-manual/spi/overview/_index.md rename to content/zh/docs3-v2/java-sdk/reference-manual/spi/overview.md index 0a835e02dc7f..a33219064a4d 100644 --- a/content/zh/docs3-v2/java-sdk/reference-manual/spi/overview/_index.md +++ b/content/zh/docs3-v2/java-sdk/reference-manual/spi/overview.md @@ -98,4 +98,4 @@ Dubbo 扩展能力使得 Dubbo 项目很方便的切分成一个一个的子模 * 如果你需要实现自定义的注册中心,你可以使用 Dubbo 扩展能力。 * 如果你需要实现自定义的过滤器,你可以使用 Dubbo 扩展能力。 -Dubbo 扩展平等的对待内部实现和第三方实现。更多使用场景,参见 [SPI 扩展实现](../../references/spis/) \ No newline at end of file +Dubbo 扩展平等的对待内部实现和第三方实现。更多使用场景,参见 [SPI 扩展实现](../description/) \ No newline at end of file diff --git a/content/zh/docs3-v2/java-sdk/upgrades-and-compatibility/2.x-to-3.x-compatibility-guide.md b/content/zh/docs3-v2/java-sdk/upgrades-and-compatibility/2.x-to-3.x-compatibility-guide.md index 86265a57b6f9..04c9d253faae 100644 --- a/content/zh/docs3-v2/java-sdk/upgrades-and-compatibility/2.x-to-3.x-compatibility-guide.md +++ b/content/zh/docs3-v2/java-sdk/upgrades-and-compatibility/2.x-to-3.x-compatibility-guide.md @@ -33,14 +33,12 @@ description: "快速了解 Dubbo3 的升级步骤与兼容性" Dubbo 3.0 提供的新特性包括: * **新的地址发现模型(应用级服务发现)。** - * 查看[应用级服务发现的迁移步骤](../migration-service-discovery) - * 查看[应用级服务发现的使用方式]() - * 查看[应用级服务发现设计与实现]()。 + * 查看[应用级服务发现迁移示例](../service-discovery/service-discovery-samples/)。 + * 查看[应用级服务发现的迁移步骤](../service-discovery/migration-service-discovery/) + * 查看[应用级服务发现地址迁移规则说明](../service-discovery/service-discovery-rule/) * **下一代基于 HTTP/2 的 Triple 协议。** - * 查看[Triple 协议迁移步骤](../migration-triple) - * 查看 [Triple 协议使用方式](../../references/protocols/tri) - * 查看 Triple 协议设计与实现。 + * 查看[Triple 协议迁移步骤](../migration-triple/) + * 查看 [Triple 协议使用方式](../../reference-manual/protocol/triple/guide/) + * 查看 [Triple 协议设计与实现](../../reference-manual/protocol/triple/overview/)。 * **统一的路由规则。** - * 查看[统一路由规则的迁移步骤](../migration-routingrule) - * 查看[统一路由规则使用方式](../../references/routerule) - * 查看统一路由规则设计与实现 \ No newline at end of file + * 查看[统一路由规则设计与实现](/zh/docs3-v2/java-sdk/advanced-features-and-usage/service/routing/mesh-style/) \ No newline at end of file diff --git a/content/zh/docs3-v2/java-sdk/upgrades-and-compatibility/migration-triple.md b/content/zh/docs3-v2/java-sdk/upgrades-and-compatibility/migration-triple.md index c9c4095ee014..b841d97485ef 100644 --- a/content/zh/docs3-v2/java-sdk/upgrades-and-compatibility/migration-triple.md +++ b/content/zh/docs3-v2/java-sdk/upgrades-and-compatibility/migration-triple.md @@ -8,7 +8,7 @@ description: "Triple协议迁移指南" ## Triple 介绍 -`Triple` 协议的格式和原理请参阅 [RPC 通信协议](https://dubbo.apache.org/zh/docs/concepts/rpc-protocol/) +`Triple` 协议的格式和原理请参阅 [RPC 通信协议](/zh/docs/concepts/rpc-protocol/) 根据 Triple 设计的目标,`Triple` 协议有以下优势: @@ -72,7 +72,7 @@ public class IGreeter2Impl implements IWrapperGreeter { 为保证兼容性,我们先将部分 provider 升级到 `dubbo3` 版本并使用 `dubbo` 协议。 -使用 `dubbo` 协议启动一个 [`Provider`](https://github.com/apache/dubbo-samples/tree/master/dubbo-samples-triple/src/main/java/com/apache/dubbo/sample/basic/migration/ApiMigrationDubboProvider) 和 [`Consumer`](https://github.com/apache/dubbo-samples/tree/master/dubbo-samples-triple/src/main/java/com/apache/dubbo/sample/basic/migration/ApiMigrationDubboConsumer) ,完成调用,输出如下: +使用 `dubbo` 协议启动一个 [`Provider`](https://github.com/apache/dubbo-samples/tree/master/dubbo-samples-triple/src/main/java/org/apache/dubbo/sample/tri/migration/ApiMigrationDubboProvider.java) 和 [`Consumer`](https://github.com/apache/dubbo-samples/tree/master/dubbo-samples-triple/src/main/java/org/apache/dubbo/sample/tri/migration/ApiMigrationDubboConsumer.java) ,完成调用,输出如下: ![result](/imgs/v3/migration/tri/dubbo3-tri-migration-dubbo-dubbo-result.png) ### 同时使用 dubbo 和 triple 协议 @@ -85,7 +85,7 @@ public class IGreeter2Impl implements IWrapperGreeter { > 按照推荐升级步骤,provider 已经支持了tri协议,所以 dubbo3的 consumer 可以直接使用 tri 协议 -使用`dubbo`协议和`triple`协议启动[`Provider`](https://github.com/apache/dubbo-samples/tree/master/dubbo-samples-triple/src/main/java/com/apache/dubbo/sample/basic/migration/ApiMigrationBothProvider)和[`Consumer`](https://github.com/apache/dubbo-samples/tree/master/dubbo-samples-triple/src/main/java/com/apache/dubbo/sample/basic/migration/ApiMigrationBothConsumer),完成调用,输出如下: +使用`dubbo`协议和`triple`协议启动[`Provider`](https://github.com/apache/dubbo-samples/tree/master/dubbo-samples-triple/src/main/java/org/apache/dubbo/sample/tri/migration/ApiMigrationBothProvider.java)和[`Consumer`](https://github.com/apache/dubbo-samples/tree/master/dubbo-samples-triple/src/main/java/org/apache/dubbo/sample/tri/migration/ApiMigrationBothConsumer.java),完成调用,输出如下: ![result](/imgs/v3/migration/tri/dubbo3-tri-migration-both-dubbo-tri-result.png) @@ -97,8 +97,8 @@ public class IGreeter2Impl implements IWrapperGreeter { 结构如图所示: ![strust](/imgs/v3/migration/tri/migrate-only-tri-strust.png) -[Provider](https://github.com/apache/dubbo-samples/tree/master/dubbo-samples-triple/src/main/java/com/apache/dubbo/sample/basic/migration/ApiMigrationTriProvider) -和 [Consumer](https://github.com/apache/dubbo-samples/tree/master/dubbo-samples-triple/src/main/java/com/apache/dubbo/sample/basic/migration/ApiMigrationTriConsumer) 完成调用,输出如下: +[Provider](https://github.com/apache/dubbo-samples/tree/master/dubbo-samples-triple/src/main/java/org/apache/dubbo/sample/tri/migration/ApiMigrationTriProvider.java) +和 [Consumer](https://github.com/apache/dubbo-samples/tree/master/dubbo-samples-triple/src/main/java/org/apache/dubbo/sample/tri/migration/ApiMigrationTriConsumer.java) 完成调用,输出如下: ![result](/imgs/v3/migration/tri/dubbo3-tri-migration-tri-tri-result.png) @@ -322,8 +322,8 @@ public interface PbGreeter { 关于 Triple 协议的应用级服务注册和发现和其他语言是一致的,可以通过下列内容了解更多。 -- [服务发现](https://dubbo.apache.org/zh/docs/concepts/service-discovery/) -- [应用级地址发现迁移指南](https://dubbo.apache.org/zh/docs/migration/migration-service-discovery/) +- [服务发现](/zh/docs/concepts/service-discovery/) +- [应用级地址发现迁移指南](/zh/docs/migration/migration-service-discovery/) ## 与 GRPC 互通 diff --git a/content/zh/docs3-v2/java-sdk/upgrades-and-compatibility/protobuf&interface.md b/content/zh/docs3-v2/java-sdk/upgrades-and-compatibility/protobuf&interface.md index ad5165601f4b..87ca7e867c71 100644 --- a/content/zh/docs3-v2/java-sdk/upgrades-and-compatibility/protobuf&interface.md +++ b/content/zh/docs3-v2/java-sdk/upgrades-and-compatibility/protobuf&interface.md @@ -50,7 +50,7 @@ enum TrafficLightColor { * 生成的java代码 -![image](https://user-images.githubusercontent.com/22830937/124234531-b96c2c80-db46-11eb-8155-a77dbe059f07.png) +![image](/imgs/docs/advanced/protobufinterface/124234531-b96c2c80-db46-11eb-8155-a77dbe059f07.png) > 枚举是常量,因此采用大写 ### 1.2.2. 数组 @@ -65,7 +65,7 @@ message VipIDToRidReq { * 生成的java代码 -![image](https://user-images.githubusercontent.com/22830937/124234564-c4bf5800-db46-11eb-94fc-a056af6089cb.png) +![image](/imgs/docs/advanced/protobufinterface/124234564-c4bf5800-db46-11eb-94fc-a056af6089cb.png) > 底层实际上是1个ArrayList ### 2.2.3. 集合 @@ -84,7 +84,7 @@ message BatchOnlineRes { * 生成的java代码 -![image](https://user-images.githubusercontent.com/22830937/124234654-e4568080-db46-11eb-9700-b30022ebee21.png) +![image](/imgs/docs/advanced/protobufinterface/124234654-e4568080-db46-11eb-9700-b30022ebee21.png) ### 2.2.5. 嵌套 @@ -109,7 +109,7 @@ message AnchorInfo { * 生成的java代码 -![image](https://user-images.githubusercontent.com/22830937/124234723-f89a7d80-db46-11eb-82d0-a8aee5322098.png) +![image](/imgs/docs/advanced/protobufinterface/124234723-f89a7d80-db46-11eb-82d0-a8aee5322098.png) ## 3. 字段默认值 diff --git a/content/zh/docs3-v2/java-sdk/upgrades-and-compatibility/service-discovery/migration-service-discovery.md b/content/zh/docs3-v2/java-sdk/upgrades-and-compatibility/service-discovery/migration-service-discovery.md index d7e92f0e6a32..840f7f04469c 100644 --- a/content/zh/docs3-v2/java-sdk/upgrades-and-compatibility/service-discovery/migration-service-discovery.md +++ b/content/zh/docs3-v2/java-sdk/upgrades-and-compatibility/service-discovery/migration-service-discovery.md @@ -3,10 +3,11 @@ type: docs title: "接口级服务发现迁移至应用级服务发现指南" linkTitle: "接口级服务发现迁移至应用级服务发现指南" weight: 10 -description: "本文档专门针对使用 2.x 版本的老用户,详细阐述了升级到 3.x 后的默认地址注册与发现行为、如何平滑的迁移到新版本的地址模型。如关心迁移背后工作原理,请参考 [迁移规则详情与工作原理](../service-discovery-rule)" +description: "本文档专门针对使用 2.x 版本的老用户,详细阐述了升级到 3.x 后的默认地址注册与发现行为、如何平滑的迁移到新版本的地址模型。" --- **总体上来说,在地址注册与发现环节,3.x 是完全兼容 2.x 版本的,这意味着,用户可以选择将集群内任意数量的应用或机器升级到 3.x,同时在这个过程中保持与 2.x 版本的互操作性。** +如关心迁移背后工作原理,请参考 [迁移规则详情与工作原理](../service-discovery-rule) ## 1 快速升级步骤 @@ -137,7 +138,7 @@ services: ``` 使用这种方式能做到比较精细迁移控制,但是当下及后续的改造成本会比较高,除了一些特别场景,我们不太推荐启用这种配置方式。 -([迁移指南](../../advanced/migration-invoker/)) **官方推荐使用的全局的开关式的迁移策略,让消费端实例在启动阶段自行决策使用哪份可用的地址列表。** +([迁移指南](../service-discovery-rule/)) **官方推荐使用的全局的开关式的迁移策略,让消费端实例在启动阶段自行决策使用哪份可用的地址列表。** diff --git a/content/zh/docsv2.7/admin/install/redis.md b/content/zh/docsv2.7/admin/install/redis.md index 3c347bee254b..4f287d6f6fcb 100644 --- a/content/zh/docsv2.7/admin/install/redis.md +++ b/content/zh/docsv2.7/admin/install/redis.md @@ -5,9 +5,9 @@ linkTitle: "Redis 注册中心安装" weight: 4 --- -Redis [^1] 使用方式参见: [Redis 注册中心参考手册](http://dubbo.apache.org/books/dubbo-user-book/references/registry/redis.html)。 +Redis [^1] 使用方式参见: [Redis 注册中心参考手册](/zh/docsv2.7/user/references/registry/redis/)。 -只需搭一个原生的 Redis 服务器,并将[快速启动](http://dubbo.apache.org/books/dubbo-user-book/quick-start.html)中 Provider 和 Consumer 里的 `conf/dubbo.properties` 中的 `dubbo.registry.address` 的值改为 `redis://127.0.0.1:6379` 即可使用。 +只需搭一个原生的 Redis 服务器,并将[快速启动](/zh/docsv2.7/user/quick-start/)中 Provider 和 Consumer 里的 `conf/dubbo.properties` 中的 `dubbo.registry.address` 的值改为 `redis://127.0.0.1:6379` 即可使用。 Redis 注册中心集群 [^2] 采用在客户端同时写入多个服务器,读取单个服务器的策略实现。 diff --git a/content/zh/docsv2.7/admin/ops/pinpoint.md b/content/zh/docsv2.7/admin/ops/pinpoint.md index 86a16ae4adb7..d4e8d80c3631 100644 --- a/content/zh/docsv2.7/admin/ops/pinpoint.md +++ b/content/zh/docsv2.7/admin/ops/pinpoint.md @@ -62,7 +62,7 @@ weight: 5 ### 启动 Pinpoint -参考 Pinpoint 的 [Quick start](http://naver.github.io/pinpoint/quickstart.html) 搭建环境(不需要启动 TestApp) +参考 Pinpoint 的 [Quick start](https://pinpoint-apm.github.io/pinpoint/quickstart.html) 搭建环境(不需要启动 TestApp) ### 准备 Dubbo 示例程序 diff --git a/content/zh/docsv2.7/admin/ops/skywalking.md b/content/zh/docsv2.7/admin/ops/skywalking.md index b1901830cc49..21b19dd25c97 100644 --- a/content/zh/docsv2.7/admin/ops/skywalking.md +++ b/content/zh/docsv2.7/admin/ops/skywalking.md @@ -7,7 +7,7 @@ weight: 5 ## Apache Skywalking 简介 -[Apache Skywalking](https://github.com/apache/incubator-skywalking) 专门为微服务架构和云原生架构系统而设计并且支持分布式链路追踪的APM系统。[Apache Skywalking](https://github.com/apache/incubator-skywalking) 通过加载探针的方式收集应用调用链路信息,并对采集的调用链路信息进行分析,生成应用间关系和服务间关系以及服务指标。[Apache Skywalking](https://github.com/apache/incubator-skywalking) 目前支持多种语言,其中包括 [Java](https://github.com/apache/incubator-skywalking),[.Net Core](https://github.com/OpenSkywalking/skywalking-netcore),[Node.js](https://github.com/OpenSkywalking/skywalking-nodejs) 和 [Go](https://github.com/OpenSkywalking/skywalking-go) 语言。 +[Apache Skywalking](https://github.com/apache/skywalking) 专门为微服务架构和云原生架构系统而设计并且支持分布式链路追踪的APM系统。[Apache Skywalking](https://github.com/apache/skywalking) 通过加载探针的方式收集应用调用链路信息,并对采集的调用链路信息进行分析,生成应用间关系和服务间关系以及服务指标。[Apache Skywalking](https://github.com/apache/skywalking) 目前支持多种语言,其中包括 [Java](https://github.com/apache/skywalking),[.Net Core](https://github.com/SkyAPM/SkyAPM-dotnet),[Node.js](https://github.com/apache/skywalking-nodejs) 和 [Go](https://github.com/SkyAPM/go2sky) 语言。 目前 Skywalking 已经支持从 6 个可视化维度剖析分布式系统的运行情况。总览视图是应用和组件的全局视图,其中包括组件和应用数量,应用的告警波动,慢服务列表以及应用吞吐量;拓扑图从应用依赖关系出发,展现整个应用的拓扑关系;应用视图则是从单个应用的角度,展现应用的上下游关系,TopN 的服务和服务器,JVM 的相关信息以及对应的主机信息。服务视图关注单个服务入口的运行情况以及此服务的上下游依赖关系,依赖度,帮助用户针对单个服务的优化和监控;调用链展现了调用的单次请求经过的所有埋点以及每个埋点的执行时长;告警视图根据配置阈值针对应用、服务器、服务进行实时告警。 @@ -75,7 +75,7 @@ public class ConsumerController { ``` ### 部署 Apache Skywalking -Apache Skywalking 共提供两种部署模式:单节点模式和集群模式,以下为单节点模式部署步骤,集群模式部署详情参考[文档](https://github.com/apache/incubator-skywalking/blob/master/docs/cn/Deploy-backend-in-cluster-mode-CN.md)。 +Apache Skywalking 共提供两种部署模式:单节点模式和集群模式,以下为单节点模式部署步骤,集群模式部署详情参考[文档](https://skywalking.apache.org/docs/main/latest/en/setup/backend/backend-setup/)。 #### 依赖第三方组件 diff --git a/content/zh/docsv2.7/admin/ops/test.md b/content/zh/docsv2.7/admin/ops/test.md index 6b1888f87807..f5f596bfa28b 100644 --- a/content/zh/docsv2.7/admin/ops/test.md +++ b/content/zh/docsv2.7/admin/ops/test.md @@ -5,4 +5,4 @@ linkTitle: "服务测试" weight: 3 --- -请参考这篇[博客](../../../../../blog//2019/08/26/service-test/) +请参考这篇[博客](/zh/blog/2019/08/26/service-test/) diff --git a/content/zh/docsv2.7/dev/source/refer-service.md b/content/zh/docsv2.7/dev/source/refer-service.md index 90ed270c7bdc..a84fa473e1c7 100644 --- a/content/zh/docsv2.7/dev/source/refer-service.md +++ b/content/zh/docsv2.7/dev/source/refer-service.md @@ -40,7 +40,7 @@ public synchronized T get() { 以上两个方法的代码比较简短,并不难理解。这里需要特别说明一下,如果你对 2.6.4 及以下版本的 getObject 方法进行调试时,会碰到比较奇怪的的问题。这里假设你使用 IDEA,且保持了 IDEA 的默认配置。当你面调试到 get 方法的`if (ref == null)`时,你会发现 ref 不为空,导致你无法进入到 init 方法中继续调试。导致这个现象的原因是 Dubbo 框架本身有一些小问题。该问题已经在 pull request [#2754]() 修复了此问题,并跟随 2.6.5 版本发布了。如果你正在学习 2.6.4 及以下版本,可通过修改 IDEA 配置规避这个问题。首先 IDEA 配置弹窗中搜索 toString,然后取消`Enable 'toString' object view`勾选。具体如下: -![](https://blog-pictures.oss-cn-shanghai.aliyuncs.com/15417503733794.jpg) +![](/imgs/docsv2.7/dev/source/refer-service/15417503733794.jpg) ### 3.1 处理配置 diff --git a/content/zh/docsv2.7/dev/source/service-invoking-process.md b/content/zh/docsv2.7/dev/source/service-invoking-process.md index 14578defac5d..49e649c1e789 100644 --- a/content/zh/docsv2.7/dev/source/service-invoking-process.md +++ b/content/zh/docsv2.7/dev/source/service-invoking-process.md @@ -46,7 +46,7 @@ Dubbo 支持同步和异步两种调用方式,其中异步调用还可细分 * $ jad com.alibaba.dubbo.common.bytecode.proxy0 * * 更多使用方法请参考 Arthas 官方文档: - * https://alibaba.github.io/arthas/quick-start.html + * https://arthas.aliyun.com/doc/quick-start.html */ public class proxy0 implements ClassGenerator.DC, EchoService, DemoService { // 方法数组 diff --git a/content/zh/docsv2.7/user/examples/auth.md b/content/zh/docsv2.7/user/examples/auth.md index 4ae72b17364b..753d27601ad9 100644 --- a/content/zh/docsv2.7/user/examples/auth.md +++ b/content/zh/docsv2.7/user/examples/auth.md @@ -2,7 +2,7 @@ 类似支付之类的对安全性敏感的业务可能会有限制匿名调用的需求。在加固安全性方面,2.7.5 引入了基于AK/SK机制的认证鉴权机制,并且引入了鉴权服务中心,主要原理是消费端在请求需要鉴权的服务时,会通过SK、请求元数据、时间戳、参数等信息来生成对应的请求签名,通过Dubbo的Attahcment机制携带到对端进行验签,验签通过才进行业务逻辑处理。如下图所示: -![](https://raw.githubusercontent.com/Ooo0oO0o0oO/res/master/auth.png) +![](/imgs/docsv2.7/user/examples/auth/auth.png) diff --git a/content/zh/docsv2.7/user/examples/config-rule.md b/content/zh/docsv2.7/user/examples/config-rule.md index 495e9d1ddecd..d1c99388f836 100644 --- a/content/zh/docsv2.7/user/examples/config-rule.md +++ b/content/zh/docsv2.7/user/examples/config-rule.md @@ -15,7 +15,7 @@ description: "在 Dubbo 中配置应用级治理规则和服务级治理规则" ## 概览 -请在[服务治理控制台](http://47.91.207.147/#/governance/config)查看或修改覆盖规则。 +请在服务治理控制台查看或修改覆盖规则。 应用粒度 diff --git a/content/zh/docsv2.7/user/examples/logger-strategy.md b/content/zh/docsv2.7/user/examples/logger-strategy.md index 4b20751f5b8f..6e613cd3e5d2 100644 --- a/content/zh/docsv2.7/user/examples/logger-strategy.md +++ b/content/zh/docsv2.7/user/examples/logger-strategy.md @@ -26,4 +26,4 @@ description: "在 Dubbo 中适配日志框架" ``` -[1]: 自定义扩展可以参考 [日志适配扩展](../../../dev/impls/logger-adapter) +[1]: 自定义扩展可以参考 [日志适配扩展](../../../dev/impls/logger-adapter/) diff --git a/content/zh/docsv2.7/user/examples/multi-protocols.md b/content/zh/docsv2.7/user/examples/multi-protocols.md index a81e877d5502..7c1e09f8034b 100644 --- a/content/zh/docsv2.7/user/examples/multi-protocols.md +++ b/content/zh/docsv2.7/user/examples/multi-protocols.md @@ -50,4 +50,4 @@ Dubbo 允许配置多协议,在不同服务上支持不同协议或者同一 ``` -[^1]: 可以自行扩展协议,参见:[协议扩展](http://dubbo.apache.org/books/dubbo-dev-book/impls/protocol.html) +[^1]: 可以自行扩展协议,参见:[协议扩展](/zh/docsv2.7/dev/impls/protocol/) diff --git a/content/zh/docsv2.7/user/examples/routing-rule-deprecated.md b/content/zh/docsv2.7/user/examples/routing-rule-deprecated.md index d596d2cdeb64..4c41ee994f23 100644 --- a/content/zh/docsv2.7/user/examples/routing-rule-deprecated.md +++ b/content/zh/docsv2.7/user/examples/routing-rule-deprecated.md @@ -193,7 +193,7 @@ RpcContext.getContext().setAttachment(Constants.TAG_KEY,"red"); [^1]: `2.2.0` 以上版本支持 -[^2]: 路由规则扩展点:[路由扩展](../../../dev/impls/router) +[^2]: 路由规则扩展点:[路由扩展](/zh/docs3-v2/java-sdk/reference-manual/spi/description/router/) [^3]: 注意:一个服务只能有一条白名单规则,否则两条规则交叉,就都被筛选掉了 [^4]: 注意:脚本没有沙箱约束,可执行任意代码,存在后门风险 [^5]: 该特性在 `2.7.0` 以上版本支持 diff --git a/content/zh/docsv2.7/user/examples/routing-rule.md b/content/zh/docsv2.7/user/examples/routing-rule.md index b84be098c525..1436d5a5f92a 100644 --- a/content/zh/docsv2.7/user/examples/routing-rule.md +++ b/content/zh/docsv2.7/user/examples/routing-rule.md @@ -252,6 +252,6 @@ RpcContext.getContext().setAttachment(CommonConstants.TAG_KEY,"tag1"); {{% alert title="提示" color="primary" %}} `2.6.x` 版本以及更早的版本请使用[老版本路由规则](../routing-rule-deprecated) -自定义路由参考[路由扩展](../../../dev/impls/router) +自定义路由参考[路由扩展](/zh/docs3-v2/java-sdk/reference-manual/spi/description/router/) {{% /alert %}} diff --git a/content/zh/docsv2.7/user/examples/simplify-registry-data.md b/content/zh/docsv2.7/user/examples/simplify-registry-data.md index 65f41e7b2bb5..bcfbfa9e05e5 100644 --- a/content/zh/docsv2.7/user/examples/simplify-registry-data.md +++ b/content/zh/docsv2.7/user/examples/simplify-registry-data.md @@ -8,9 +8,9 @@ description: "减少注册中心上服务的注册数据" ## 背景 -Dubbo provider 中的服务配置项有接近 [30 个配置项](http://dubbo.apache.org/en-us/docs/user/references/xml/dubbo-service.html)。 排除注册中心服务治理需要之外,很大一部分配置项是 provider 自己使用,不需要透传给消费者。这部分数据不需要进入注册中心,而只需要以 key-value 形式持久化存储。 +Dubbo provider 中的服务配置项有接近 [30 个配置项](/en/docs/v2.7/user/references/xml/dubbo-service/)。 排除注册中心服务治理需要之外,很大一部分配置项是 provider 自己使用,不需要透传给消费者。这部分数据不需要进入注册中心,而只需要以 key-value 形式持久化存储。 -Dubbo consumer 中的配置项也有 [20+个配置项](http://dubbo.apache.org/en-us/docs/user/references/xml/dubbo-reference.html)。在注册中心之中,服务消费者列表中只需要关注 application,version,group,ip,dubbo 版本等少量配置,其他配置也可以以 key-value 形式持久化存储。 +Dubbo consumer 中的配置项也有 [20+个配置项](/en/docs/v2.7/user/references/xml/dubbo-reference/)。在注册中心之中,服务消费者列表中只需要关注 application,version,group,ip,dubbo 版本等少量配置,其他配置也可以以 key-value 形式持久化存储。 这些数据是以服务为维度注册进入注册中心,导致了数据量的膨胀,进而引发注册中心(如 zookeeper)的网络开销增大,性能降低。 diff --git a/content/zh/docsv2.7/user/examples/tls.md b/content/zh/docsv2.7/user/examples/tls.md index 6c90042b7b3d..3e460ce265c1 100644 --- a/content/zh/docsv2.7/user/examples/tls.md +++ b/content/zh/docsv2.7/user/examples/tls.md @@ -42,7 +42,7 @@ if (!mutualTls) {} 为尽可能保证应用启动的灵活性,TLS Cert 的指定还能通过 -D 参数或环境变量等方式来在启动阶段根据部署环境动态指定,具体请参见 Dubbo 配置读取规则与 TLS 示例 {{% alert title="提示" color="primary" %}} -参考 Dubbo [配置读取规则](../../configuration/configuration-load-process),TLS [示例](https://github.com/apache/dubbo-samples/tree/master/java/dubbo-samples-ssl) +参考 Dubbo [配置读取规则](../../configuration/configuration-load-process/),TLS [示例](https://github.com/apache/dubbo-samples/tree/master/dubbo-samples-ssl) 如果要使用的是 gRPC 协议,在开启 TLS 时会使用到协议协商机制,因此必须使用支持 ALPN 机制的 Provider,推荐使用的是 netty-tcnative,具体可参见 gRPC Java 社区的[总结]( https://github.com/grpc/grpc-java/blob/master/SECURITY.md) {{% /alert %}} diff --git a/content/zh/docsv2.7/user/languages/erlang/quick-start.md b/content/zh/docsv2.7/user/languages/erlang/quick-start.md index d57c4221027b..930e2b3a31a1 100644 --- a/content/zh/docsv2.7/user/languages/erlang/quick-start.md +++ b/content/zh/docsv2.7/user/languages/erlang/quick-start.md @@ -34,7 +34,7 @@ into the project's `apps` directory. ``` ## 消费者配置 -Please reference [Reference Config](./reference.md) +Please reference [Reference Config](../reference/) ## Init dubbolib in your project It is need you diff --git a/content/zh/docsv2.7/user/new-features-in-a-glance.md b/content/zh/docsv2.7/user/new-features-in-a-glance.md index 98a1557e145a..1fed8eca1364 100644 --- a/content/zh/docsv2.7/user/new-features-in-a-glance.md +++ b/content/zh/docsv2.7/user/new-features-in-a-glance.md @@ -30,17 +30,17 @@ Dubbo 社区目前主力维护的有 2.6.x 和 2.7.x 两大版本,其中, ## 值得关注的新特性 * Dubbo 云原生计划(敬请期待...) * Kubernetes Native Service Discovery(敬请期待...) -* [gRPC (HTTP/2) 协议](./references/protocol/gRPC.md) -* [使用 Protobuf 定义 Dubbo 服务](./demos/protobuf-idl.md) -* [TLS 安全传输](./demos/tls.md) -* [实例级服务发现]() -* [服务鉴权](./demos/auth.md) +* [gRPC (HTTP/2) 协议](../references/protocol/grpc/) +* [使用 Protobuf 定义 Dubbo 服务](../examples/protobuf-idl/) +* [TLS 安全传输](../examples/tls/) +* 实例级服务发现 +* [服务鉴权](../examples/auth/) * 性能优化 - * [调用链路提升 30%](/zh-cn/blog/2.7.5-release.html) - * [消费端线程模型](./demos/consumer-threadpool.md) - * [地址推送链路]() + * [调用链路提升 30%](/zh/blog/2020/05/18/2.7.5-功能解析/) + * [消费端线程模型](../examples/consumer-threadpool/) + * 地址推送链路 ## 热门文章列表 -[从 2019 到 2020,Apache Dubbo 年度总结](/zh-cn/blog/apache-dubbo-2019-2020.html) -[Dubbo 2.7.5 里程碑版本发布](/zh-cn/blog/2.7.5-release.html) -[Dubbo 在协议与多语言方向的探索:支持 gRPC、Protobuf](/zh-cn/blog/Dubbo-supporting-gRPC-HTTP2-and-protobuf.html) +[从 2019 到 2020,Apache Dubbo 年度总结](/zh/blog/2020/05/11/从-2019-到-2020apache-dubbo-年度回顾与总结/) +[Dubbo 2.7.5 里程碑版本发布](/zh/blog/2020/05/18/2.7.5-功能解析/) +[Dubbo 在协议与多语言方向的探索:支持 gRPC、Protobuf](/zh/blog/2019/10/28/dubbo-在跨语言和协议穿透性方向上的探索支持-http/2-grpc-和-protobuf/) diff --git a/content/zh/docsv2.7/user/references/metadata.md b/content/zh/docsv2.7/user/references/metadata.md index 6d5b03b4a6d1..891feeb43220 100644 --- a/content/zh/docsv2.7/user/references/metadata.md +++ b/content/zh/docsv2.7/user/references/metadata.md @@ -8,8 +8,8 @@ description: "Dubbo 服务元数据参考手册" ## 背景 -dubbo provider中的服务配置项有接近[30个配置项](https://dubbo.apache.org/zh/docs/v2.7/user/references/xml/dubbo-provider/)。 排除注册中心服务治理需要之外,很大一部分配置项是provider自己使用,不需要透传给消费者。这部分数据不需要进入注册中心,而只需要以key-value形式持久化存储。 -dubbo consumer中的配置项也有[20+个配置项](https://dubbo.apache.org/zh/docs/v2.7/user/references/xml/dubbo-consumer/)。在注册中心之中,服务消费者列表中只需要关注application,version,group,ip,dubbo版本等少量配置,其他配置也可以以key-value形式持久化存储。 +dubbo provider中的服务配置项有接近[30个配置项](/zh/docsv2.7/user/references/xml/dubbo-provider/)。 排除注册中心服务治理需要之外,很大一部分配置项是provider自己使用,不需要透传给消费者。这部分数据不需要进入注册中心,而只需要以key-value形式持久化存储。 +dubbo consumer中的配置项也有[20+个配置项](/zh/docsv2.7/user/references/xml/dubbo-consumer/)。在注册中心之中,服务消费者列表中只需要关注application,version,group,ip,dubbo版本等少量配置,其他配置也可以以key-value形式持久化存储。 这些数据是以服务为维度注册进入注册中心,导致了数据量的膨胀,进而引发注册中心(如zookeeper)的网络开销增大,性能降低。 除了上述配置项的存储之外,dubbo服务元数据信息也需要被存储下来。元数据信息包括服务接口,及接口的方法信息。这些信息将被用于服务mock,服务测试。 diff --git a/content/zh/docsv2.7/user/references/protocol/gRPC.md b/content/zh/docsv2.7/user/references/protocol/gRPC.md index ee13d4784105..c8d299b2ae22 100644 --- a/content/zh/docsv2.7/user/references/protocol/gRPC.md +++ b/content/zh/docsv2.7/user/references/protocol/gRPC.md @@ -21,5 +21,5 @@ Dubbo 自 2.7.5 版本开始支持 gRPC 协议,对于计划使用 HTTP/2 通 具体可参见以下[示例](https://github.com/apache/dubbo-samples/tree/master/dubbo-samples-grpc) -除了原生 StreamObserver 接口类型之外,Dubbo 还支持 [RxJava](https://github.com/apache/dubbo-samples/tree/master/java/dubbo-samples-grpc/dubbo-samples-rxjava)、[Reactor](https://github.com/apache/dubbo-samples/tree/master/java/dubbo-samples-grpc/dubbo-samples-reactor) 编程风格的 API +除了原生 StreamObserver 接口类型之外,Dubbo 还支持 [RxJava](https://github.com/apache/dubbo-samples/tree/master/dubbo-samples-grpc/dubbo-samples-rxjava)、[Reactor](https://github.com/apache/dubbo-samples/tree/master/dubbo-samples-grpc/dubbo-samples-reactor) 编程风格的 API diff --git a/content/zh/docsv2.7/user/references/registry/redis.md b/content/zh/docsv2.7/user/references/registry/redis.md index 7b2a507febcf..c61f14cf42dd 100644 --- a/content/zh/docsv2.7/user/references/registry/redis.md +++ b/content/zh/docsv2.7/user/references/registry/redis.md @@ -75,12 +75,3 @@ Redis 过期数据通过心跳的方式检测脏数据,服务器时间必须 ## 可靠性声明 阿里内部并没有采用 Redis 做为注册中心,而是使用自己实现的基于数据库的注册中心,即:Redis 注册中心并没有在阿里内部长时间运行的可靠性保障,此 Redis 桥接实现只为开源版本提供,其可靠性依赖于 Redis 本身的可靠性。 - - -## 安装 - - -安装方式参见: [Redis安装手册]( ../../../admin/install/redis.md),只需搭一个原生的 Redis 服务器,并将 [Quick Start](../../preface/usage.md) 中 Provider 和 Consumer 里的 `conf/dubbo.properties` 中的 `dubbo.registry.address` 的值改为 `redis://127.0.0.1:6379` 即可使用。 - - -[^1]: [Redis](http://redis.io) 是一个高效的 KV 存储服务器 diff --git a/content/zh/docsv2.7/user/references/registry/zookeeper.md b/content/zh/docsv2.7/user/references/registry/zookeeper.md index 5ffc7902baf9..df47b85cdeb1 100644 --- a/content/zh/docsv2.7/user/references/registry/zookeeper.md +++ b/content/zh/docsv2.7/user/references/registry/zookeeper.md @@ -38,7 +38,7 @@ description: "Zookeeper 注册中心参考手册"
``` -或直接[下载](http://repo1.maven.org/maven2/org/apache/zookeeper/zookeeper)。 +或直接[下载](https://repo1.maven.org/maven2/org/apache/zookeeper/zookeeper)。 Dubbo 支持 zkclient 和 curator 两种 Zookeeper 客户端实现: @@ -66,7 +66,7 @@ dubbo.registry.client=zkclient zookeeper://10.20.153.10:2181?client=zkclient ``` -需依赖或直接[下载](http://repo1.maven.org/maven2/com/github/sgroschupf/zkclient): +需依赖或直接[下载](https://repo1.maven.org/maven2/com/github/sgroschupf/zkclient): ```xml diff --git a/content/zh/docsv2.7/user/rest.md b/content/zh/docsv2.7/user/rest.md index 56bc7b36c68d..d5d54f144d8f 100644 --- a/content/zh/docsv2.7/user/rest.md +++ b/content/zh/docsv2.7/user/rest.md @@ -183,7 +183,7 @@ JAX-RS是标准的Java REST API,得到了业界的广泛支持和应用,其 JAX-RS在网上的资料非常丰富,例如下面的入门教程: -* Oracle官方的tutorial:http://docs.oracle.com/javaee/7/tutorial/doc/jaxrs.htm +* Oracle官方的tutorial:https://www.oracle.com/technical-resources/articles/java/jax-rs.html * IBM developerWorks中国站文章:http://www.ibm.com/developerworks/cn/java/j-lo-jaxrs/ 更多的资料请自行google或者百度一下。就学习JAX-RS来说,一般主要掌握其各种annotation的用法即可。 diff --git a/content/zh/docsv2.7/user/versions/version-270.md b/content/zh/docsv2.7/user/versions/version-270.md index 567cd08abd94..88ccae66df7f 100644 --- a/content/zh/docsv2.7/user/versions/version-270.md +++ b/content/zh/docsv2.7/user/versions/version-270.md @@ -88,7 +88,7 @@ dubbo.metadataReport.address=redis://127.0.0.1:6379 ``` 建议将此配置集中管理,参考[外部化配置](#1.2)。 -在此了解更多[元数据中心]()设计目的与用途。 +在此了解更多元数据中心设计目的与用途。 @@ -109,7 +109,7 @@ dubbo.metadataReport.address=redis://127.0.0.1:6379 ``` -通过[OPS控制台](http://47.91.207.147/#/management?key=global)将以下全局配置迁移到配置中心,成为所有应用共享的配置。 +通过OPS控制台将以下全局配置迁移到配置中心,成为所有应用共享的配置。 ```properties dubbo.registry.address=zookeeper://127.0.0.1:2181 @@ -133,7 +133,7 @@ dubbo.protocol.port=20880 -这里增加了一篇[Dubbo配置方式]()的说明文档,详细描述了Dubbo当前支持的配置类型、不同配置之间的覆盖关系等。 +这里增加了一篇Dubbo配置方式的说明文档,详细描述了Dubbo当前支持的配置类型、不同配置之间的覆盖关系等。 @@ -141,7 +141,7 @@ dubbo.protocol.port=20880 2.7版本可以读取到老的治理规则,因此不用担心升级2.7的应用后老规则会失效,可以选择先升级上线,再慢慢的做增量式规则迁移。 -请参考[OPS -> 服务治理](http://47.91.207.147/#/governance/routingRule)了解规则配置方式,这里我们重点关注的是规则格式,以下提供几个简单示例: +请参考OPS -> 服务治理了解规则配置方式,这里我们重点关注的是规则格式,以下提供几个简单示例: - 条件路由 @@ -212,7 +212,7 @@ dubbo.protocol.port=20880 -点击链接,了解关于异步API如何使用的更多[使用示例]()。 +点击链接,了解关于异步API如何使用的更多使用示例。 diff --git a/content/zh/overview/_index.md b/content/zh/overview/_index.md index b4078a49b761..4c7b7addd3af 100755 --- a/content/zh/overview/_index.md +++ b/content/zh/overview/_index.md @@ -19,11 +19,10 @@ Dubbo 是一款包含多种语言实现(Java、Golang等)的 RPC 服务框 * **如果你是第一次接触 Dubbo**,可以通过以下链接快速了解 Dubbo: * [什么是 Dubbo](what/overview) - * [用户案例与生态](../../users/) + * [用户案例与生态](/zh/users/) * 通过 [**快速开始**](quickstart/) 体验 Dubbo * 想了解更多 Dubbo 特性与使用细节? * 选择相应 [**多语言 SDK 实现**](mannual/),并参考**高级特性**或**参考手册** - * [**FAQ**](faq) * 老用户,想快速了解 **Dubbo 3.0** 相关知识 * [3.0 特性一览](whatsnew/) * 查看相应[多语言 SDK 实现](mannual/),了解升级与兼容性 diff --git a/content/zh/overview/tasks/traffic-management/isolation.md b/content/zh/overview/tasks/traffic-management/isolation.md index 6f751ca69dda..3acf5af4b0e3 100644 --- a/content/zh/overview/tasks/traffic-management/isolation.md +++ b/content/zh/overview/tasks/traffic-management/isolation.md @@ -8,7 +8,7 @@ description: "在 Dubbo 中配置应用级治理规则和服务级治理规则" > **提示** > -> 本文描述的是新版本规则配置,而不是[老版本配置规则](https://dubbo.apache.org/zh/docs/advanced/config-rule-deprecated) +> 本文描述的是新版本规则配置,而不是[老版本配置规则](/zh/docs/advanced/config-rule-deprecated) # 配置规则 @@ -123,7 +123,7 @@ dubbo-samples-applevel-override示例中,BasicConsumer类和BascicProvider类 目前需要临时剔除在20880端口的提供者,可以使用覆盖规则进行动态配置。 -1.打开[服务治理控制台](http://0.0.0.0/#/governance/config),点击”创建“,填入应用名和配置,这个配置将禁用在20880端口上提供(side:provider)的所有服务(scope:application)。 +1.打开服务治理控制台,点击”创建“,填入应用名和配置,这个配置将禁用在20880端口上提供(side:provider)的所有服务(scope:application)。 ```yaml configVersion: v2.7 @@ -196,7 +196,7 @@ dubbo-samples-servicelevel-override示例与上面的示例类似,故不赘述 目前需要修改提供者服务的超时时间 -1.打开[服务治理控制台](http://0.0.0.0/#/governance/config),点击”创建“,填入服务名和配置,这个配置将所有消费(side:consumer)DemoService服务(org.apache.dubbo.samples.governance.api.DemoService)的应用实例(addresses:[0.0.0.0]),超时时间修改为300ms +1.打开服务治理控制台,点击”创建“,填入服务名和配置,这个配置将所有消费(side:consumer)DemoService服务(org.apache.dubbo.samples.governance.api.DemoService)的应用实例(addresses:[0.0.0.0]),超时时间修改为300ms ```yaml configVersion: v2.7 diff --git a/content/zh/overview/tasks/traffic-management/timeout.md b/content/zh/overview/tasks/traffic-management/timeout.md index 425f043421d5..3d15a684c592 100644 --- a/content/zh/overview/tasks/traffic-management/timeout.md +++ b/content/zh/overview/tasks/traffic-management/timeout.md @@ -8,7 +8,7 @@ description: "在 Dubbo 中配置应用级治理规则和服务级治理规则" > **提示** > -> 本文描述的是新版本规则配置,而不是[老版本配置规则](https://dubbo.apache.org/zh/docs/advanced/config-rule-deprecated) +> 本文描述的是新版本规则配置,而不是[老版本配置规则](/zh/docs/advanced/config-rule-deprecated) # 配置规则 @@ -123,7 +123,7 @@ dubbo-samples-applevel-override示例中,BasicConsumer类和BascicProvider类 目前需要临时剔除在20880端口的提供者,可以使用覆盖规则进行动态配置。 -1.打开[服务治理控制台](http://0.0.0.0/#/governance/config),点击”创建“,填入应用名和配置,这个配置将禁用在20880端口上提供(side:provider)的所有服务(scope:application)。 +1.打开服务治理控制台,点击”创建“,填入应用名和配置,这个配置将禁用在20880端口上提供(side:provider)的所有服务(scope:application)。 ```yaml configVersion: v2.7 @@ -196,7 +196,7 @@ dubbo-samples-servicelevel-override示例与上面的示例类似,故不赘述 目前需要修改提供者服务的超时时间 -1.打开[服务治理控制台](http://0.0.0.0/#/governance/config),点击”创建“,填入服务名和配置,这个配置将所有消费(side:consumer)DemoService服务(org.apache.dubbo.samples.governance.api.DemoService)的应用实例(addresses:[0.0.0.0]),超时时间修改为300ms +1.打开服务治理控制台,点击”创建“,填入服务名和配置,这个配置将所有消费(side:consumer)DemoService服务(org.apache.dubbo.samples.governance.api.DemoService)的应用实例(addresses:[0.0.0.0]),超时时间修改为300ms ```yaml configVersion: v2.7 diff --git a/content/zh/overview/tasks/traffic-management/traffic-condition.md b/content/zh/overview/tasks/traffic-management/traffic-condition.md index 30e8664f86cc..1fa46f9af13c 100644 --- a/content/zh/overview/tasks/traffic-management/traffic-condition.md +++ b/content/zh/overview/tasks/traffic-management/traffic-condition.md @@ -9,7 +9,7 @@ toc_hide: true > **提示** > -> 本文描述的是新版本规则配置,而不是[老版本配置规则](https://dubbo.apache.org/zh/docs/advanced/config-rule-deprecated) +> 本文描述的是新版本规则配置,而不是[老版本配置规则](/zh/docs/advanced/config-rule-deprecated) # 配置规则 @@ -124,7 +124,7 @@ dubbo-samples-applevel-override示例中,BasicConsumer类和BascicProvider类 目前需要临时剔除在20880端口的提供者,可以使用覆盖规则进行动态配置。 -1.打开[服务治理控制台](http://0.0.0.0/#/governance/config),点击”创建“,填入应用名和配置,这个配置将禁用在20880端口上提供(side:provider)的所有服务(scope:application)。 +1.打开服务治理控制台,点击”创建“,填入应用名和配置,这个配置将禁用在20880端口上提供(side:provider)的所有服务(scope:application)。 ```yaml configVersion: v2.7 @@ -197,7 +197,7 @@ dubbo-samples-servicelevel-override示例与上面的示例类似,故不赘述 目前需要修改提供者服务的超时时间 -1.打开[服务治理控制台](http://0.0.0.0/#/governance/config),点击”创建“,填入服务名和配置,这个配置将所有消费(side:consumer)DemoService服务(org.apache.dubbo.samples.governance.api.DemoService)的应用实例(addresses:[0.0.0.0]),超时时间修改为300ms +1.打开服务治理控制台,点击”创建“,填入服务名和配置,这个配置将所有消费(side:consumer)DemoService服务(org.apache.dubbo.samples.governance.api.DemoService)的应用实例(addresses:[0.0.0.0]),超时时间修改为300ms ```yaml configVersion: v2.7 diff --git a/content/zh/overview/tasks/traffic-management/traffic-gray.md b/content/zh/overview/tasks/traffic-management/traffic-gray.md index a4d2098f7c58..0d2cd02ea75b 100644 --- a/content/zh/overview/tasks/traffic-management/traffic-gray.md +++ b/content/zh/overview/tasks/traffic-management/traffic-gray.md @@ -9,7 +9,7 @@ toc_hide: true > **提示** > -> 本文描述的是新版本规则配置,而不是[老版本配置规则](https://dubbo.apache.org/zh/docs/advanced/config-rule-deprecated) +> 本文描述的是新版本规则配置,而不是[老版本配置规则](/zh/docs/advanced/config-rule-deprecated) # 配置规则 @@ -124,7 +124,7 @@ dubbo-samples-applevel-override示例中,BasicConsumer类和BascicProvider类 目前需要临时剔除在20880端口的提供者,可以使用覆盖规则进行动态配置。 -1.打开[服务治理控制台](http://0.0.0.0/#/governance/config),点击”创建“,填入应用名和配置,这个配置将禁用在20880端口上提供(side:provider)的所有服务(scope:application)。 +1.打开服务治理控制台,点击”创建“,填入应用名和配置,这个配置将禁用在20880端口上提供(side:provider)的所有服务(scope:application)。 ```yaml configVersion: v2.7 @@ -197,7 +197,7 @@ dubbo-samples-servicelevel-override示例与上面的示例类似,故不赘述 目前需要修改提供者服务的超时时间 -1.打开[服务治理控制台](http://0.0.0.0/#/governance/config),点击”创建“,填入服务名和配置,这个配置将所有消费(side:consumer)DemoService服务(org.apache.dubbo.samples.governance.api.DemoService)的应用实例(addresses:[0.0.0.0]),超时时间修改为300ms +1.打开服务治理控制台,点击”创建“,填入服务名和配置,这个配置将所有消费(side:consumer)DemoService服务(org.apache.dubbo.samples.governance.api.DemoService)的应用实例(addresses:[0.0.0.0]),超时时间修改为300ms ```yaml configVersion: v2.7 diff --git a/content/zh/overview/tasks/traffic-management/traffic-routing.md b/content/zh/overview/tasks/traffic-management/traffic-routing.md index 8dd6e95b768c..6379bd02aa7f 100644 --- a/content/zh/overview/tasks/traffic-management/traffic-routing.md +++ b/content/zh/overview/tasks/traffic-management/traffic-routing.md @@ -9,7 +9,7 @@ toc_hide: true > **提示** > -> 本文描述的是新版本规则配置,而不是[老版本配置规则](https://dubbo.apache.org/zh/docs/advanced/config-rule-deprecated) +> 本文描述的是新版本规则配置,而不是[老版本配置规则](/zh/docs/advanced/config-rule-deprecated) # 配置规则 @@ -124,7 +124,7 @@ dubbo-samples-applevel-override示例中,BasicConsumer类和BascicProvider类 目前需要临时剔除在20880端口的提供者,可以使用覆盖规则进行动态配置。 -1.打开[服务治理控制台](http://0.0.0.0/#/governance/config),点击”创建“,填入应用名和配置,这个配置将禁用在20880端口上提供(side:provider)的所有服务(scope:application)。 +1.打开服务治理控制台,点击”创建“,填入应用名和配置,这个配置将禁用在20880端口上提供(side:provider)的所有服务(scope:application)。 ```yaml configVersion: v2.7 @@ -197,7 +197,7 @@ dubbo-samples-servicelevel-override示例与上面的示例类似,故不赘述 目前需要修改提供者服务的超时时间 -1.打开[服务治理控制台](http://0.0.0.0/#/governance/config),点击”创建“,填入服务名和配置,这个配置将所有消费(side:consumer)DemoService服务(org.apache.dubbo.samples.governance.api.DemoService)的应用实例(addresses:[0.0.0.0]),超时时间修改为300ms +1.打开服务治理控制台,点击”创建“,填入服务名和配置,这个配置将所有消费(side:consumer)DemoService服务(org.apache.dubbo.samples.governance.api.DemoService)的应用实例(addresses:[0.0.0.0]),超时时间修改为300ms ```yaml configVersion: v2.7 diff --git a/content/zh/overview/tasks/traffic-management/weight.md b/content/zh/overview/tasks/traffic-management/weight.md index ac7060f58722..769d5a051966 100644 --- a/content/zh/overview/tasks/traffic-management/weight.md +++ b/content/zh/overview/tasks/traffic-management/weight.md @@ -8,7 +8,7 @@ description: "在 Dubbo 中配置应用级治理规则和服务级治理规则" > **提示** > -> 本文描述的是新版本规则配置,而不是[老版本配置规则](https://dubbo.apache.org/zh/docs/advanced/config-rule-deprecated) +> 本文描述的是新版本规则配置,而不是[老版本配置规则](/zh/docs/advanced/config-rule-deprecated) # 配置规则 @@ -123,7 +123,7 @@ dubbo-samples-applevel-override示例中,BasicConsumer类和BascicProvider类 目前需要临时剔除在20880端口的提供者,可以使用覆盖规则进行动态配置。 -1.打开[服务治理控制台](http://0.0.0.0/#/governance/config),点击”创建“,填入应用名和配置,这个配置将禁用在20880端口上提供(side:provider)的所有服务(scope:application)。 +1.打开服务治理控制台,点击”创建“,填入应用名和配置,这个配置将禁用在20880端口上提供(side:provider)的所有服务(scope:application)。 ```yaml configVersion: v2.7 @@ -196,7 +196,7 @@ dubbo-samples-servicelevel-override示例与上面的示例类似,故不赘述 目前需要修改提供者服务的超时时间 -1.打开[服务治理控制台](http://0.0.0.0/#/governance/config),点击”创建“,填入服务名和配置,这个配置将所有消费(side:consumer)DemoService服务(org.apache.dubbo.samples.governance.api.DemoService)的应用实例(addresses:[0.0.0.0]),超时时间修改为300ms +1.打开服务治理控制台,点击”创建“,填入服务名和配置,这个配置将所有消费(side:consumer)DemoService服务(org.apache.dubbo.samples.governance.api.DemoService)的应用实例(addresses:[0.0.0.0]),超时时间修改为300ms ```yaml configVersion: v2.7 diff --git a/content/zh/overview/tasks/traffic-management/zone.md b/content/zh/overview/tasks/traffic-management/zone.md index e09145bf2d52..58edf36169c4 100644 --- a/content/zh/overview/tasks/traffic-management/zone.md +++ b/content/zh/overview/tasks/traffic-management/zone.md @@ -9,7 +9,7 @@ toc_hide: true > **提示** > -> 本文描述的是新版本规则配置,而不是[老版本配置规则](https://dubbo.apache.org/zh/docs/advanced/config-rule-deprecated) +> 本文描述的是新版本规则配置,而不是[老版本配置规则](/zh/docs/advanced/config-rule-deprecated) # 配置规则 @@ -124,7 +124,7 @@ dubbo-samples-applevel-override示例中,BasicConsumer类和BascicProvider类 目前需要临时剔除在20880端口的提供者,可以使用覆盖规则进行动态配置。 -1.打开[服务治理控制台](http://0.0.0.0/#/governance/config),点击”创建“,填入应用名和配置,这个配置将禁用在20880端口上提供(side:provider)的所有服务(scope:application)。 +1.打开服务治理控制台,点击”创建“,填入应用名和配置,这个配置将禁用在20880端口上提供(side:provider)的所有服务(scope:application)。 ```yaml configVersion: v2.7 @@ -197,7 +197,7 @@ dubbo-samples-servicelevel-override示例与上面的示例类似,故不赘述 目前需要修改提供者服务的超时时间 -1.打开[服务治理控制台](http://0.0.0.0/#/governance/config),点击”创建“,填入服务名和配置,这个配置将所有消费(side:consumer)DemoService服务(org.apache.dubbo.samples.governance.api.DemoService)的应用实例(addresses:[0.0.0.0]),超时时间修改为300ms +1.打开服务治理控制台,点击”创建“,填入服务名和配置,这个配置将所有消费(side:consumer)DemoService服务(org.apache.dubbo.samples.governance.api.DemoService)的应用实例(addresses:[0.0.0.0]),超时时间修改为300ms ```yaml configVersion: v2.7 diff --git a/content/zh/overview/tasks/triple/idl.md b/content/zh/overview/tasks/triple/idl.md index 6057380cdb64..86e4b9a829e6 100644 --- a/content/zh/overview/tasks/triple/idl.md +++ b/content/zh/overview/tasks/triple/idl.md @@ -12,7 +12,7 @@ description: "" 下面从定义服务、编译服务、配置并加载服务三个方面说明如何快速的开发 Dubbo 服务。 ## 定义服务 -Dubbo3 推荐使用 IDL 定义跨语言服务,如您更习惯使用特定语言的服务定义方式,请移步[多语言 SDK](../mannual)查看。 +Dubbo3 推荐使用 IDL 定义跨语言服务,如您更习惯使用特定语言的服务定义方式,请移步[多语言 SDK](/zh/docs3-v2/)查看。 ```text syntax = "proto3"; @@ -197,8 +197,4 @@ func main() { } gxlog.CInfo("response result: %v\n", user) } -``` - -## 查看完整示例 -* [Java IDL Quick Start]() -* [Golang IDL Quick Start]() +``` \ No newline at end of file diff --git a/content/zh/overview/tasks/triple/streaming.md b/content/zh/overview/tasks/triple/streaming.md index 2214fa71e88f..947eb96ea485 100644 --- a/content/zh/overview/tasks/triple/streaming.md +++ b/content/zh/overview/tasks/triple/streaming.md @@ -13,7 +13,7 @@ toc_hide: true 下面从定义服务、编译服务、配置并加载服务三个方面说明如何快速的开发 Dubbo 服务。 ## 定义服务 -Dubbo3 推荐使用 IDL 定义跨语言服务,如您更习惯使用特定语言的服务定义方式,请移步[多语言 SDK](../mannual)查看。 +Dubbo3 推荐使用 IDL 定义跨语言服务,如您更习惯使用特定语言的服务定义方式,请移步[多语言 SDK](/zh/docs3-v2/)查看。 ```text syntax = "proto3"; @@ -199,7 +199,3 @@ func main() { gxlog.CInfo("response result: %v\n", user) } ``` - -## 查看完整示例 -* [Java IDL Quick Start]() -* [Golang IDL Quick Start]() diff --git a/content/zh/overview/what/_index.md b/content/zh/overview/what/_index.md index 56296495d5a8..066fd9fc802d 100644 --- a/content/zh/overview/what/_index.md +++ b/content/zh/overview/what/_index.md @@ -12,6 +12,6 @@ Apache Dubbo 是一款 RPC 微服务框架,提供了包括 Java、Golang 等 * 高级用法请参考 [多语言 SDK 文档](../mannual) * 关注 Dubbo3 * [3.0 设计理念与核心功能](../whatsnew/background) - * [如何迁移到 Dubbo3](../../java-sdk/upgrades-and-compatibility) + * [如何迁移到 Dubbo3](/zh/docs3-v2/java-sdk/upgrades-and-compatibility) diff --git a/content/zh/overview/what/ecosystem.md b/content/zh/overview/what/ecosystem.md index b07a34343405..6aef24362fad 100644 --- a/content/zh/overview/what/ecosystem.md +++ b/content/zh/overview/what/ecosystem.md @@ -35,21 +35,21 @@ Dubbo 实现普遍支持以下产品或部署架构,具体多语言 SDK 实现 ### SPI 集成 这里有众多的 Dubbo 扩展实现,包括协议、序列化、注册中心等 -* [dubbo-spi-extensions]() +* [dubbo-spi-extensions] ### 网关组件 -* [Apache Shenyu(Incubating)](https://dubbo.apache.org/zh/blog/2022/05/04/%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87-apache-shenyu-%E7%BD%91%E5%85%B3%E4%BB%A3%E7%90%86-dubbo-%E6%9C%8D%E5%8A%A1/) -* [Apache APISIX](https://dubbo.apache.org/zh/blog/2022/01/18/%E4%BB%8E%E5%8E%9F%E7%90%86%E5%88%B0%E6%93%8D%E4%BD%9C%E8%AE%A9%E4%BD%A0%E5%9C%A8-apache-apisix-%E4%B8%AD%E4%BB%A3%E7%90%86-dubbo-%E6%9C%8D%E5%8A%A1%E6%9B%B4%E4%BE%BF%E6%8D%B7/) -* [Apache Dubbo-pixiu]() -* [Tengine]() +* [Apache Shenyu(Incubating)](/zh/blog/2022/05/04/%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87-apache-shenyu-%E7%BD%91%E5%85%B3%E4%BB%A3%E7%90%86-dubbo-%E6%9C%8D%E5%8A%A1/) +* [Apache APISIX](/zh/blog/2022/01/18/%E4%BB%8E%E5%8E%9F%E7%90%86%E5%88%B0%E6%93%8D%E4%BD%9C%E8%AE%A9%E4%BD%A0%E5%9C%A8-apache-apisix-%E4%B8%AD%E4%BB%A3%E7%90%86-dubbo-%E6%9C%8D%E5%8A%A1%E6%9B%B4%E4%BE%BF%E6%8D%B7/) +* [Apache Dubbo-pixiu] +* [Tengine] ### 链路追踪 -* [Zipkin]() -* [Apache Skywalking]() +* [Zipkin] +* [Apache Skywalking] ### 其他微服务组件 -* 限流 [Sentinel]() -* 事务 [Seata]() +* 限流 [Sentinel] +* 事务 [Seata] ### 多语言实现 * Golang diff --git a/content/zh/overview/what/extensibility.md b/content/zh/overview/what/extensibility.md index bd6565fe1e68..647b1b0a70da 100644 --- a/content/zh/overview/what/extensibility.md +++ b/content/zh/overview/what/extensibility.md @@ -97,4 +97,4 @@ Dubbo 扩展能力使得 Dubbo 项目很方便的切分成一个一个的子模 * 如果你需要实现自定义的注册中心,你可以使用 Dubbo 扩展能力。 * 如果你需要实现自定义的过滤器,你可以使用 Dubbo 扩展能力。 -Dubbo 扩展平等的对待内部实现和第三方实现。更多使用场景,参见 [SPI 扩展实现](../../references/spis/) \ No newline at end of file +Dubbo 扩展平等的对待内部实现和第三方实现。更多使用场景,参见 [SPI 扩展实现](/zh/docs3-v2/java-sdk/reference-manual/spi/description/) \ No newline at end of file diff --git a/content/zh/overview/what/overview.md b/content/zh/overview/what/overview.md index 6ae0d338c680..bc0f792977f8 100644 --- a/content/zh/overview/what/overview.md +++ b/content/zh/overview/what/overview.md @@ -9,7 +9,7 @@ description: "" Apache Dubbo 是一款 RPC 服务开发框架,用于解决微服务架构下的服务治理与通信问题,官方提供了 Java、Golang 等多语言 SDK 实现。使用 Dubbo 开发的微服务原生具备相互之间的远程地址发现与通信能力, 利用 Dubbo 提供的丰富服务治理特性,可以实现诸如服务发现、负载均衡、流量调度等服务治理诉求。Dubbo 被设计为高度可扩展,用户可以方便的实现流量拦截、选址的各种定制逻辑。 -Dubbo3 定义为面向云原生的下一代 RPC 服务框架。3.0 基于 [Dubbo 2.x](../../docsv2.7) 演进而来,在保持原有核心功能特性的同时, Dubbo3 在易用性、超大规模微服务实践、云原生基础设施适配、安全性等几大方向上进行了全面升级。 +Dubbo3 定义为面向云原生的下一代 RPC 服务框架。3.0 基于 [Dubbo 2.x](/zh/docsv2.7) 演进而来,在保持原有核心功能特性的同时, Dubbo3 在易用性、超大规模微服务实践、云原生基础设施适配、安全性等几大方向上进行了全面升级。 ### Dubbo 是什么 @@ -39,7 +39,7 @@ Apache Dubbo 总体架构能很好的满足企业的大规模微服务实践, ![dubbo-rpc](/imgs/v3/concepts/rpc.png) Dubbo 首先是一款 RPC 框架,它定义了自己的 RPC 通信协议与编程方式。如上图所示,用户在使用 Dubbo 时首先需要定义好 Dubbo 服务;其次,是在将 Dubbo 服务部署上线之后,依赖 Dubbo 的应用层通信协议实现数据交换,Dubbo 所传输的数据都要经过序列化,而这里的序列化协议是完全可扩展的。 -使用 Dubbo 的第一步就是定义 Dubbo 服务,服务在 Dubbo 中的定义就是完成业务功能的一组方法的集合,可以选择使用与某种语言绑定的方式定义,如在 Java 中 Dubbo 服务就是有一组方法的 Interface 接口,也可以使用语言中立的 Protobuf Buffers [IDL 定义服务](../../tasks/idl)。定义好服务之后,服务端(Provider)需要提供服务的具体实现,并将其声明为 Dubbo 服务,而站在服务消费方(Consumer)的视角,通过调用 Dubbo 框架提供的 API 可以获得一个服务代理(stub)对象,然后就可以像使用本地服务一样对服务方法发起调用了。 +使用 Dubbo 的第一步就是定义 Dubbo 服务,服务在 Dubbo 中的定义就是完成业务功能的一组方法的集合,可以选择使用与某种语言绑定的方式定义,如在 Java 中 Dubbo 服务就是有一组方法的 Interface 接口,也可以使用语言中立的 Protobuf Buffers [IDL 定义服务](../../tasks/triple/idl/)。定义好服务之后,服务端(Provider)需要提供服务的具体实现,并将其声明为 Dubbo 服务,而站在服务消费方(Consumer)的视角,通过调用 Dubbo 框架提供的 API 可以获得一个服务代理(stub)对象,然后就可以像使用本地服务一样对服务方法发起调用了。 在消费端对服务方法发起调用后,Dubbo 框架负责将请求发送到部署在远端机器上的服务提供方,提供方收到请求后会调用服务的实现类,之后将处理结果返回给消费端,这样就完成了一次完整的服务调用。如图中的 Request、Response 数据流程所示。 >需要注意的是,在 Dubbo 中,我们提到服务时,通常是指 RPC 粒度的、提供某个具体业务增删改功能的接口或方法,与一些微服务概念书籍中泛指的服务并不是一个概念。 @@ -80,7 +80,7 @@ Dubbo 从设计上是完全遵循云原生微服务开发理念的,这体现 值得一提的是,如何使用 Dubbo 支持弹性伸缩的服务如 Serverless 也在未来计划之中,这包括利用 Native Image 提高 Dubbo 的启动速度与资源消耗等。 结合当前版本,本节主要从以下两点展开 Dubbo 的云原生特性 -* [容器调度平台(Kubernetes)](../../tasks/deploy-on-k8s) +* [容器调度平台(Kubernetes)](../../tasks/kubernetes/deploy-on-k8s) * [Dubbo Mesh](../../whatsnew/mesh) ##### Kubernetes diff --git a/content/zh/overview/whatsnew/_index.md b/content/zh/overview/whatsnew/_index.md index 1c78842e35d5..0e1a4f156e62 100755 --- a/content/zh/overview/whatsnew/_index.md +++ b/content/zh/overview/whatsnew/_index.md @@ -4,16 +4,6 @@ type: docs title: "3.0 速览" linkTitle: "3.0 速览" weight: 3 -content: - - 核心特性: - - "[Triple]()" - - "[Examples]()" - - 关注迁移: - - "[Java](../java-sdk/)" - - "[Golang](../golang-sdk/upgrades-and-compatibility/)" - - 其他问题: - - "[性能指标](../java-sdk/)" - - "[相关资源](../golang-sdk/upgrades-and-compatibility/)" cascade: - show_banner: true --- @@ -24,8 +14,8 @@ cascade: * [百万实例集群的秘密 - 应用级服务发现](service-discovery) * [Dubbo Mesh](mesh) * Dubbo3 的兼容性与迁移成本? - * [Java - 迁移指南](../../java-sdk/upgrades-and-compatibility) - * [Golang - 迁移指南](../../golang-sdk/) + * [Java - 迁移指南](/zh/docs3-v2/java-sdk/upgrades-and-compatibility) + * [Golang - 迁移指南](/zh/docs3-v2/golang-sdk/) * 其他 **Dubbo3 相关资源:** * 更多资料,如性能指标、高级特性说明等请参考 [多语言 SDK 实现](../mannual/) - * [演讲与线下活动]() + * 演讲与线下活动 diff --git a/content/zh/overview/whatsnew/background.md b/content/zh/overview/whatsnew/background.md index 85fdd2cc1bb4..1e8c62cf7b90 100644 --- a/content/zh/overview/whatsnew/background.md +++ b/content/zh/overview/whatsnew/background.md @@ -29,7 +29,7 @@ Dubbo2 仍旧是国内首选开源服务框架,被广泛应用在互联网、 Dubbo3 融合了阿里巴巴 HSF2 及其他社区企业的大量服务治理经验,当前 Dubbo3 已经被全面应用到生产实践环境,用户包括阿里巴巴电商、饿了么、钉钉、考拉、阿里云、小米、工商银行、风火递、平安健康等。社区与用户的合作形成的良性循环极大的促进了 Dubbo3 的发展,阿里巴巴已经以社区版 Dubbo3 完全取代了内部维护的 HSF2 框架,他们的实践经验一方面推动 Dubbo3 的稳定性,另一方面正够源源不断的将服务治理实践经验输出到开源社区。 ### 面向百万集群实例,横向可扩容 -随着微服务实践经验的积累,微服务被拆分成更细粒度,部署到越来越多的机器实例,以支撑不断增长的业务规模。在众多的 Dubbo2 企业用户中,尤其是以金融保险、互联网为代表的规模化企业开始遇到集群容量瓶颈问题(典型的请参照[工商银行实践案例]()): +随着微服务实践经验的积累,微服务被拆分成更细粒度,部署到越来越多的机器实例,以支撑不断增长的业务规模。在众多的 Dubbo2 企业用户中,尤其是以金融保险、互联网为代表的规模化企业开始遇到集群容量瓶颈问题(典型的请参照[工商银行实践案例](/zh/users/icbc/)): * 服务发现过程 * 注册中心数据存储规模达到容量瓶颈 * 数据注册&推送效率严重下降 diff --git a/content/zh/overview/whatsnew/mesh.md b/content/zh/overview/whatsnew/mesh.md index 4630640da04d..912b3581bb3b 100644 --- a/content/zh/overview/whatsnew/mesh.md +++ b/content/zh/overview/whatsnew/mesh.md @@ -43,8 +43,8 @@ ThinSDK + Sidecar 模式的 Mesh 架构有很多优势,如平滑升级、多 * 部署环境受限,并不是所有的环境都能满足 Sidecar 部署与请求拦截要求。 详细方案设计与示例请参考 -* [Dubbo ThinSDK Proposal](../../tasks/dubbo-mesh) -* [使用示例](../../tasks/dubbo-mesh) +* [Dubbo ThinSDK Proposal](../../tasks/mesh/dubbo-mesh) +* [使用示例](../../tasks/mesh/dubbo-mesh) ### Dubbo Proxyless Mesh 作为 ThinSDK + Sidecar 模式的补充,Dubbo 社区自很早之前就做了 Dubbo 直接对接到控制面的设想与思考,也就是当前所说的 Proxyless Mesh 模式。Proxyless 模式使得微服务又回到了 2.x 时代的部署架构。如下图所示,和我们上面看的 Dubbo 经典服务治理模式非常相似,所以说这个模式并不新鲜, Dubbo 从最开始就是这么样的设计模式。但相比于 Mesh 架构,Dubbo2 并没有强调控制面的统一管控,而这点恰好是 Service Mesh 所强调的,强调对流量、可观测性、证书等的标准化管控与治理,也是 Mesh 理念先进的地方。 @@ -62,8 +62,8 @@ ThinSDK + Sidecar 模式的 Mesh 架构有很多优势,如平滑升级、多 * 适用于几乎所有的部署环境 详细方案设计与示例请参考 -* [Dubbo Proxyless Mesh](../../tasks/dubbo-mesh) -* [使用示例](../../tasks/dubbo-mesh) +* [Dubbo Proxyless Mesh](../../tasks/mesh/dubbo-mesh) +* [使用示例](../../tasks/mesh/dubbo-mesh) ### Dubbo 控制面治理规则 TBD diff --git a/content/zh/overview/whatsnew/service-discovery.md b/content/zh/overview/whatsnew/service-discovery.md index fcc6cf9f509b..3e3b17fbe2cd 100644 --- a/content/zh/overview/whatsnew/service-discovery.md +++ b/content/zh/overview/whatsnew/service-discovery.md @@ -7,7 +7,7 @@ weight: 3 在这里查看更多文档 * [应用级服务发现详细设计](https://github.com/apache/dubbo-awesome/blob/master/proposals/D1-application-level-service-discovery.md) -* [应用级服务发现解读 (blog)](https://dubbo.apache.org/zh/blog/2021/06/02/dubbo3-%E5%BA%94%E7%94%A8%E7%BA%A7%E6%9C%8D%E5%8A%A1%E5%8F%91%E7%8E%B0/) +* [应用级服务发现解读 (blog)](/zh/blog/2021/06/02/dubbo3-%E5%BA%94%E7%94%A8%E7%BA%A7%E6%9C%8D%E5%8A%A1%E5%8F%91%E7%8E%B0/) * [如何从接口级服务发现迁移到应用级服务发现](../../../docs3-v2/java-sdk/upgrades-and-compatibility/service-discovery/migration-service-discovery) * [饿了么应用级服务发现实践](../../../users/eleme) * [工商银行应用级服务发现实践](../../../users/icbc) diff --git a/content/zh/overview/whatsnew/triple.md b/content/zh/overview/whatsnew/triple.md index 38c1850cbc75..5663f0fca2e4 100644 --- a/content/zh/overview/whatsnew/triple.md +++ b/content/zh/overview/whatsnew/triple.md @@ -18,6 +18,6 @@ Java SDK 支持 [IDL 生成 Stub](../../../docs3-v2/java-sdk/quick-start/idl) 和 [Java Interface](../../../docs3-v2/java-sdk/quick-start/idl) 两种方式,多语言、生态互通、流式需求推荐使用 IDL 方式,现有服务平滑升级推荐使用 Interface 方式。 -- Dubbo2 老用户如何[从现有协议升级至 Triple](TBD) +- Dubbo2 老用户如何从现有协议升级至 Triple(TBD) - 新用户或业务参考[Dubbo3 Triple Quick Start](../../../docs3-v2/java-sdk/quick-start/idl/) - 深入了解 Triple 协议:[Dubbo3 Triple 协议设计与原理](https://github.com/apache/dubbo-awesome/blob/master/proposals/D0-triple.md) diff --git a/content/zh/release/java.md b/content/zh/release/java.md index 57ef09def08d..f762726ca430 100644 --- a/content/zh/release/java.md +++ b/content/zh/release/java.md @@ -11,7 +11,7 @@ weight: 1 ## Apache Dubbo -请点击了解各[版本详情和升级注意事项](https://dubbo.apache.org/zh/docs/v2.7/user/versions/) +请点击了解各[版本详情和升级注意事项](/zh/docsv2.7/user/versions/) > GitHub: https://github.com/apache/dubbo \ > 发布说明: https://github.com/apache/dubbo/releases diff --git a/content/zh/release/past-releases/java.md b/content/zh/release/past-releases/java.md index 8c5f41d8cb3a..930c3741da34 100644 --- a/content/zh/release/past-releases/java.md +++ b/content/zh/release/past-releases/java.md @@ -9,7 +9,7 @@ weight: 1 可以按照这里的[步骤](https://www.apache.org/info/verification), 利用[KEYS](https://downloads.apache.org/dubbo/KEYS)文件来验证下载。 -请点击了解各[版本详情和升级注意事项](https://dubbo.apache.org/zh/docs/v2.7/user/versions/) +请点击了解各[版本详情和升级注意事项](/zh/docsv2.7/user/versions/) > GitHub: https://github.com/apache/dubbo \ > 发布说明: https://github.com/apache/dubbo/releases @@ -65,12 +65,6 @@ weight: 1 [asc](https://archive.apache.org/dist/dubbo/2.7.15/apache-dubbo-2.7.15-src.zip.asc) | [sha512](https://archive.apache.org/dist/dubbo/2.7.15/apache-dubbo-2.7.15-src.zip.sha512) -### 2.6.12 (2021-12-29) - -* [source](https://archive.apache.org/dist/dubbo/2.6.12/apache-dubbo-2.6.12-src.zip) | - [asc](https://archive.apache.org/dist/dubbo/2.6.12/apache-dubbo-v-src.zip.asc) | - [sha512](https://archive.apache.org/dist/dubbo/2.6.12/apache-dubbo-2.6.12-src.zip.sha512) - ### 3.0.4 (2021-10-24) * [source](https://archive.apache.org/dist/dubbo/3.0.4/apache-dubbo-3.0.4-src.zip) | @@ -132,12 +126,6 @@ weight: 1 [sha512](https://archive.apache.org/dist/dubbo/2.7.12/apache-dubbo-2.7.12-src.zip.sha512) -### 2.6.10.1 (2021-05-30) - -* [source](https://archive.apache.org/dist/dubbo/2.6.10.1/apache-dubbo-2.6.10.1-source-release.zip) | - [asc](https://archive.apache.org/dist/dubbo/2.6.10.1/apache-dubbo-2.6.10.1-source-release.zip.asc) | - [sha512](https://archive.apache.org/dist/dubbo/2.6.10.1/apache-dubbo-2.6.10.1-source-release.zip.sha512) - ### 2.7.11 (2021-05-12) * [source](https://archive.apache.org/dist/dubbo/2.7.11/apache-dubbo-2.7.11-src.zip) | diff --git a/static/imgs/blog/1/01/01/dubbo-go-pixiu/0c1afe00699eb3e5cc022e48966ef5a6.webp b/static/imgs/blog/1/01/01/dubbo-go-pixiu/0c1afe00699eb3e5cc022e48966ef5a6.webp new file mode 100644 index 000000000000..908ede467a97 Binary files /dev/null and b/static/imgs/blog/1/01/01/dubbo-go-pixiu/0c1afe00699eb3e5cc022e48966ef5a6.webp differ diff --git a/static/imgs/blog/1/01/01/dubbo-go-pixiu/2b2fd6ea1cc0375392919d9e0c181f2b.webp b/static/imgs/blog/1/01/01/dubbo-go-pixiu/2b2fd6ea1cc0375392919d9e0c181f2b.webp new file mode 100644 index 000000000000..3ff9f3dcb4c2 Binary files /dev/null and b/static/imgs/blog/1/01/01/dubbo-go-pixiu/2b2fd6ea1cc0375392919d9e0c181f2b.webp differ diff --git a/static/imgs/blog/1/01/01/dubbo-go-pixiu/e57050f224f658b96cd6bd917050b259.webp b/static/imgs/blog/1/01/01/dubbo-go-pixiu/e57050f224f658b96cd6bd917050b259.webp new file mode 100644 index 000000000000..bc0c9b4cac3d Binary files /dev/null and b/static/imgs/blog/1/01/01/dubbo-go-pixiu/e57050f224f658b96cd6bd917050b259.webp differ diff --git a/static/imgs/blog/1/01/01/dubbo-go-pixiu/fd38da297d095e4c3af1c89b18804ef1.webp b/static/imgs/blog/1/01/01/dubbo-go-pixiu/fd38da297d095e4c3af1c89b18804ef1.webp new file mode 100644 index 000000000000..f9d08fc16648 Binary files /dev/null and b/static/imgs/blog/1/01/01/dubbo-go-pixiu/fd38da297d095e4c3af1c89b18804ef1.webp differ diff --git a/static/imgs/blog/2018/07/27/sentinel/machinediscover.png b/static/imgs/blog/2018/07/27/sentinel/machinediscover.png new file mode 100644 index 000000000000..9eaf6936f7f8 Binary files /dev/null and b/static/imgs/blog/2018/07/27/sentinel/machinediscover.png differ diff --git a/static/imgs/blog/2018/07/27/sentinel/resourceTree.png b/static/imgs/blog/2018/07/27/sentinel/resourceTree.png new file mode 100644 index 000000000000..b0b77e4ce9c4 Binary files /dev/null and b/static/imgs/blog/2018/07/27/sentinel/resourceTree.png differ diff --git a/static/imgs/blog/2018/07/27/sentinel/sentine_dashboard.gif b/static/imgs/blog/2018/07/27/sentinel/sentine_dashboard.gif new file mode 100644 index 000000000000..0bd3c507e813 Binary files /dev/null and b/static/imgs/blog/2018/07/27/sentinel/sentine_dashboard.gif differ diff --git a/static/imgs/blog/2018/08/14/dubbo-usage/1536496436861-1b63bc4e-3e59-4aa3-800e-a32cfe64950d.png b/static/imgs/blog/2018/08/14/dubbo-usage/1536496436861-1b63bc4e-3e59-4aa3-800e-a32cfe64950d.png new file mode 100644 index 000000000000..eb1fc7430ccd Binary files /dev/null and b/static/imgs/blog/2018/08/14/dubbo-usage/1536496436861-1b63bc4e-3e59-4aa3-800e-a32cfe64950d.png differ diff --git a/static/imgs/blog/2018/09/30/integrate-dubbo-with-kubernetes/TB18uzTtdcnBKNjSZR0XXcFqFXa-1820-861.png b/static/imgs/blog/2018/09/30/integrate-dubbo-with-kubernetes/TB18uzTtdcnBKNjSZR0XXcFqFXa-1820-861.png new file mode 100644 index 000000000000..b1ee5e3d9f8b Binary files /dev/null and b/static/imgs/blog/2018/09/30/integrate-dubbo-with-kubernetes/TB18uzTtdcnBKNjSZR0XXcFqFXa-1820-861.png differ diff --git a/static/imgs/blog/2018/09/30/integrate-dubbo-with-kubernetes/TB1Kj1ktpkoBKNjSZFEXXbrEVXa-985-213.png b/static/imgs/blog/2018/09/30/integrate-dubbo-with-kubernetes/TB1Kj1ktpkoBKNjSZFEXXbrEVXa-985-213.png new file mode 100644 index 000000000000..7b6e4000ada3 Binary files /dev/null and b/static/imgs/blog/2018/09/30/integrate-dubbo-with-kubernetes/TB1Kj1ktpkoBKNjSZFEXXbrEVXa-985-213.png differ diff --git a/static/imgs/blog/2018/09/30/integrate-dubbo-with-kubernetes/TB1_YywtDCWBKNjSZFtXXaC3FXa-1737-588.png b/static/imgs/blog/2018/09/30/integrate-dubbo-with-kubernetes/TB1_YywtDCWBKNjSZFtXXaC3FXa-1737-588.png new file mode 100644 index 000000000000..96eb958bfa0e Binary files /dev/null and b/static/imgs/blog/2018/09/30/integrate-dubbo-with-kubernetes/TB1_YywtDCWBKNjSZFtXXaC3FXa-1737-588.png differ diff --git a/static/imgs/blog/2018/09/30/integrate-dubbo-with-kubernetes/TB1b1p2trZnBKNjSZFKXXcGOVXa-1858-833.png b/static/imgs/blog/2018/09/30/integrate-dubbo-with-kubernetes/TB1b1p2trZnBKNjSZFKXXcGOVXa-1858-833.png new file mode 100644 index 000000000000..a50e1b00724e Binary files /dev/null and b/static/imgs/blog/2018/09/30/integrate-dubbo-with-kubernetes/TB1b1p2trZnBKNjSZFKXXcGOVXa-1858-833.png differ diff --git a/static/imgs/blog/2018/09/30/integrate-dubbo-with-kubernetes/TB1fEpEtrorBKNjSZFjXXc_SpXa-1846-783.png b/static/imgs/blog/2018/09/30/integrate-dubbo-with-kubernetes/TB1fEpEtrorBKNjSZFjXXc_SpXa-1846-783.png new file mode 100644 index 000000000000..09693847f13a Binary files /dev/null and b/static/imgs/blog/2018/09/30/integrate-dubbo-with-kubernetes/TB1fEpEtrorBKNjSZFjXXc_SpXa-1846-783.png differ diff --git a/static/imgs/blog/2018/09/30/integrate-dubbo-with-kubernetes/TB1m.tEtrorBKNjSZFjXXc_SpXa-1892-870.png b/static/imgs/blog/2018/09/30/integrate-dubbo-with-kubernetes/TB1m.tEtrorBKNjSZFjXXc_SpXa-1892-870.png new file mode 100644 index 000000000000..133b265a7258 Binary files /dev/null and b/static/imgs/blog/2018/09/30/integrate-dubbo-with-kubernetes/TB1m.tEtrorBKNjSZFjXXc_SpXa-1892-870.png differ diff --git a/static/imgs/blog/2018/09/30/integrate-dubbo-with-kubernetes/TB1oYqvtcIrBKNjSZK9XXagoVXa-1872-888.png b/static/imgs/blog/2018/09/30/integrate-dubbo-with-kubernetes/TB1oYqvtcIrBKNjSZK9XXagoVXa-1872-888.png new file mode 100644 index 000000000000..f599f1247832 Binary files /dev/null and b/static/imgs/blog/2018/09/30/integrate-dubbo-with-kubernetes/TB1oYqvtcIrBKNjSZK9XXagoVXa-1872-888.png differ diff --git a/static/imgs/blog/2019/07/26/rest/micro-image.png b/static/imgs/blog/2019/07/26/rest/micro-image.png new file mode 100644 index 000000000000..a03bfe94a543 Binary files /dev/null and b/static/imgs/blog/2019/07/26/rest/micro-image.png differ diff --git a/static/imgs/docs/advanced/protobufinterface/124234531-b96c2c80-db46-11eb-8155-a77dbe059f07.png b/static/imgs/docs/advanced/protobufinterface/124234531-b96c2c80-db46-11eb-8155-a77dbe059f07.png new file mode 100644 index 000000000000..af059bcaf001 Binary files /dev/null and b/static/imgs/docs/advanced/protobufinterface/124234531-b96c2c80-db46-11eb-8155-a77dbe059f07.png differ diff --git a/static/imgs/docs/advanced/protobufinterface/124234564-c4bf5800-db46-11eb-94fc-a056af6089cb.png b/static/imgs/docs/advanced/protobufinterface/124234564-c4bf5800-db46-11eb-94fc-a056af6089cb.png new file mode 100644 index 000000000000..fee44ede03b8 Binary files /dev/null and b/static/imgs/docs/advanced/protobufinterface/124234564-c4bf5800-db46-11eb-94fc-a056af6089cb.png differ diff --git a/static/imgs/docs/advanced/protobufinterface/124234654-e4568080-db46-11eb-9700-b30022ebee21.png b/static/imgs/docs/advanced/protobufinterface/124234654-e4568080-db46-11eb-9700-b30022ebee21.png new file mode 100644 index 000000000000..f5e78b314a08 Binary files /dev/null and b/static/imgs/docs/advanced/protobufinterface/124234654-e4568080-db46-11eb-9700-b30022ebee21.png differ diff --git a/static/imgs/docs/advanced/protobufinterface/124234723-f89a7d80-db46-11eb-82d0-a8aee5322098.png b/static/imgs/docs/advanced/protobufinterface/124234723-f89a7d80-db46-11eb-82d0-a8aee5322098.png new file mode 100644 index 000000000000..4947c8b3adc3 Binary files /dev/null and b/static/imgs/docs/advanced/protobufinterface/124234723-f89a7d80-db46-11eb-82d0-a8aee5322098.png differ diff --git a/static/imgs/docs3-v2/dubbo-go-pixiu/dev/trie/1642993180981-51a0df19-bb03-49c8-9128-a6e95dbabfcd.png b/static/imgs/docs3-v2/dubbo-go-pixiu/dev/trie/1642993180981-51a0df19-bb03-49c8-9128-a6e95dbabfcd.png new file mode 100644 index 000000000000..50457e45c9ea Binary files /dev/null and b/static/imgs/docs3-v2/dubbo-go-pixiu/dev/trie/1642993180981-51a0df19-bb03-49c8-9128-a6e95dbabfcd.png differ diff --git a/static/imgs/docs3-v2/golang-sdk/concept/dubbogo.png b/static/imgs/docs3-v2/golang-sdk/concept/dubbogo.png new file mode 100644 index 000000000000..0258c0e41e9b Binary files /dev/null and b/static/imgs/docs3-v2/golang-sdk/concept/dubbogo.png differ diff --git a/static/imgs/docs3-v2/golang-sdk/concept/mesh/proxyless_service_mesh/454d1e31-0be3-41fe-97ec-f52673ebf74f.png b/static/imgs/docs3-v2/golang-sdk/concept/mesh/proxyless_service_mesh/454d1e31-0be3-41fe-97ec-f52673ebf74f.png new file mode 100644 index 000000000000..e34eec1153cd Binary files /dev/null and b/static/imgs/docs3-v2/golang-sdk/concept/mesh/proxyless_service_mesh/454d1e31-0be3-41fe-97ec-f52673ebf74f.png differ diff --git a/static/imgs/docs3-v2/golang-sdk/concept/mesh/proxyless_service_mesh/894c0e52-9d34-4490-b49b-24973ef4aabc.png b/static/imgs/docs3-v2/golang-sdk/concept/mesh/proxyless_service_mesh/894c0e52-9d34-4490-b49b-24973ef4aabc.png new file mode 100644 index 000000000000..1c95506976fd Binary files /dev/null and b/static/imgs/docs3-v2/golang-sdk/concept/mesh/proxyless_service_mesh/894c0e52-9d34-4490-b49b-24973ef4aabc.png differ diff --git a/static/imgs/docs3-v2/golang-sdk/concept/mesh/proxyless_service_mesh/service-mesh.svg b/static/imgs/docs3-v2/golang-sdk/concept/mesh/proxyless_service_mesh/service-mesh.svg new file mode 100644 index 000000000000..14c6704da802 --- /dev/null +++ b/static/imgs/docs3-v2/golang-sdk/concept/mesh/proxyless_service_mesh/service-mesh.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/imgs/docs3-v2/golang-sdk/concept/more/3.0_feature/dest_rule.png b/static/imgs/docs3-v2/golang-sdk/concept/more/3.0_feature/dest_rule.png new file mode 100644 index 000000000000..d46357eab3a2 Binary files /dev/null and b/static/imgs/docs3-v2/golang-sdk/concept/more/3.0_feature/dest_rule.png differ diff --git a/static/imgs/docs3-v2/golang-sdk/concept/more/3.0_feature/disc.png b/static/imgs/docs3-v2/golang-sdk/concept/more/3.0_feature/disc.png new file mode 100644 index 000000000000..954ffe227cad Binary files /dev/null and b/static/imgs/docs3-v2/golang-sdk/concept/more/3.0_feature/disc.png differ diff --git a/static/imgs/docs3-v2/golang-sdk/concept/more/3.0_feature/tri.png b/static/imgs/docs3-v2/golang-sdk/concept/more/3.0_feature/tri.png new file mode 100644 index 000000000000..aa65a640da88 Binary files /dev/null and b/static/imgs/docs3-v2/golang-sdk/concept/more/3.0_feature/tri.png differ diff --git a/static/imgs/docs3-v2/golang-sdk/concept/more/3.0_feature/virtual_service.png b/static/imgs/docs3-v2/golang-sdk/concept/more/3.0_feature/virtual_service.png new file mode 100644 index 000000000000..07d7343334ba Binary files /dev/null and b/static/imgs/docs3-v2/golang-sdk/concept/more/3.0_feature/virtual_service.png differ diff --git a/static/imgs/docs3-v2/golang-sdk/concept/more/app_and_interface/dubbogo-concept.png b/static/imgs/docs3-v2/golang-sdk/concept/more/app_and_interface/dubbogo-concept.png new file mode 100644 index 000000000000..72f494eedba2 Binary files /dev/null and b/static/imgs/docs3-v2/golang-sdk/concept/more/app_and_interface/dubbogo-concept.png differ diff --git a/static/imgs/docs3-v2/golang-sdk/concept/more/architecture/architecture.png b/static/imgs/docs3-v2/golang-sdk/concept/more/architecture/architecture.png new file mode 100644 index 000000000000..b1c053fd205f Binary files /dev/null and b/static/imgs/docs3-v2/golang-sdk/concept/more/architecture/architecture.png differ diff --git a/static/imgs/docs3-v2/golang-sdk/concept/rpc/generic/1631941941270-86ce9845-5a88-4cb5-8c8a-da8ae7eeb4d5.png b/static/imgs/docs3-v2/golang-sdk/concept/rpc/generic/1631941941270-86ce9845-5a88-4cb5-8c8a-da8ae7eeb4d5.png new file mode 100644 index 000000000000..509122695b6b Binary files /dev/null and b/static/imgs/docs3-v2/golang-sdk/concept/rpc/generic/1631941941270-86ce9845-5a88-4cb5-8c8a-da8ae7eeb4d5.png differ diff --git a/static/imgs/docs3-v2/golang-sdk/concept/rpc/generic/1632207075184-25939db4-f384-452e-a0b8-e1deff7971de.png b/static/imgs/docs3-v2/golang-sdk/concept/rpc/generic/1632207075184-25939db4-f384-452e-a0b8-e1deff7971de.png new file mode 100644 index 000000000000..de25e53da6f5 Binary files /dev/null and b/static/imgs/docs3-v2/golang-sdk/concept/rpc/generic/1632207075184-25939db4-f384-452e-a0b8-e1deff7971de.png differ diff --git a/static/imgs/docs3-v2/golang-sdk/concept/rpc/multi_language/dubbogo-3.0-invocation.png b/static/imgs/docs3-v2/golang-sdk/concept/rpc/multi_language/dubbogo-3.0-invocation.png new file mode 100644 index 000000000000..478c43bf1e17 Binary files /dev/null and b/static/imgs/docs3-v2/golang-sdk/concept/rpc/multi_language/dubbogo-3.0-invocation.png differ diff --git a/static/imgs/docs3-v2/golang-sdk/samples/adaptive-service/adaptive.png b/static/imgs/docs3-v2/golang-sdk/samples/adaptive-service/adaptive.png new file mode 100644 index 000000000000..fc12e80b6af8 Binary files /dev/null and b/static/imgs/docs3-v2/golang-sdk/samples/adaptive-service/adaptive.png differ diff --git a/static/imgs/docs3-v2/golang-sdk/samples/pixiu-nacos-triple/triple-pixiu.png b/static/imgs/docs3-v2/golang-sdk/samples/pixiu-nacos-triple/triple-pixiu.png new file mode 100644 index 000000000000..a591e21f343b Binary files /dev/null and b/static/imgs/docs3-v2/golang-sdk/samples/pixiu-nacos-triple/triple-pixiu.png differ diff --git a/static/imgs/docs3-v2/golang-sdk/tasks/pixiu/http_triple/triple-pixiu.png b/static/imgs/docs3-v2/golang-sdk/tasks/pixiu/http_triple/triple-pixiu.png new file mode 100644 index 000000000000..a591e21f343b Binary files /dev/null and b/static/imgs/docs3-v2/golang-sdk/tasks/pixiu/http_triple/triple-pixiu.png differ diff --git a/static/imgs/docsv2.7/dev/source/refer-service/15417503733794.jpg b/static/imgs/docsv2.7/dev/source/refer-service/15417503733794.jpg new file mode 100644 index 000000000000..d4d5ea3661fa Binary files /dev/null and b/static/imgs/docsv2.7/dev/source/refer-service/15417503733794.jpg differ diff --git a/static/imgs/docsv2.7/user/examples/auth/auth.png b/static/imgs/docsv2.7/user/examples/auth/auth.png new file mode 100644 index 000000000000..2cc63421dba4 Binary files /dev/null and b/static/imgs/docsv2.7/user/examples/auth/auth.png differ