Hessian2
Introduction
Hessian2 is a binary serialization protocol primarily used for remote invocation and data transfer in Java applications. It supports various data types, including primitive types, custom objects, and collections, employing a compact encoding method to provide efficient performance.
The Hessian2 protocol is used for interoperability between Kitex and Dubbo. While not a core serialization protocol natively supported by Kitex, it is supported by extension libraries.
Usage
Specify the Hessian2 protocol when generating code (its IDL type should be thrift, but it can be left unspecified as the default).
Client
Generate Code
kitex -protocol Hessian2 -I idl/ idl/${idl_name}.thrift
Client Initialization
cli, err := service.NewClient(destService, // Configure DubboCodec client.WithCodec(dubbo.NewDubboCodec( // Specify the Dubbo Interface to be invoked dubbo.WithJavaClassName("JavaInterfaceName"), )), )
Server
Generate Code
kitex -protocol Hessian2 -service ${service_name} -I idl/ idl/${idl_name}.thrift
Server Initialization
svr := service.NewServer(destService, // Configure DubboCodec server.WithCodec(dubbo.NewDubboCodec( // Configure the Java Interface corresponding to the Kitex service. Other Dubbo and Kitex clients can invoke this name. dubbo.WithJavaClassName("JavaInterfaceName"), )), )
Additional Information
To ensure interoperability with Dubbo Java, add the
JavaClassName
annotation to each struct defined in the IDL, with the value being the corresponding Java class name.DubboCodec provides extensive compatibility and support for Kitex-Dubbo interoperability. For details, please refer to https://github.com/kitex-contrib/codec-dubbo/blob/main/README.md.