Skip to content
forked from dubbogo/triple

triple-go (dubbo3) network protocol package

License

Notifications You must be signed in to change notification settings

Leospard/triple

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

triple-go (dubbo3) network protocol package

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 81.4%
  • Makefile 9.9%
  • Shell 5.3%
  • Java 3.4%