<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>RPC Protocol on Apache Dubbo</title><link>https://deploy-preview-3203--dubbo.netlify.app/en/overview/mannual/java-sdk/reference-manual/protocol/</link><description>Recent content in RPC Protocol on Apache Dubbo</description><generator>Hugo</generator><language>en</language><atom:link href="https://deploy-preview-3203--dubbo.netlify.app/en/overview/mannual/java-sdk/reference-manual/protocol/index.xml" rel="self" type="application/rss+xml"/><item><title>Protocol Overview</title><link>https://deploy-preview-3203--dubbo.netlify.app/en/overview/mannual/java-sdk/reference-manual/protocol/overview/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-3203--dubbo.netlify.app/en/overview/mannual/java-sdk/reference-manual/protocol/overview/</guid><description>&lt;p>As an RPC framework, Dubbo has an efficient built-in RPC communication protocol that helps solve coding and communication issues between services. The currently supported protocols include:&lt;/p>
&lt;ul>
&lt;li>triple, a high-performance communication protocol based on HTTP/1 and HTTP/2, 100% compatible with gRPC, supporting Unary, Streaming, and other communication modes; allows publishing REST-style HTTP services.&lt;/li>
&lt;li>dubbo, a high-performance private communication protocol based on TCP, with the drawback of lower general applicability, more suitable for use between Dubbo SDKs;&lt;/li>
&lt;li>Any protocol extension, by extending protocol, any RPC protocol can be supported, with official ecosystem libraries providing support for JsonRPC, thrift, etc.&lt;/li>
&lt;/ul>
&lt;h2 id="protocol-selection">Protocol Selection&lt;/h2>
&lt;p>&lt;strong>How should developers decide which protocol to use?&lt;/strong> The following is our comparative analysis of multiple mainstream protocols from aspects like use cases, performance, ease of programming, and multilingual interoperability:&lt;/p></description></item><item><title>Protocol Overview</title><link>https://deploy-preview-3203--dubbo.netlify.app/en/overview/mannual/java-sdk/reference-manual/protocol/triple/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-3203--dubbo.netlify.app/en/overview/mannual/java-sdk/reference-manual/protocol/triple/</guid><description>&lt;p>Please refer to other parts of the documentation for the &lt;a href="https://deploy-preview-3203--dubbo.netlify.app/en/overview/reference/protocols/triple-spec/">triple protocol specification&lt;/a> and &lt;a href="https://deploy-preview-3203--dubbo.netlify.app/en/overview/mannual/java-sdk/tasks/protocols/triple/">basic usage&lt;/a>. This article elaborates on specific details in the Java implementation of the triple protocol.&lt;/p>
&lt;h2 id="programming-model">Programming Model&lt;/h2>
&lt;p>When using the triple protocol, developers can define RPC services using either &lt;code>Java Interface&lt;/code> or &lt;code>Protobuf (IDL)&lt;/code>. Both definitions have equal protocol capabilities and only affect the programming experience and serialization methods, with the choice of development model depending on the user&amp;rsquo;s business background.&lt;/p></description></item><item><title>Dubbo Protocol</title><link>https://deploy-preview-3203--dubbo.netlify.app/en/overview/mannual/java-sdk/reference-manual/protocol/dubbo/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-3203--dubbo.netlify.app/en/overview/mannual/java-sdk/reference-manual/protocol/dubbo/</guid><description>&lt;p>The default protocol of Dubbo uses a single long connection and NIO asynchronous communication, which is suitable for service calls with small data sizes and high concurrency, especially in scenarios where the number of service consumers far exceeds the number of service providers. Dubbo RPC is the most core high-performance, high-throughput remote invocation method in the Dubbo system, which I like to refer to as multiplexing TCP long connection calls.&lt;/p></description></item><item><title>Multiple Protocols</title><link>https://deploy-preview-3203--dubbo.netlify.app/en/overview/mannual/java-sdk/reference-manual/protocol/multi-protocols/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-3203--dubbo.netlify.app/en/overview/mannual/java-sdk/reference-manual/protocol/multi-protocols/</guid><description>&lt;p>Unlike ordinary RPC frameworks, Dubbo, as a microservices framework, provides very flexible protocol support and does not bind to a single communication protocol. Therefore, you &lt;strong>can publish multiple RPC protocols simultaneously in one process and call different RPC protocols&lt;/strong>. Next, we will detail the specific use cases and methods for multiple protocols.&lt;/p>
&lt;h2 id="use-cases">Use Cases&lt;/h2>
&lt;p>There are many scenarios where different protocols may be needed, including security, performance, and interaction with third-party systems. This article does not analyze specific business requirements but instead explores the multi-protocol capabilities provided by the Dubbo framework:&lt;/p></description></item><item><title>New Features of Tripe 3.3</title><link>https://deploy-preview-3203--dubbo.netlify.app/en/overview/mannual/java-sdk/reference-manual/protocol/triple-3.3/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-3203--dubbo.netlify.app/en/overview/mannual/java-sdk/reference-manual/protocol/triple-3.3/</guid><description>&lt;p>&lt;a name="lipv5">&lt;/a>&lt;/p>
&lt;h2 id="brand-new-rest-support">Brand New REST Support&lt;/h2>
&lt;p>&lt;a name="BrKuK">&lt;/a>&lt;/p>
&lt;h3 id="features">Features&lt;/h3>
&lt;p>In version 3.3, based on the existing HTTP protocol stack, triple implements comprehensive REST-style service export capabilities without the need for generic or gateway layer protocol conversion. Users can directly access backend Triple protocol services via HTTP protocol in a decentralized manner without configuration. It provides rich annotations and SPI extension support for advanced REST usage such as path customization, output format customization, and exception handling. Its main features include:&lt;/p></description></item><item><title>Triple Protocol Backpressure</title><link>https://deploy-preview-3203--dubbo.netlify.app/en/overview/mannual/java-sdk/reference-manual/protocol/triple-backpress/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-3203--dubbo.netlify.app/en/overview/mannual/java-sdk/reference-manual/protocol/triple-backpress/</guid><description>&lt;h2 id="overview">Overview&lt;/h2>
&lt;p>Backpressure is a core mechanism in streaming communication that coordinates the rate difference between data producers and consumers. When the consumer&amp;rsquo;s processing speed cannot keep up with the producer&amp;rsquo;s sending speed, the backpressure mechanism notifies the producer to slow down, thereby preventing memory overflow and system crashes.&lt;/p>
&lt;p>Triple protocol is built on HTTP/2 and naturally supports streaming communication. In Dubbo 3.3.7, Triple protocol added complete backpressure support with gRPC-compatible APIs, enabling developers to precisely control data sending and receiving rates in streaming calls.&lt;/p></description></item><item><title>Triple Rest User Manual</title><link>https://deploy-preview-3203--dubbo.netlify.app/en/overview/mannual/java-sdk/reference-manual/protocol/tripe-rest-manual/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-3203--dubbo.netlify.app/en/overview/mannual/java-sdk/reference-manual/protocol/tripe-rest-manual/</guid><description>&lt;div class="alert alert-warning" role="alert">
&lt;h4 class="alert-heading">Note&lt;/h4>

 Starting from Dubbo version 3.3, the original Rest protocol has been moved to the Extensions library, with the Triple protocol providing more comprehensive support for Rest. If you need to continue using the original Rest protocol, you can introduce the corresponding &lt;a href="https://github.com/apache/dubbo-spi-extensions/tree/master/dubbo-rpc-extensions/dubbo-rpc-rest">dubbo-spi-extensions&lt;/a> library dependency.

&lt;/div>

&lt;h2 id="introduction">Introduction&lt;/h2>
&lt;p>Since the Dubbo version 3.3, the Triple protocol reuses the existing HTTP protocol stack, achieving comprehensive REST-style service export capabilities. Users can decentralize directly to access backend Triple protocol services via HTTP protocol without using generic or gateway layer protocol conversion or configuration. Additionally, rich annotations and SPI extension support is provided for advanced REST usage, such as path customization, output format customization, and exception handling. Key features include:&lt;/p></description></item></channel></rss>