/triple

triple-go (dubbo3) network protocol package

Primary LanguageGoApache License 2.0Apache-2.0

Triple-go

dubbo protocol v3 (alias: triple) in Go

中文版README

Summary

Triple-go is a golang network package that based on http2, used by Dubbo-go 3.0.

It is an amazing (grpc+) protocol, compatible with Dubbo 3.0 and grpc-go. has great interoperability with grpc-go and Dubbo 3.0.

Feature

  • Use standard proto IDL to define your dubbo-go service and realize cross-language intercommunication with dubbo-java.
  • Perfect interoperability with your existing grpc services, allowing you to experience a framework with both dubbo service management capabilities and grpc compatibility.
  • Provide two-way streaming RPC calls and communicate with grpc.

Architecture

triple-go-arch

Triple Protocol

  • Alibaba Cloud official introduction article: 《Dubbo 3.0-Open the next generation of cloud-native microservices》

  • Http2 protocol header extension fields:

    • Requeset header

      tri-service-version: dubbo app version

      tri-service-group: dubbo app group

      tri-req-id: request id

      tri-trace-traceid: trace id

      tri-trace-rpcid: span id

      tri-trace-proto-bin: trace context binary data

      tri-unit-info: cluster information

    • Response header(trailer fields)

      grpc-status: grpc status code

      grpc-message: error message

      trace-proto-bin: trace binary data

Docs

Triple-go docs