Hessian2

Kitex 使用 Hessian2 协议序列化。

介绍

Hessian2 是一种二进制序列化协议,主要用于在 Java 应用中进行远程调用和数据传输。它支持多种数据类型,包括基本类型、自定义对象和集合,采用紧凑的编码方式,提供了较好的性能。

Hessian2 协议用于 Kitex 与 Dubbo 互通,该协议并非 Kitex 核心支持的序列化协议,但在拓展库对其进行了支持。

使用方法

生成代码时指定 Hessian2 协议(其 IDL 类型应为 thrift,但作为默认选项可以不指定)。

客户端

  • 生成代码

    kitex -protocol Hessian2 -I idl/ idl/${idl_name}.thrift
    
  • Client 初始化

    cli, err := service.NewClient(destService,
      // 配置 DubboCodec
      client.WithCodec(dubbo.NewDubboCodec(
        // 指定想要调用的 Dubbo Interface
        dubbo.WithJavaClassName("JavaInterfaceName"),
      )),
    )
    

服务端

  • 生成代码

    kitex -protocol Hessian2 -service ${service_name} -I idl/ idl/${idl_name}.thrift
    
  • Server 初始化

    svr := service.NewServer(destService,
      // 配置 DubboCodec
      server.WithCodec(dubbo.NewDubboCodec(
        // 配置 Kitex 服务所对应的 Java Interface. 其他 dubbo 客户端和 kitex 客户端可以通过这个名字进行调用。
        dubbo.WithJavaClassName("JavaInterfaceName"),
      )),
    )
    

补充