blob: 27d021bf61552027cbcb37b8e27863535a5c39ca [file] [log] [blame]
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Apache Dubbo – Preface</title><link>https://dubbo.apache.org/en/docs3-v2/golang-sdk/preface/</link><description>Recent content in Preface on Apache Dubbo</description><generator>Hugo -- gohugo.io</generator><language>en</language><atom:link href="https://dubbo.apache.org/en/docs3-v2/golang-sdk/preface/index.xml" rel="self" type="application/rss+xml"/><item><title>Docs3-V2: What is Dubbo-go</title><link>https://dubbo.apache.org/en/docs3-v2/golang-sdk/preface/what/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/en/docs3-v2/golang-sdk/preface/what/</guid><description>
&lt;p>&lt;img src="https://dubbo.apache.org/imgs/docs3-v2/golang-sdk/concept/dubbogo.png" alt="img">&lt;/p>
&lt;p>Apache/Dubbo-go (&lt;a href="https://github.com/apache/dubbo-go">github.com/apache/dubbo-go&lt;/a>)&lt;/p>
&lt;p>It is a distributed RPC framework; it is the Go language implementation of Apache/Dubbo. It aims to provide developers with a convenient microservice application development experience.&lt;/p>
&lt;p>Dubbo-go builds a bridge between Java and Go languages, interconnects with the gRPC/Dubbo/SpringCloud ecology, and relies on the Go language ecology to explore the technical dividends of the cloud-native era.&lt;/p></description></item><item><title>Docs3-V2: Concept</title><link>https://dubbo.apache.org/en/docs3-v2/golang-sdk/preface/concept/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/en/docs3-v2/golang-sdk/preface/concept/</guid><description/></item><item><title>Docs3-V2: New Features of Dubbo-go 3.0</title><link>https://dubbo.apache.org/en/docs3-v2/golang-sdk/preface/3.0_feature/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/en/docs3-v2/golang-sdk/preface/3.0_feature/</guid><description>
&lt;p>&lt;img src="https://shields.io/github/stars/apache/dubbo-go?style=dark" alt="star">&lt;/p>
&lt;h2 id="1-triple-protocol">1. Triple protocol&lt;/h2>
&lt;h3 id="11-overview">1.1 Overview&lt;/h3>
&lt;p>&lt;img src="https://dubbo.apache.org/imgs/docs3-v2/golang-sdk/concept/more/3.0_feature/tri.png" alt="img">&lt;/p>
&lt;ul>
&lt;li>
&lt;p>communication level&lt;/p>
&lt;p>The Triple protocol, also known as the Dubbo3 protocol, is an extension protocol based on the HTTP2 + gRPC protocol, adding specific fields and logic, ensuring interoperability with the &lt;strong>native gRPC protocol&lt;/strong>. On this basis, Triple&amp;rsquo;s new protocol will more natively support &lt;strong>Dubbo service governance capabilities&lt;/strong>. And supports &lt;strong>streaming RPC calls&lt;/strong>.&lt;/p>
&lt;p>In simple terms, it can be understood as Triple = gRPC + Dubbo&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Serialization&lt;/p>
&lt;p>The Triple protocol uses an efficient &lt;strong>PB serialization method&lt;/strong>, and adds &lt;strong>scalable support&lt;/strong> of the serialization protocol on this basis.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>User development habits:&lt;/p>
&lt;p>Triple service requires a &lt;strong>predefined .proto file&lt;/strong> before development, which is convenient for Go language developers who are accustomed to defining IDL before coding. Different from the Dubbo-go 1.x version that conforms to java programming habits, JavaClassName is defined to describe the interface.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Cross-language interoperability:&lt;/p>
&lt;p>It can realize &lt;strong>cross-language intercommunication&lt;/strong> with Dubbo-Java.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h2 id="2-application-level-service-discovery">2. Application-level service discovery&lt;/h2>
&lt;h3 id="21-introduction">2.1 Introduction&lt;/h3>
&lt;p>&lt;img src="https://dubbo.apache.org/imgs/docs3-v2/golang-sdk/concept/more/3.0_feature/disc.png" alt="img">&lt;/p>
&lt;p>In the service registration phase, the server instance registers the application-level registration information, mainly including the mapping from the application name to the instance IP, to the registration center. In the service discovery phase, the client instance obtains the IP of the service instance to be requested through the registration center. Entering the service introspection stage, the service introspection process is the process of obtaining interface information through application information. As shown above, there are two modes:&lt;/p>
&lt;ol>
&lt;li>remote mode: Obtain the mapping applied to the interface metadata through the metadata center (such as zk)&lt;/li>
&lt;li>Local mode: Obtain the mapping from the application to the interface metadata directly through the server (initiate an RPC call for the Metadata Service through the Dubbo protocol)&lt;/li>
&lt;/ol>
&lt;p>After service introspection, the client formally initiates a call to the corresponding instance. The most obvious benefit of doing this is to reduce the amount of data in the registry, that is, the registry only saves application-level data.&lt;/p>
&lt;p>When using the application-level service discovery capability of Dubbo-go 3.0, users can follow the examples and directly configure the service introspection mode and metadata center information in the configuration file, introduce dependencies, and enable application-level service discovery.&lt;/p>
&lt;h3 id="22-application-level-service-discovery-introduction-article">2.2 Application-level service discovery introduction article&lt;/h3>
&lt;p>&lt;a href="https://baijiahao.baidu.com/s?id=1669266413887039723&amp;amp;wfr=spider&amp;amp;for=pc">Analysis of application-level service discovery&lt;/a>&lt;/p>
&lt;h2 id="3-mesh-routing-rules">3. Mesh Routing Rules&lt;/h2>
&lt;p>User definable routing files:&lt;/p>
&lt;p>virtual_service.yaml&lt;/p>
&lt;p>&lt;img src="https://dubbo.apache.org/imgs/docs3-v2/golang-sdk/concept/more/3.0_feature/virtual_service.png" alt="img">&lt;/p>
&lt;p>and dist_rule.yml&lt;/p>
&lt;p>&lt;img src="https://dubbo.apache.org/imgs/docs3-v2/golang-sdk/concept/more/3.0_feature/dest_rule.png" alt="img">&lt;/p>
&lt;p>The framework can forward traffic for specific requests according to routing files.&lt;/p>
&lt;h2 id="4-related-articles">4. Related articles&lt;/h2>
&lt;p>Alibaba Cloud official introduction article: &lt;a href="https://developer.aliyun.com/article/770964?utm_content=g_1000175535">&amp;ldquo;Dubbo 3.0 - Opening the Next Generation of Cloud Native Microservices&amp;rdquo;&lt;/a>&lt;/p></description></item><item><title>Docs3-V2: Architecture</title><link>https://dubbo.apache.org/en/docs3-v2/golang-sdk/preface/design/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/en/docs3-v2/golang-sdk/preface/design/</guid><description/></item><item><title>Docs3-V2: Dubbo-go Samples</title><link>https://dubbo.apache.org/en/docs3-v2/golang-sdk/preface/samples/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/en/docs3-v2/golang-sdk/preface/samples/</guid><description>
&lt;p>In order to facilitate the use of Dubbogo framework users, we provide the Samples repository for user reference:&lt;/p>
&lt;p>&lt;a href="https://github.com/apache/dubbo-go-samples">[Dubbo-go-samples warehouse address]&lt;/a>&lt;/p>
&lt;h2 id="1-examples-contained-in-the-samples-repository">1. Examples contained in the Samples repository&lt;/h2>
&lt;ul>
&lt;li>config-api: use API for configuration initialization&lt;/li>
&lt;li>configcenter: Use different configuration centers, currently supports three types: zookeeper, apollo, and nacos&lt;/li>
&lt;li>context: how to use context to pass attachment&lt;/li>
&lt;li>direct: direct connection mode&lt;/li>
&lt;li>game: game service example&lt;/li>
&lt;li>generic: generalized call&lt;/li>
&lt;li>rpc: RPC call example, including Triple, Dubbo and other protocols and cross-language/gRPC interoperability examples&lt;/li>
&lt;li>helloworld: RPC call entry example&lt;/li>
&lt;li>logger: log example&lt;/li>
&lt;li>registry: Show the docking with different registry centers, including zk, nacos, etcd&lt;/li>
&lt;li>metrics: data reporting&lt;/li>
&lt;li>filter: Examples of using provided filters and custom filters&lt;/li>
&lt;li>registry/servicediscovery: application-level service discovery example&lt;/li>
&lt;li>router: routing example&lt;/li>
&lt;li>tracing: link tracing example&lt;/li>
&lt;/ul>
&lt;h2 id="2-how-to-run">2. How to run&lt;/h2>
&lt;p>There are currently three ways to run dubbo-go examples:&lt;/p>
&lt;ol>
&lt;li>Quick start through bash command: start the sample and unit test through a simple command line&lt;/li>
&lt;li>Start quickly in the IDE, which is also the &lt;strong>recommended&lt;/strong> way: In the project &amp;ldquo;.run&amp;rdquo; subdirectory, all example GoLand run configuration files are provided, so users can simply click to run all in the IDE example.&lt;/li>
&lt;li>Manually configure and run in the IDE: For the purpose of completeness, and in case you do not use GoLand and use other IDEs, here is also a step-by-step configuration guide to help users understand how to configure in the IDE , to run or debug dubbo-go examples.&lt;/li>
&lt;/ol>
&lt;h3 id="21-quick-start-via-command-line">2.1 Quick start via command line&lt;/h3>
&lt;p>&lt;em>Preconditions: docker environment is required to be ready&lt;/em>&lt;/p>
&lt;p>Below we will use &amp;ldquo;helloworld&amp;rdquo; as an example:&lt;/p>
&lt;ol>
&lt;li>
&lt;p>&lt;strong>Start the registration center (such as zookeeper)&lt;/strong>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>make -f build/Makefile docker-up
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>When you see output similar to the following, it means that the zookeeper server is ready to start.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&amp;gt; Starting dependency services with ./integrate_test/dockercompose/docker-compose.yml
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Docker Compose is now in the Docker CLI, try &lt;span style="color:#586e75">`&lt;/span>docker compose up&lt;span style="color:#586e75">`&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Creating network &lt;span style="color:#2aa198">&amp;#34;dockercompose_default&amp;#34;&lt;/span> with the default driver
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Creating dockercompose_zookeeper_1... &lt;span style="color:#719e07">done&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Creating etcd... &lt;span style="color:#719e07">done&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Creating nacos-standalone... &lt;span style="color:#719e07">done&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>If you want to stop the registry, you can do it by running the following command:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>make -f build/Makefile docker-down
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;li>
&lt;p>&lt;strong>Start Service Provider&lt;/strong>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#b58900">cd&lt;/span> helloworld/go-server/cmd
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#b58900">export&lt;/span> &lt;span style="color:#268bd2">DUBBO_GO_CONFIG_PATH&lt;/span>&lt;span style="color:#719e07">=&lt;/span>&lt;span style="color:#2aa198">&amp;#34;../conf/dubbogo.yml&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>go run .
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>When you see output similar to the following, the service provider is ready to start.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>2021/10/27 00:33:10 Connected to 127.0.0.1:2181
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2021/10/27 00:33:10 Authenticated: &lt;span style="color:#268bd2">id&lt;/span>&lt;span style="color:#719e07">=&lt;/span>72057926938066944, &lt;span style="color:#268bd2">timeout&lt;/span>&lt;span style="color:#719e07">=&lt;/span>&lt;span style="color:#2aa198">10000&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2021/10/27 00:33:10 Re-submitting &lt;span style="color:#586e75">`&lt;/span>0&lt;span style="color:#586e75">`&lt;/span> credentials after reconnect
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;li>
&lt;p>&lt;strong>Run service caller&lt;/strong>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#b58900">cd&lt;/span> helloworld/go-client/cmd
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#b58900">export&lt;/span> &lt;span style="color:#268bd2">DUBBO_GO_CONFIG_PATH&lt;/span>&lt;span style="color:#719e07">=&lt;/span>&lt;span style="color:#2aa198">&amp;#34;../conf/dubbogo.yml&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>go run .
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>When the following information is output, it means that &lt;code>go-client&lt;/code> calls &lt;code>go-server&lt;/code> successfully.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>2021-10-27T00:40:44.879+0800 DEBUG triple/dubbo3_client.go:106 TripleClient.Invoke: get &lt;span style="color:#268bd2">reply&lt;/span> &lt;span style="color:#719e07">=&lt;/span> name:&lt;span style="color:#2aa198">&amp;#34;Hello laurence&amp;#34;&lt;/span> id:&lt;span style="color:#2aa198">&amp;#34;12345&amp;#34;&lt;/span> age:21
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2021-10-27T00:40:44.879+0800 DEBUG proxy/proxy.go:218 &lt;span style="color:#719e07">[&lt;/span>makeDubboCallProxy&lt;span style="color:#719e07">]&lt;/span> result: name:&lt;span style="color:#2aa198">&amp;#34;Hello laurence&amp;#34;&lt;/span> id:&lt;span style="color:#2aa198">&amp;#34;12345&amp;#34;&lt;/span> age:21 , err: &amp;lt;nil&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2021-10-27T00:40:44.879+0800 INFO cmd/client.go:51 client response result: name:&lt;span style="color:#2aa198">&amp;#34;Hello laurence&amp;#34;&lt;/span> id:&lt;span style="color:#2aa198">&amp;#34;12345&amp;#34;&lt;/span> age:21
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;li>
&lt;p>&lt;strong>Integration tests&lt;/strong>
In addition to showing how to use the functions and features in dubbo-go, this project dubbo-go-samples is also used for integration testing of apache/dubbo-go. Integration tests designed for &lt;code>go-server&lt;/code> can be run as follows:&lt;/p>
&lt;p>Start the server first&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#b58900">cd&lt;/span> helloworld/go-server/cmd
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#b58900">export&lt;/span> &lt;span style="color:#268bd2">DUBBO_GO_CONFIG_PATH&lt;/span>&lt;span style="color:#719e07">=&lt;/span>&lt;span style="color:#2aa198">&amp;#34;../conf/dubbogo.yml&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>go run .
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Then switch to the single test directory, set the environment variables, and then execute the single test&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#b58900">cd&lt;/span> integrate_test/helloworld/tests/integration
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#b58900">export&lt;/span> &lt;span style="color:#268bd2">DUBBO_GO_CONFIG_PATH&lt;/span>&lt;span style="color:#719e07">=&lt;/span>&lt;span style="color:#2aa198">&amp;#34;../../../../helloworld/go-client/conf/dubbogo.yml&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>go &lt;span style="color:#b58900">test&lt;/span> -v
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>When the following information is output, the integration test has passed.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&amp;gt; Running integration &lt;span style="color:#b58900">test&lt;/span> &lt;span style="color:#719e07">for&lt;/span> application go-server
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>...
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>--- PASS: TestSayHello &lt;span style="color:#719e07">(&lt;/span>0.01s&lt;span style="color:#719e07">)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>PASS
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>ok github.com/apache/dubbo-go-samples/integrate_test/helloworld/tests/integration0.119s
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;li>
&lt;p>&lt;strong>Close and Cleanup&lt;/strong>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>make -f build/Makefile clean docker-down
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;/ol>
&lt;p>*The following two modes of operation are related to the IDE. Here we take Intellij GoLand as an example to discuss. *&lt;/p>
&lt;h3 id="22-quick-start-in-ide">2.2 Quick start in IDE&lt;/h3>
&lt;p>Once you open this project in GoLand, you can find that in the &amp;ldquo;Run Configuration&amp;rdquo; pop-up menu, there are already a series of pre-configured options for running related service providers and callers, for example: &amp;ldquo;helloworld-go-server &amp;quot; and &amp;ldquo;helloworld-go-client&amp;rdquo;.&lt;/p>
&lt;p>You can select any of these quick start related examples. Of course, before running, it is assumed that the required registry has been started in advance, otherwise the use case will fail. You can choose to start it manually, or use the &amp;ldquo;docker-compose.yml&amp;rdquo; provided in the project to start the docker instance in the registration center.&lt;/p>
&lt;h3 id="23-manually-run-in-the-ide">2.3. Manually run in the IDE&lt;/h3>
&lt;p>Take &lt;em>Intellij GoLand&lt;/em> as an example here. After opening the dubbo-go-samples project in GoLand, follow the steps below to run/debug this sample:&lt;/p>
&lt;ol>
&lt;li>
&lt;p>&lt;strong>Start the zookeeper server&lt;/strong>&lt;/p>
&lt;p>Open the &amp;ldquo;integrate_test/dockercompose/docker-compose.yml&amp;rdquo; file, and click the ▶︎▶︎ icon in the left gutter column of the editor to run, the &amp;ldquo;Service&amp;rdquo; Tab should pop up and output a text message similar to the following:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>Deploying &amp;#39;Compose: docker&amp;#39;...
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>/usr/local/bin/docker-compose -f ...integrate_test/dockercompose/docker-compose.yml up -d
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Creating network &amp;#34;docker_default&amp;#34; with the default driver
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Creating docker_zookeeper_1...
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&amp;#39;Compose: docker&amp;#39; has been deployed successfully.
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;li>
&lt;p>&lt;strong>Start Service Provider&lt;/strong>&lt;/p>
&lt;p>Open the &amp;ldquo;helloworld/go-server/cmd/server.go&amp;rdquo; file, then click the ▶︎ icon next to the &amp;ldquo;main&amp;rdquo; function in the left gutter column, and select &amp;ldquo;Modify Run Configuration&amp;hellip;&amp;rdquo; from the pop-up menu, And make sure the following configuration is accurate:&lt;/p>
&lt;ul>
&lt;li>Working Directory: Absolute path of &amp;ldquo;helloworld/go-server&amp;rdquo; directory, for example: &lt;em>/home/dubbo-go-samples/helloworld/go-server&lt;/em>&lt;/li>
&lt;li>Environment: DUBBO_GO_CONFIG_PATH=&amp;rdquo;../conf/dubbogo.yml&amp;quot;&lt;/li>
&lt;/ul>
&lt;p>In this way, the server in the example is ready and ready to run.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Run Service Consumer&lt;/strong>&lt;/p>
&lt;p>Open the &amp;ldquo;helloworld/go-client/cmd/client.go&amp;rdquo; file, then click the ▶︎ icon next to the &amp;ldquo;main&amp;rdquo; function from the left gutter column, and then select &amp;ldquo;Modify Run Configuration&amp;hellip; &amp;ldquo;, and make sure the following configuration is accurate:&lt;/p>
&lt;ul>
&lt;li>Working Directory: Absolute path of &amp;ldquo;helloworld/go-client&amp;rdquo; directory, for example: &lt;em>/home/dubbo-go-samples/helloworld/go-client&lt;/em>&lt;/li>
&lt;li>Environment: DUBBO_GO_CONFIG_PATH=&amp;rdquo;../conf/dubbogo.yml&amp;rdquo;&lt;/li>
&lt;/ul>
&lt;p>Then you can run and call the remote service. If the call is successful, there will be the following output:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>[2021-02-03/16:19:30 main.main: client.go: 66] response result: &amp;amp;{A001 Alex Stocks 18 2020-02-04 16:19:30.422 +0800 CST}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;/ol>
&lt;p>If you need to debug this example or the dubbo-go framework, you can switch from &amp;ldquo;Run&amp;rdquo; to &amp;ldquo;Debug&amp;rdquo; in the IDE. If you want to end, just click ◼︎ directly.&lt;/p></description></item></channel></rss>