<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Address Discovery on Apache Dubbo</title><link>https://deploy-preview-3229--dubbo.netlify.app/en/overview/mannual/golang-sdk/tutorial/service-discovery/</link><description>Recent content in Address Discovery on Apache Dubbo</description><generator>Hugo</generator><language>en</language><atom:link href="https://deploy-preview-3229--dubbo.netlify.app/en/overview/mannual/golang-sdk/tutorial/service-discovery/index.xml" rel="self" type="application/rss+xml"/><item><title>Using Nacos as the Registry</title><link>https://deploy-preview-3229--dubbo.netlify.app/en/overview/mannual/golang-sdk/tutorial/service-discovery/nacos/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-3229--dubbo.netlify.app/en/overview/mannual/golang-sdk/tutorial/service-discovery/nacos/</guid><description>&lt;p>This example shows dubbo-go&amp;rsquo;s service discovery feature with Nacos as the registry. You can view the
&lt;a href="https://github.com/apache/dubbo-go-samples/tree/main/registry/nacos" target="_blank">complete example source code&lt;/a>
in dubbo-go-samples.&lt;/p>
&lt;h2 id="how-to-start">How to Start&lt;/h2>
&lt;h3 id="start-the-nacos-server">Start the Nacos Server&lt;/h3>
&lt;p>Follow this instruction to &lt;a href="https://deploy-preview-3229--dubbo.netlify.app/en/overview/reference/integrations/nacos/">install and start the Nacos server&lt;/a>.&lt;/p>
&lt;h2 id="server-registration-configuration">Server Registration Configuration&lt;/h2>
&lt;h3 id="api-configuration">API Configuration&lt;/h3>
&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-go" data-lang="go">&lt;span style="display:flex;">&lt;span>ins, _ &lt;span style="color:#719e07">:=&lt;/span> dubbo.&lt;span style="color:#268bd2">NewInstance&lt;/span>(
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>		dubbo.&lt;span style="color:#268bd2">WithName&lt;/span>(&lt;span style="color:#2aa198">&amp;#34;dubbo_registry_nacos_server&amp;#34;&lt;/span>),
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>		dubbo.&lt;span style="color:#268bd2">WithRegistry&lt;/span>(
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>			registry.&lt;span style="color:#268bd2">WithNacos&lt;/span>(),
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>			registry.&lt;span style="color:#268bd2">WithAddress&lt;/span>(nacosAddr),
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>		),
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>		dubbo.&lt;span style="color:#268bd2">WithProtocol&lt;/span>(
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>			protocol.&lt;span style="color:#268bd2">WithTriple&lt;/span>(),
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>			protocol.&lt;span style="color:#268bd2">WithPort&lt;/span>(&lt;span style="color:#2aa198">20000&lt;/span>),
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>		),
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>	)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>The meaning of each configuration item is as follows:&lt;/p></description></item><item><title>Using ZooKeeper as a registry</title><link>https://deploy-preview-3229--dubbo.netlify.app/en/overview/mannual/golang-sdk/tutorial/service-discovery/zookeeper/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-3229--dubbo.netlify.app/en/overview/mannual/golang-sdk/tutorial/service-discovery/zookeeper/</guid><description>&lt;p>This guide explains how to use ZooKeeper as a registry in Dubbo-Go. The complete example is available
in the &lt;a href="https://github.com/apache/dubbo-go-samples/tree/main/registry/zookeeper" target="_blank">dubbo-go-samples/registry/zookeeper&lt;/a>
directory.&lt;/p>
&lt;h2 id="start-zookeeper">Start ZooKeeper&lt;/h2>
&lt;h3 id="start-with-docker">Start with Docker&lt;/h3>
&lt;p>Run a local ZooKeeper instance with Docker:&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-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>docker run --name dubbo-go-zookeeper --rm -d -p 2181:2181 zookeeper:3.9.5
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Confirm that the container is running:&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-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>docker ps --filter &lt;span style="color:#268bd2">name&lt;/span>&lt;span style="color:#719e07">=&lt;/span>dubbo-go-zookeeper
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="start-from-a-binary-distribution">Start from a binary distribution&lt;/h3>
&lt;p>Download a binary distribution from the
&lt;a href="https://zookeeper.apache.org/releases.html#download">ZooKeeper releases page&lt;/a>. Extract the archive,
copy the sample configuration, and start the service:&lt;/p></description></item><item><title>Application-level Service Discovery</title><link>https://deploy-preview-3229--dubbo.netlify.app/en/overview/mannual/golang-sdk/tutorial/service-discovery/application-level-service-discovery/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-3229--dubbo.netlify.app/en/overview/mannual/golang-sdk/tutorial/service-discovery/application-level-service-discovery/</guid><description>&lt;p>Dubbo-go supports both interface-level registration and application-level service discovery. Interface-level registration stores callable provider URLs directly in the registry. Application-level service discovery stores application instances in the registry, and uses service mapping plus metadata to recover the provider URLs required by consumers.&lt;/p>
&lt;p>Application-level service discovery is the current default model. Interface-level registration and application-level service discovery use different registration and subscription paths, and they are not automatically interoperable. A consumer using interface-level discovery cannot discover providers that only register application-level instances; a consumer using application-level discovery cannot discover providers that only register interface-level URLs. Use &lt;code>all&lt;/code> during migration if both consumer types must be supported.&lt;/p></description></item><item><title>Multiple Registration Centers</title><link>https://deploy-preview-3229--dubbo.netlify.app/en/overview/mannual/golang-sdk/tutorial/service-discovery/multi_registry/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-3229--dubbo.netlify.app/en/overview/mannual/golang-sdk/tutorial/service-discovery/multi_registry/</guid><description>&lt;p>A Dubbo application can configure multiple registration centers at different interface dimensions. Multiple registration centers can be used for cluster isolation, migration, and various other scenarios. For a more detailed explanation, refer to the &lt;a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/registry/multiple-registry/" target="_blank">Dubbo Java Multiple Registration Center Documentation&lt;/a>.&lt;/p>
&lt;h2 id="usage-scenarios">Usage Scenarios&lt;/h2>
&lt;h3 id="migration-scenario">Migration Scenario&lt;/h3>
&lt;p>Migrate smoothly between different registration centers without service interruption. For example, when migrating from ZooKeeper to Nacos, dual registration keeps the business running during the transition.&lt;/p>
&lt;h3 id="canary-release-scenario">Canary Release Scenario&lt;/h3>
&lt;p>Deploy an independent canary registration center so that only specific traffic can access the testing version. The new version is registered to the canary center first, and after validation passes, it is released to all traffic, reducing the risk of going live.&lt;/p></description></item></channel></rss>