<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Registry Center, Service Discovery, and Load Balancing on Apache Dubbo</title><link>https://deploy-preview-3202--dubbo.netlify.app/en/overview/mannual/java-sdk/reference-manual/registry/</link><description>Recent content in Registry Center, Service Discovery, and Load Balancing on Apache Dubbo</description><generator>Hugo</generator><language>en</language><atom:link href="https://deploy-preview-3202--dubbo.netlify.app/en/overview/mannual/java-sdk/reference-manual/registry/index.xml" rel="self" type="application/rss+xml"/><item><title>Overview of the Registry</title><link>https://deploy-preview-3202--dubbo.netlify.app/en/overview/mannual/java-sdk/reference-manual/registry/overview/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-3202--dubbo.netlify.app/en/overview/mannual/java-sdk/reference-manual/registry/overview/</guid><description>&lt;p>The registry is the core component of Dubbo service governance. Dubbo relies on the registry for coordinating service (address) discovery, where automated service discovery is foundational for dynamic scaling, load balancing, and traffic management in microservices. Dubbo&amp;rsquo;s service discovery mechanism has evolved from interface-level service discovery in Dubbo 2 to application-level service discovery in Dubbo 3. For specific evolution details, refer to &lt;a href="https://deploy-preview-3202--dubbo.netlify.app/en/overview/mannual/java-sdk/concepts-and-architecture/service-discovery/">Service Discovery Mechanism&lt;/a>.&lt;/p>
&lt;p>&lt;img alt="service-discovery" src="https://deploy-preview-3202--dubbo.netlify.app/imgs/v3/feature/service-discovery/arc.png">&lt;/p>
&lt;h2 id="basic-usage">Basic Usage&lt;/h2>
&lt;p>When developing applications, you can specify the Dubbo registry component. Configuration is straightforward; you only need to specify the cluster address of the registry:&lt;/p></description></item><item><title>Use Zookeeper as a Registration Center to Achieve Automatic Service Discovery</title><link>https://deploy-preview-3202--dubbo.netlify.app/en/overview/mannual/java-sdk/reference-manual/registry/zookeeper/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-3202--dubbo.netlify.app/en/overview/mannual/java-sdk/reference-manual/registry/zookeeper/</guid><description>&lt;p>This example demonstrates how Zookeeper is used as a registration center for automatic service discovery, based on a Spring Boot application. You can view the &lt;a href="https://github.com/apache/dubbo-samples/tree/master/3-extensions/registry/dubbo-samples-zookeeper">full example code&lt;/a>.&lt;/p>
&lt;h2 id="1-basic-configuration">1 Basic Configuration&lt;/h2>
&lt;h3 id="11-Add-Maven-dependencies">1.1 Add Maven Dependencies&lt;/h3>
&lt;p>Add dependencies like dubbo and zookeeper. The &lt;code>dubbo-spring-boot-starter&lt;/code> will automatically add Zookeeper-related client dependencies for the application, reducing the cost of using Zookeeper. If you encounter version compatibility issues, you can also choose to add Curator, Zookeeper Client, and other dependencies manually.&lt;/p></description></item><item><title>Use Nacos as a Registry for Automatic Service Discovery</title><link>https://deploy-preview-3202--dubbo.netlify.app/en/overview/mannual/java-sdk/reference-manual/registry/nacos/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-3202--dubbo.netlify.app/en/overview/mannual/java-sdk/reference-manual/registry/nacos/</guid><description>&lt;p>This example demonstrates automatic service discovery using Nacos as a registry based on a Spring Boot application. You can view the &lt;a href="https://github.com/apache/dubbo-samples/tree/master/3-extensions/registry/dubbo-samples-nacos">complete example code&lt;/a>.&lt;/p>
&lt;h2 id="1-basic-configuration">1 Basic Configuration&lt;/h2>
&lt;h3 id="11-Add-Dependency">1.1 Add Dependencies&lt;/h3>
&lt;p>For Spring Boot applications, use the following spring-boot-starter:&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-xml" data-lang="xml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#268bd2">&amp;lt;dependency&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;groupId&amp;gt;&lt;/span>org.apache.dubbo&lt;span style="color:#268bd2">&amp;lt;/groupId&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;artifactId&amp;gt;&lt;/span>dubbo-spring-boot-starter&lt;span style="color:#268bd2">&amp;lt;/artifactId&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;version&amp;gt;&lt;/span>3.3.0&lt;span style="color:#268bd2">&amp;lt;/version&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#268bd2">&amp;lt;/dependency&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#268bd2">&amp;lt;dependency&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;groupId&amp;gt;&lt;/span>org.apache.dubbo&lt;span style="color:#268bd2">&amp;lt;/groupId&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;artifactId&amp;gt;&lt;/span>dubbo-nacos-spring-boot-starter&lt;span style="color:#268bd2">&amp;lt;/artifactId&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;version&amp;gt;&lt;/span>3.3.0&lt;span style="color:#268bd2">&amp;lt;/version&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#268bd2">&amp;lt;/dependency&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Non-Spring Boot users can add dubbo and nacos-client dependencies:&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-xml" data-lang="xml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#268bd2">&amp;lt;dependencies&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;dependency&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;groupId&amp;gt;&lt;/span>org.apache.dubbo&lt;span style="color:#268bd2">&amp;lt;/groupId&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;artifactId&amp;gt;&lt;/span>dubbo&lt;span style="color:#268bd2">&amp;lt;/artifactId&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;version&amp;gt;&lt;/span>3.3.0&lt;span style="color:#268bd2">&amp;lt;/version&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;/dependency&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;dependency&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;groupId&amp;gt;&lt;/span>com.alibaba.nacos&lt;span style="color:#268bd2">&amp;lt;/groupId&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;artifactId&amp;gt;&lt;/span>nacos-client&lt;span style="color:#268bd2">&amp;lt;/artifactId&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;version&amp;gt;&lt;/span>2.1.0&lt;span style="color:#268bd2">&amp;lt;/version&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;/dependency&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#268bd2">&amp;lt;/dependencies&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="Nacos-Version">1.2 Nacos Version Mapping&lt;/h3>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th style="text-align: left">Dubbo&lt;/th>
 &lt;th style="text-align: left">Recommended Nacos Version&lt;/th>
 &lt;th style="text-align: left">Nacos Compatibility Range&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td style="text-align: left">3.3.0&lt;/td>
 &lt;td style="text-align: left">2.3.0&lt;/td>
 &lt;td style="text-align: left">2.x&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td style="text-align: left">3.2.21&lt;/td>
 &lt;td style="text-align: left">2.1.0&lt;/td>
 &lt;td style="text-align: left">2.x&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td style="text-align: left">3.1.11&lt;/td>
 &lt;td style="text-align: left">2.0.9&lt;/td>
 &lt;td style="text-align: left">2.x&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td style="text-align: left">3.0.10&lt;/td>
 &lt;td style="text-align: left">2.0.9&lt;/td>
 &lt;td style="text-align: left">2.x&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td style="text-align: left">2.7.21&lt;/td>
 &lt;td style="text-align: left">Latest 1.x Version&lt;/td>
 &lt;td style="text-align: left">1.x&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td style="text-align: left">2.6.0&lt;/td>
 &lt;td style="text-align: left">Latest 1.x Version&lt;/td>
 &lt;td style="text-align: left">1.x&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h3 id="13-configure-and-enable-nacos">1.3 Configure and Enable Nacos&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-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#586e75"># application.yml (Spring Boot)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>dubbo
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> registry
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">address&lt;/span>: nacos://localhost:8848
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>or&lt;/p></description></item><item><title>Application Level Service Discovery vs Interface Level Service Discovery</title><link>https://deploy-preview-3202--dubbo.netlify.app/en/overview/mannual/java-sdk/reference-manual/registry/service-discovery-application-vs-interface/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-3202--dubbo.netlify.app/en/overview/mannual/java-sdk/reference-manual/registry/service-discovery-application-vs-interface/</guid><description>&lt;p>Dubbo3 currently supports interface-level service discovery.&lt;/p>
&lt;h2 id="application-level-service-discovery">Application Level Service Discovery&lt;/h2>
&lt;h3 id="design-goals">Design Goals&lt;/h3>
&lt;ul>
&lt;li>Significantly reduce resource consumption during the service discovery process, including enhancing the registration center&amp;rsquo;s capacity and reducing resource usage for consumer address resolution, allowing the Dubbo3 framework to support service governance for larger clusters and achieve unlimited horizontal scaling.&lt;/li>
&lt;li>Adapt to underlying infrastructure service discovery models, such as Kubernetes and Service Mesh.&lt;/li>
&lt;/ul>
&lt;h3 id="comparison-with-interface-level">Comparison with Interface Level&lt;/h3>
&lt;p>&lt;img alt="interface-arc" src="https://deploy-preview-3202--dubbo.netlify.app/imgs/blog/proposals/discovery/arc.png">&lt;/p>
&lt;p>Starting from the most classic working principle diagram of Dubbo, service address discovery has been built into Dubbo since its inception. Providers register addresses with the registration center, and consumers subscribe to real-time updates of these addresses from the registration center. Upon receiving the address list, consumers initiate RPC calls to providers based on specific load balancing strategies.&lt;/p></description></item><item><title>Multi-Registry</title><link>https://deploy-preview-3202--dubbo.netlify.app/en/overview/mannual/java-sdk/reference-manual/registry/multiple-registry/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-3202--dubbo.netlify.app/en/overview/mannual/java-sdk/reference-manual/registry/multiple-registry/</guid><description>&lt;h2 id="1-associating-services-with-multiple-registries">1 Associating Services with Multiple Registries&lt;/h2>
&lt;h3 id="11-global-default-registry">1.1 Global Default Registry&lt;/h3>
&lt;p>Dubbo registries and services are independently configured, and developers usually do not need to set up the relationship between service and registry components. The Dubbo framework will automatically perform the following actions:&lt;/p>
&lt;ul>
&lt;li>For all Service services, register service addresses with all global default registries.&lt;/li>
&lt;li>For all Reference services, subscribe to service addresses from all global default registries.&lt;/li>
&lt;/ul>
&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-yml" data-lang="yml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#586e75"># application.yml (Spring Boot)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>dubbo
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> registries
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> beijingRegistry
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">address&lt;/span>: zookeeper://localhost:2181
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> shanghaiRegistry
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">address&lt;/span>: zookeeper://localhost:2182
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&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-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#268bd2">@DubboService&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#268bd2">public&lt;/span> &lt;span style="color:#268bd2">class&lt;/span> &lt;span style="color:#268bd2">DemoServiceImpl&lt;/span> &lt;span style="color:#268bd2">implements&lt;/span> DemoService {}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#268bd2">@DubboService&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#268bd2">public&lt;/span> &lt;span style="color:#268bd2">class&lt;/span> &lt;span style="color:#268bd2">HelloServiceImpl&lt;/span> &lt;span style="color:#268bd2">implements&lt;/span> HelloService {}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>The above configuration, developed using Spring Boot (XML and API methods are similar), sets up two global default registries, beijingRegistry and shanghaiRegistry. The services DemoService and HelloService will be registered to the two default registries respectively.&lt;/p></description></item></channel></rss>