<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>RPC Communication Protocol Based on HTTP1/2 - triple on Apache Dubbo</title><link>https://deploy-preview-3202--dubbo.netlify.app/en/overview/mannual/java-sdk/tasks/protocols/triple/</link><description>Recent content in RPC Communication Protocol Based on HTTP1/2 - triple 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/tasks/protocols/triple/index.xml" rel="self" type="application/rss+xml"/><item><title>Developing triple communication services using Java interfaces</title><link>https://deploy-preview-3202--dubbo.netlify.app/en/overview/mannual/java-sdk/tasks/protocols/triple/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/tasks/protocols/triple/interface/</guid><description>&lt;p>&lt;strong>Unlike the official Google gRPC implementation, the Dubbo implementation of the triple protocol offers better usability (not bound to Protobuf), allowing you to define services directly using &lt;code>Java interfaces&lt;/code>. For users looking for smooth upgrades, having no multi-language business, or unfamiliar with Protobuf, the &lt;code>Java interface&lt;/code> method is the simplest way to use triple.&lt;/strong>&lt;/p>
&lt;p>Below is a basic example of developing a Dubbo service using the &lt;code>Java interface&lt;/code>, which uses triple protocol communication. You can view the &lt;a href="https://github.com/apache/dubbo-samples/tree/master/1-basic/dubbo-samples-api">full code for this example&lt;/a>.&lt;/p></description></item><item><title>Developing Triple Communication Services Using Protobuf (IDL)</title><link>https://deploy-preview-3202--dubbo.netlify.app/en/overview/mannual/java-sdk/tasks/protocols/triple/idl/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-3202--dubbo.netlify.app/en/overview/mannual/java-sdk/tasks/protocols/triple/idl/</guid><description>&lt;h2 id="usage">Usage&lt;/h2>
&lt;h3 id="pom-dependency">POM dependency&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-xml" data-lang="xml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#268bd2">&amp;lt;plugin&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-maven-plugin&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>${dubbo.version}&lt;span style="color:#268bd2">&amp;lt;/version&amp;gt;&lt;/span> &lt;span style="color:#586e75">&amp;lt;!-- Version 3.3.0 and above --&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;configuration&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;outputDir&amp;gt;&lt;/span>build/generated/source/proto/main/java&lt;span style="color:#268bd2">&amp;lt;/outputDir&amp;gt;&lt;/span> &lt;span style="color:#586e75">&amp;lt;!-- Refer to the following text for configurable parameters --&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;/configuration&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#268bd2">&amp;lt;/plugin&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Configurable parameters&lt;/p>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th style="text-align: center">Parameter&lt;/th>
 &lt;th style="text-align: center">Required&lt;/th>
 &lt;th style="text-align: center">Default value&lt;/th>
 &lt;th style="text-align: center">Description&lt;/th>
 &lt;th style="text-align: center">Notes&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td style="text-align: center">outputDir&lt;/td>
 &lt;td style="text-align: center">false&lt;/td>
 &lt;td style="text-align: center">${project.build.directory}/generated-sources/protobuf/java&lt;/td>
 &lt;td style="text-align: center">Generated java file storage directory&lt;/td>
 &lt;td style="text-align: center">&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td style="text-align: center">protoSourceDir&lt;/td>
 &lt;td style="text-align: center">false&lt;/td>
 &lt;td style="text-align: center">${basedir}/src/main/proto&lt;/td>
 &lt;td style="text-align: center">proto file directory&lt;/td>
 &lt;td style="text-align: center">&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td style="text-align: center">protocArtifact&lt;/td>
 &lt;td style="text-align: center">false&lt;/td>
 &lt;td style="text-align: center">com.google.protobuf:protoc:3.25.0:exe:Operating System Name:Operating System Architecture&lt;/td>
 &lt;td style="text-align: center">proto compiler component&lt;/td>
 &lt;td style="text-align: center">&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td style="text-align: center">protocVersion&lt;/td>
 &lt;td style="text-align: center">false&lt;/td>
 &lt;td style="text-align: center">3.25.0&lt;/td>
 &lt;td style="text-align: center">version of protobuf-java&lt;/td>
 &lt;td style="text-align: center">&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td style="text-align: center">dubboGenerateType&lt;/td>
 &lt;td style="text-align: center">false&lt;/td>
 &lt;td style="text-align: center">tri&lt;/td>
 &lt;td style="text-align: center">Code generation type&lt;/td>
 &lt;td style="text-align: center">Can be filled with tri or tri_reactor&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h3 id="service-definition">Service Definition&lt;/h3>
&lt;p>Define the Greeter service using Protocol Buffers.&lt;/p></description></item><item><title>Streaming Communication</title><link>https://deploy-preview-3202--dubbo.netlify.app/en/overview/mannual/java-sdk/tasks/protocols/triple/streaming/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-3202--dubbo.netlify.app/en/overview/mannual/java-sdk/tasks/protocols/triple/streaming/</guid><description>&lt;p>In the section &lt;a href="../../protocol/">Choosing RPC Communication Protocol&lt;/a>, it is mentioned that Streaming is a new RPC data transmission model provided by Dubbo3, suitable for the following scenarios:&lt;/p>
&lt;ul>
&lt;li>The interface needs to send a large amount of data that cannot be placed in a single RPC request or response and needs to be sent in batches. If the application layer cannot solve sequence and performance issues using traditional multiple RPC methods, it can only be sent serially to ensure order.&lt;/li>
&lt;li>In streaming scenarios, data needs to be processed in the order it is sent, and the data itself does not have fixed boundaries.&lt;/li>
&lt;li>In push scenarios, multiple messages are sent and processed within the same call context.&lt;/li>
&lt;/ul>
&lt;p>Streaming is divided into the following three types:&lt;/p></description></item><item><title>Develop gRPC Services with Dubbo</title><link>https://deploy-preview-3202--dubbo.netlify.app/en/overview/mannual/java-sdk/tasks/protocols/triple/grpc/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-3202--dubbo.netlify.app/en/overview/mannual/java-sdk/tasks/protocols/triple/grpc/</guid><description>&lt;p>This example demonstrates how to implement mutual calls between Dubbo services and standard gRPC services using the triple protocol. You can view the &lt;a href="https://github.com/apache/dubbo-samples/tree/master/2-advanced/dubbo-samples-triple-grpc">complete source code of the example&lt;/a>.&lt;/p>
&lt;p>&lt;img alt="triple-grpc.png" src="https://deploy-preview-3202--dubbo.netlify.app/imgs/v3/tasks/protocol/triple-grpc.png">&lt;/p>
&lt;p>As described in the &lt;a href="https://dubbo.apache.org/zh-cn/overview/reference/protocols/triple/">Triple Protocol Specification&lt;/a>, the triple protocol is 100% compatible with the gRPC protocol, while significantly improving usability (e.g., support for cURL, direct browser access, etc.). It can be said that triple is a more user-friendly design and implementation of gRPC.&lt;/p></description></item></channel></rss>