<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Protocol Specifications on Apache Dubbo</title><link>https://deploy-preview-3203--dubbo.netlify.app/en/overview/reference/protocols/</link><description>Recent content in Protocol Specifications on Apache Dubbo</description><generator>Hugo</generator><language>en</language><atom:link href="https://deploy-preview-3203--dubbo.netlify.app/en/overview/reference/protocols/index.xml" rel="self" type="application/rss+xml"/><item><title>Advantages and Goals of the Triple Protocol</title><link>https://deploy-preview-3203--dubbo.netlify.app/en/overview/reference/protocols/triple/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-3203--dubbo.netlify.app/en/overview/reference/protocols/triple/</guid><description>&lt;h2 id="introduction">Introduction&lt;/h2>
&lt;p>The Triple protocol is an HTTP-based RPC communication protocol specification designed for Dubbo3, fully compatible with the gRPC protocol, supporting communication models like Request-Response and Streaming, and can run on both HTTP/1 and HTTP/2.&lt;/p>
&lt;p>The Dubbo framework provides various language implementations of the Triple protocol, helping you build browser- and gRPC-compatible HTTP API interfaces: you only need to define a standard Protocol Buffer format service and implement business logic. Dubbo takes care of generating language-related Server Stub, Client Stub, and seamlessly integrates the entire invocation process with routing, service discovery, and other Dubbo systems. The Triple protocol implementations in languages like Go and Java natively support HTTP/1 transport layer communication. Compared to the official gRPC implementation, Dubbo&amp;rsquo;s protocol implementation is simpler and more stable, making it easier for you to develop and manage microservice applications.&lt;/p></description></item><item><title>Triple Protocol Design Philosophy and Specification</title><link>https://deploy-preview-3203--dubbo.netlify.app/en/overview/reference/protocols/triple-spec/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-3203--dubbo.netlify.app/en/overview/reference/protocols/triple-spec/</guid><description>&lt;h2 id="1-protocol-design-philosophy">1 Protocol Design Philosophy&lt;/h2>
&lt;p>The design of the Triple protocol references various protocol patterns such as gRPC, gRPC-Web, and general HTTP, absorbing the characteristics and advantages of each, ultimately designing a protocol that is easy to access via browsers, fully compatible with gRPC, and supports Streaming communication. Triple can run simultaneously over HTTP/1 and HTTP/2 protocols.&lt;/p>
&lt;p>The design goals of the Triple protocol are as follows:&lt;/p>
&lt;ul>
&lt;li>Triple is designed to be a human and development-friendly HTTP-based protocol, especially for unary RPC requests.&lt;/li>
&lt;li>Fully compatible with HTTP/2-based gRPC protocol, so the Dubbo Triple protocol implementation can 100% interact with the gRPC ecosystem.&lt;/li>
&lt;li>Only relies on standard, widely used HTTP features, enabling direct reliance on official standard HTTP network libraries in the implementation layer.&lt;/li>
&lt;/ul>
&lt;p>When used with Protocol Buffers (i.e., using IDL to define services), the Triple protocol supports unary, client-streaming, server-streaming, and bi-streaming RPC communication modes, supporting both binary Protobuf and JSON data format payloads. The Triple implementation does not bind to Protocol Buffers; for instance, you can use Java interface to define services, and the Triple protocol has extended Content-Type support for this model.&lt;/p></description></item><item><title>Dubbo2 Protocol Specification</title><link>https://deploy-preview-3203--dubbo.netlify.app/en/overview/reference/protocols/tcp/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-3203--dubbo.netlify.app/en/overview/reference/protocols/tcp/</guid><description>&lt;p>&lt;img alt="/dev-guide/images/dubbo_protocol_header.jpg" src="https://deploy-preview-3203--dubbo.netlify.app/imgs/dev/dubbo_protocol_header.png">&lt;/p>
&lt;h2 id="protocol-specification">Protocol Specification&lt;/h2>
&lt;ul>
&lt;li>
&lt;p>Magic - Magic High &amp;amp; Magic Low (16 bits)&lt;/p>
&lt;p>Identifies the protocol version number, Dubbo Protocol: 0xdabb&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Req/Res (1 bit)&lt;/p>
&lt;p>Indicates whether it is a request or response. Request: 1; Response: 0.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>2 Way (1 bit)&lt;/p>
&lt;p>Only useful when Req/Res is 1 (request), marks whether a return value is expected from the server. Set to 1 if a return value from the server is needed.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Event (1 bit)&lt;/p></description></item><item><title>HTTP Protocol Specification</title><link>https://deploy-preview-3203--dubbo.netlify.app/en/overview/reference/protocols/http/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-3203--dubbo.netlify.app/en/overview/reference/protocols/http/</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 Rest protocol has been moved to the Extensions library, with the Triple protocol providing more comprehensive support for Rest. For details, refer to the &lt;a href="../../../mannual/java-sdk/reference-manual/protocol/tripe-rest-manual/">Triple Rest User Manual&lt;/a>. If you wish to continue using the original Rest protocol, you can import 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="what-is-dubbo-http">What is Dubbo Http&lt;/h2>
&lt;p>A protocol implemented through the Dubbo protocol extension, based on the coding style of Spring Web and Resteasy, enabling inter-service calls via the HTTP protocol.&lt;/p></description></item></channel></rss>