<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Serialization on Apache Dubbo</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/overview/mannual/java-sdk/reference-manual/serialization/</link><description>Recent content in Serialization on Apache Dubbo</description><generator>Hugo</generator><language>en</language><atom:link href="https://deploy-preview-3199--dubbo.netlify.app/en/overview/mannual/java-sdk/reference-manual/serialization/index.xml" rel="self" type="application/rss+xml"/><item><title>Introduction to Dubbo Serialization Mechanism</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/overview/mannual/java-sdk/reference-manual/serialization/serialization/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/overview/mannual/java-sdk/reference-manual/serialization/serialization/</guid><description>&lt;h2 id="supported-protocol-list">Supported Protocol List&lt;/h2>
&lt;p>The following is the list of serialization protocols supported by the Dubbo framework, classified by &lt;code>triple&lt;/code> and &lt;code>dubbo&lt;/code> RPC communication protocols.&lt;/p>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th style="text-align: left">&lt;span style="display:inline-block;width:100px">RPC Protocol&lt;/span>&lt;/th>
 &lt;th style="text-align: left">&lt;span style="display:inline-block;width:100px">Programming Mode&lt;/span>&lt;/th>
 &lt;th style="text-align: left">&lt;span style="display:inline-block;width:100px">Serialization Protocol&lt;/span>&lt;/th>
 &lt;th style="text-align: left">&lt;span style="display:inline-block;width:200px">Configuration Method&lt;/span>&lt;/th>
 &lt;th style="text-align: left">JDK Version&lt;/th>
 &lt;th style="text-align: left">Description&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td style="text-align: left">&lt;strong>triple&lt;/strong>&lt;/td>
 &lt;td style="text-align: left">IDL&lt;/td>
 &lt;td style="text-align: left">protobuf,&lt;br/>protobuf-json&lt;/td>
 &lt;td style="text-align: left">Default&lt;/td>
 &lt;td style="text-align: left">8, 17, 21&lt;/td>
 &lt;td style="text-align: left">Default serialization method when using IDL, clients can also choose protobuf-json for serialization communication without additional configuration&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td style="text-align: left">&lt;/td>
 &lt;td style="text-align: left">Java Interface&lt;/td>
 &lt;td style="text-align: left">protobuf-wrapper&lt;/td>
 &lt;td style="text-align: left">serialization=&amp;ldquo;hessian&amp;rdquo;&lt;/td>
 &lt;td style="text-align: left">8, 17, 21&lt;/td>
 &lt;td style="text-align: left">This mode adopts a double serialization mode, where data is first serialized by hessian and then by protobuf.&lt;br/>&lt;br/>Supports a calling model equivalent to IDL, which is easy to use but with slightly reduced performance&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td style="text-align: left">&lt;strong>dubbo&lt;/strong>&lt;/td>
 &lt;td style="text-align: left">Java Interface&lt;/td>
 &lt;td style="text-align: left">hessian&lt;/td>
 &lt;td style="text-align: left">Default, serialization=&amp;ldquo;hessian&amp;rdquo;&lt;/td>
 &lt;td style="text-align: left">8, 17, 21&lt;/td>
 &lt;td style="text-align: left">The default serialization method for the dubbo protocol, featuring good compatibility, high performance, and cross-language advantages (java, go, c/c++, php, python, .net)&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td style="text-align: left">&lt;/td>
 &lt;td style="text-align: left">Java Interface&lt;/td>
 &lt;td style="text-align: left">protostuff&lt;/td>
 &lt;td style="text-align: left">serialization=&amp;ldquo;protostuff&amp;rdquo;&lt;/td>
 &lt;td style="text-align: left">8&lt;/td>
 &lt;td style="text-align: left">A Java serialization library with built-in support for forward-backward compatibility (schema evolution) and validation.&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td style="text-align: left">&lt;/td>
 &lt;td style="text-align: left">Java Interface&lt;/td>
 &lt;td style="text-align: left">gson&lt;/td>
 &lt;td style="text-align: left">serialization=&amp;ldquo;gson&amp;rdquo;&lt;/td>
 &lt;td style="text-align: left">8, 17, 21&lt;/td>
 &lt;td style="text-align: left">A JSON serialization library released by Google&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td style="text-align: left">&lt;/td>
 &lt;td style="text-align: left">Java Interface&lt;/td>
 &lt;td style="text-align: left">avro&lt;/td>
 &lt;td style="text-align: left">serialization=&amp;ldquo;avro&amp;rdquo;&lt;/td>
 &lt;td style="text-align: left">8, 17, 21&lt;/td>
 &lt;td style="text-align: left">A high-performance serialization library for Java&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td style="text-align: left">&lt;/td>
 &lt;td style="text-align: left">Java Interface&lt;/td>
 &lt;td style="text-align: left">msgpack&lt;/td>
 &lt;td style="text-align: left">serialization=&amp;ldquo;msgpack&amp;rdquo;&lt;/td>
 &lt;td style="text-align: left">8, 17, 21&lt;/td>
 &lt;td style="text-align: left">Offers good compatibility and multi-language implementations (Java, C/C++, Python, etc.)&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td style="text-align: left">&lt;/td>
 &lt;td style="text-align: left">Java Interface&lt;/td>
 &lt;td style="text-align: left">kryo&lt;/td>
 &lt;td style="text-align: left">serialization=&amp;ldquo;kryo&amp;rdquo;&lt;/td>
 &lt;td style="text-align: left">8, 17, 21&lt;/td>
 &lt;td style="text-align: left">Kryo is a very mature serialization implementation, widely used in Twitter, Groupon, Yahoo, and many prominent open-source projects (like Hive, Storm).&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td style="text-align: left">&lt;/td>
 &lt;td style="text-align: left">Java Interface&lt;/td>
 &lt;td style="text-align: left">fastjson2&lt;/td>
 &lt;td style="text-align: left">serialization=&amp;ldquo;fastjson2&amp;rdquo;&lt;/td>
 &lt;td style="text-align: left">8, 17, 21&lt;/td>
 &lt;td style="text-align: left">fastjson&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td style="text-align: left">&lt;/td>
 &lt;td style="text-align: left">Java Interface&lt;/td>
 &lt;td style="text-align: left">More extensions&lt;/td>
 &lt;td style="text-align: left">&lt;/td>
 &lt;td style="text-align: left">&lt;/td>
 &lt;td style="text-align: left">&lt;a href="https://github.com/apache/dubbo-spi-extensions/tree/master/dubbo-serialization-extensions">dubbo-spi-extensions&lt;/a>&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h2 id="performance-comparison-report">Performance Comparison Report&lt;/h2>
&lt;p>Serialization plays a crucial role in response speed, throughput, and network bandwidth consumption for remote calls, making it one of the key factors in improving the performance of distributed systems.&lt;/p></description></item><item><title>Serialization Protocol Upgrade</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/overview/mannual/java-sdk/reference-manual/serialization/serialization-upgrade/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/overview/mannual/java-sdk/reference-manual/serialization/serialization-upgrade/</guid><description>&lt;p>In version &lt;code>3.1.0&lt;/code>, Dubbo adds support for Fastjson2 in its default serialization protocols. Some users may consider upgrading the serialization protocol in existing systems, but differences in server and client versions may result in the client not supporting the server&amp;rsquo;s serialization protocol.&lt;/p>
&lt;p>In version &lt;code>3.2.0&lt;/code>, Dubbo&amp;rsquo;s server introduces a new configuration &lt;code>prefer-serialization&lt;/code>, which can perfectly address the risks that may arise during the server serialization upgrade process.&lt;/p>
&lt;h3 id="best-practices">Best Practices&lt;/h3>
&lt;p>Upgrading the serialization protocol requires two steps:&lt;/p></description></item></channel></rss>