<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Dubbo Core Features on Apache Dubbo</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/overview/what/core-features/</link><description>Recent content in Dubbo Core Features on Apache Dubbo</description><generator>Hugo</generator><language>en</language><atom:link href="https://deploy-preview-3199--dubbo.netlify.app/en/overview/what/core-features/index.xml" rel="self" type="application/rss+xml"/><item><title>Microservices Development</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/overview/what/core-features/service-definition/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/overview/what/core-features/service-definition/</guid><description>&lt;p>Dubbo addresses a series of challenges from development, deployment to governance and operation of enterprise microservices. Dubbo provides developers with a full set of services from project creation, development testing, to deployment, visual monitoring, traffic governance, and ecosystem integration.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Development&lt;/strong>: Dubbo offers implementations in Java, Go, Rust, Node.js, and defines a microservices development paradigm. The accompanying scaffolding can be used to quickly create microservice project skeletons.&lt;/li>
&lt;li>&lt;strong>Deployment&lt;/strong>: Dubbo applications support deployment on virtual machines, Docker containers, Kubernetes, and service mesh architectures.&lt;/li>
&lt;li>&lt;strong>Service Governance&lt;/strong>: Dubbo provides governance capabilities such as address discovery, load balancing, and traffic control. The official Admin visual console and rich microservice ecosystem integration are also provided.&lt;/li>
&lt;/ul>
&lt;h2 id="development">Development&lt;/h2>
&lt;p>Next, we will explain the basic steps of Dubbo application development using a Java-based Spring Boot project as an example. The entire process is very intuitive and simple, and the development process for other languages is similar.&lt;/p></description></item><item><title>Service Discovery</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/overview/what/core-features/service-discovery/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/overview/what/core-features/service-discovery/</guid><description>&lt;p>Dubbo provides a Client-Based service discovery mechanism that relies on third-party registry center components to coordinate the service discovery process. It supports common registry centers such as Nacos, Consul, Zookeeper, etc.&lt;/p>
&lt;p>Below is a basic working principle diagram of Dubbo&amp;rsquo;s service discovery mechanism:&lt;/p>
&lt;p>&lt;img alt="service-discovery" src="https://deploy-preview-3199--dubbo.netlify.app/imgs/v3/feature/service-discovery/arc.png">&lt;/p>
&lt;p>Service discovery involves three roles: provider, consumer, and registry center. Dubbo provider instances register URL addresses to the registry center, which aggregates the data. Dubbo consumers read the address list from the registry center and subscribe to changes. Whenever the address list changes, the registry center notifies all subscribed consumer instances with the latest list.&lt;/p></description></item><item><title>Load Balancing</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/overview/what/core-features/load-balance/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/overview/what/core-features/load-balance/</guid><description>&lt;p>When it comes to cluster load balancing, Dubbo provides multiple balancing strategies, with the default being &lt;code>weighted random&lt;/code>, a weighted random load balancing strategy.&lt;/p>
&lt;p>In terms of implementation, Dubbo provides client-side load balancing, meaning the Consumer determines which Provider instance to submit the request to using a load balancing algorithm.&lt;/p>
&lt;h2 id="load-balancing-strategies">Load Balancing Strategies&lt;/h2>
&lt;p>Currently, Dubbo has the following built-in load balancing algorithms, which can be enabled by adjusting configuration items.&lt;/p></description></item><item><title>Communication Protocols</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/overview/what/core-features/protocols/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/overview/what/core-features/protocols/</guid><description>&lt;p>The Dubbo framework provides a custom high-performance RPC communication protocol: the Triple protocol based on HTTP/2 and the Dubbo2 protocol based on TCP. In addition, the Dubbo framework supports any third-party communication protocol, such as the officially supported gRPC, Thrift, REST, JsonRPC, Hessian2, etc. More protocols can be implemented through custom extensions. This is very useful for multi-protocol communication scenarios often encountered in microservice practices.&lt;/p>
&lt;p>&lt;strong>The Dubbo framework does not bind to any communication protocol. In implementation, Dubbo&amp;rsquo;s support for multiple protocols is very flexible. It allows you to publish multiple services using different protocols within one application and supports publishing all protocols externally using the same port.&lt;/strong>&lt;/p></description></item><item><title>Extension Adaptation</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/overview/what/core-features/extensibility/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/overview/what/core-features/extensibility/</guid><description>&lt;p>Dubbo is designed to be highly extensible. Through these extension points, you can:&lt;/p>
&lt;ul>
&lt;li>Intercept traffic and control traffic behavior&lt;/li>
&lt;li>Optimize some of Dubbo&amp;rsquo;s default strategies and implementations as needed&lt;/li>
&lt;li>Adapt Dubbo services to internal microservice clusters or other mainstream open-source components&lt;/li>
&lt;/ul>
&lt;h2 id="everything-is-extensible">Everything is Extensible&lt;/h2>
&lt;p>Dubbo&amp;rsquo;s extensibility allows the Dubbo project to be conveniently divided into sub-modules, achieving hot-plug features. Users can completely replace Dubbo&amp;rsquo;s native implementations based on their own needs to meet their business requirements.&lt;/p></description></item><item><title>Observability Service</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/overview/what/core-features/observability/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/overview/what/core-features/observability/</guid><description>&lt;p>Dubbo internally maintains multiple dimensions of observable metrics and supports various ways of visual monitoring. Observable metrics are generally divided into three measurement dimensions:&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Admin&lt;/strong> The Admin console visually displays applications, services, instances, and dependencies in the cluster. It supports the issuance of traffic governance rules and provides tools such as service testing, mock, and document management to improve R&amp;amp;D testing efficiency.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Metrics&lt;/strong> Dubbo collects a series of traffic metrics such as QPS, RT, number of successful requests, number of failed requests, etc., as well as a series of internal component statuses such as thread pool count, service health status, etc.&lt;/p></description></item><item><title>Authentication and Authorization</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/overview/what/core-features/security/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/overview/what/core-features/security/</guid><description>&lt;p>Dubbo provides a comprehensive mechanism for building a secure microservice communication system (zero-trust system), which includes:&lt;/p>
&lt;ul>
&lt;li>Avoiding man-in-the-middle attacks during communication, Dubbo provides identity authentication and TLS-based communication link encryption capabilities.&lt;/li>
&lt;li>Controlling inter-service access authorization, Dubbo provides mTLS and permission check mechanisms.&lt;/li>
&lt;/ul>
&lt;p>Through this document, you will learn how to use Dubbo&amp;rsquo;s security mechanisms to build a zero-trust microservice system, achieving identity authentication, transparent link encryption, authorization, auditing, and other capabilities. Since building zero trust is a systematic task and Dubbo is only a part of the data communication layer, you may need a series of infrastructure support, including certificate generation, distribution, and security policy management.&lt;/p></description></item><item><title>Service Mesh</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/overview/what/core-features/service-mesh/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/overview/what/core-features/service-mesh/</guid><description>&lt;p>Dubbo Mesh is Dubbo&amp;rsquo;s comprehensive microservice solution in the context of cloud-native, helping developers integrate Dubbo services with the standard Kubernetes Native Service system, allowing Dubbo applications to seamlessly integrate with mainstream service mesh products like Istio.&lt;/p>
&lt;p>Below is the deployment architecture diagram of Dubbo Mesh&lt;/p>
&lt;p>&lt;img alt="Dubbo-Mesh" src="https://deploy-preview-3199--dubbo.netlify.app/imgs/v3/mesh/mix-mesh.png">&lt;/p>
&lt;ul>
&lt;li>Control Plane. Istio serves as the unified control plane, providing capabilities such as Kubernetes adaptation, service discovery, certificate management, observability, and traffic governance for the cluster.&lt;/li>
&lt;li>Data Plane. Dubbo application instances act as data plane components, supporting two deployment modes:
&lt;ul>
&lt;li>Proxy Mode. The Dubbo process and Envoy are deployed in the same pod, with all traffic to and from Dubbo intercepted by the Envoy proxy, which performs traffic control.&lt;/li>
&lt;li>Proxyless Mode. The Dubbo process is deployed independently, with direct communication between processes, interacting directly with the control plane via the xDS protocol.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;p>For more information on service mesh architecture and why to integrate with the Istio control plane, please refer to the &lt;a href="https://istio.io/">Istio official website&lt;/a>. This document does not cover these general topics but focuses on the Dubbo Mesh solution itself.&lt;/p></description></item><item><title>Microservices Ecosystem</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/overview/what/core-features/ecosystem/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/overview/what/core-features/ecosystem/</guid><description>&lt;p>The Dubbo community, along with many excellent open-source projects, has established a rich microservices ecosystem around Dubbo. This ensures that developers do not need to worry about subsequent service governance demands from the first day they choose Dubbo as their development framework. Dubbo provides production-grade solutions for every common issue.&lt;/p>
&lt;p>The following table shows the support status of ecosystem components based on the latest Dubbo Java 3.2.x version. It will be continuously updated according to development progress. The completeness of components supported by each language may vary, so please refer to the detailed descriptions in each &lt;a href="https://deploy-preview-3199--dubbo.netlify.app/en/overview/mannual/">language reference manual&lt;/a>.&lt;/p></description></item><item><title>More Advanced Features</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/overview/what/core-features/more/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/overview/what/core-features/more/</guid><description>&lt;p>As a microservices framework closely related to application development and aimed at providing enterprise-level service governance capabilities for microservice clusters, Dubbo also offers many advanced features, covering service invocation behavior control, service diagnosis and tuning, service governance, and more.&lt;/p>
&lt;p>There may be slight differences in feature implementation and configuration methods across different language SDKs. For specific feature lists and usage, please refer to the following documents:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://deploy-preview-3199--dubbo.netlify.app/en/overview/mannual/java-sdk/reference-manual/">Java&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://deploy-preview-3199--dubbo.netlify.app/en/overview/mannual/golang-sdk/tutorial/">Golang&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="controlling-service-invocation-behavior">Controlling Service Invocation Behavior&lt;/h2>
&lt;ul>
&lt;li>Service Versioning&lt;/li>
&lt;li>Service Grouping&lt;/li>
&lt;li>Group Aggregation&lt;/li>
&lt;li>Asynchronous Invocation&lt;/li>
&lt;li>Asynchronous Execution&lt;/li>
&lt;li>Streaming Communication&lt;/li>
&lt;li>Reactive Programming&lt;/li>
&lt;li>Generic Invocation&lt;/li>
&lt;li>Generic Implementation&lt;/li>
&lt;li>Implicit Parameter Passing in Invocation Chain&lt;/li>
&lt;li>RPC Invocation Context&lt;/li>
&lt;li>Invocation Trigger Event Notification&lt;/li>
&lt;li>Server Callback to Client&lt;/li>
&lt;li>Subscribe Only&lt;/li>
&lt;li>Register Only&lt;/li>
&lt;li>Dynamically Specify IP for Invocation at Runtime&lt;/li>
&lt;li>Direct Connection to Provider&lt;/li>
&lt;li>Startup Check&lt;/li>
&lt;li>Local Invocation&lt;/li>
&lt;li>Parameter Validation&lt;/li>
&lt;li>Local Mock&lt;/li>
&lt;li>Local Stub&lt;/li>
&lt;li>Echo Test&lt;/li>
&lt;li>Invocation Information Logging&lt;/li>
&lt;li>Delayed Exposure&lt;/li>
&lt;li>Cluster Fault Tolerance&lt;/li>
&lt;li>Service Degradation&lt;/li>
&lt;/ul>
&lt;h2 id="diagnosis-and-tuning">Diagnosis and Tuning&lt;/h2>
&lt;ul>
&lt;li>Port Protocol Multiplexing&lt;/li>
&lt;li>Thread Pool Isolation&lt;/li>
&lt;li>Multiple Protocols&lt;/li>
&lt;li>Multiple Registries&lt;/li>
&lt;li>Request Time Sampling&lt;/li>
&lt;li>Thread Model&lt;/li>
&lt;li>Service Reference Configuration Object Caching&lt;/li>
&lt;li>Route Status Collection&lt;/li>
&lt;li>Load Balancing&lt;/li>
&lt;li>Simplified Registration Information&lt;/li>
&lt;li>Invocation Result Caching&lt;/li>
&lt;li>Concurrency Control&lt;/li>
&lt;li>Connection Control&lt;/li>
&lt;li>Delayed Connection&lt;/li>
&lt;li>Sticky Connection&lt;/li>
&lt;li>Graal VM Support&lt;/li>
&lt;li>Export Thread Stack&lt;/li>
&lt;li>Kryo and FST Serialization&lt;/li>
&lt;li>Custom Service Container&lt;/li>
&lt;li>Graceful Shutdown&lt;/li>
&lt;li>Custom Host Address Exposure&lt;/li>
&lt;li>Consistent Hashing Addressing&lt;/li>
&lt;li>Log Framework Adaptation and Runtime Management&lt;/li>
&lt;li>Kubernetes Lifecycle Probes&lt;/li>
&lt;/ul></description></item></channel></rss>