Code Monkey home page Code Monkey logo

triple's Introduction

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

triple's People

Contributors

laurencelizhixin avatar justxuewei avatar alexstocks avatar zlber avatar code-fight avatar changedenczd avatar luky116 avatar mark4z avatar jinfeijie avatar ztelur avatar wolingzong avatar zhaoyunxing92 avatar

Stargazers

ik5 avatar  avatar @karantin2020 avatar supercocoa avatar  avatar shiwyang avatar  avatar houseme avatar yflau avatar  avatar Lexus Lee avatar Gerald Xv avatar Yi Lu avatar TianHe avatar Jerry Tan avatar ukuz90 avatar  avatar Zhao Xiaohong avatar phial3 avatar song avatar Zonglei Dong avatar Four Hu avatar Joe Zou avatar  avatar plusmancn avatar Phil avatar Kagaya avatar ferry avatar  avatar  avatar  avatar longxboy avatar liukai avatar brian avatar zbv avatar scott lewis avatar Jake Xie avatar  avatar  avatar

Watchers

James Cloos avatar Joe Zou avatar  avatar  avatar William avatar vito.he avatar  avatar watermelon avatar  avatar hbinr avatar aliiohs avatar panty avatar

triple's Issues

集成测试增加java互通性测试

What would you like to be added:
在example内目前只有go-go集成测试,由于已经有用户使用go client 调用 java server,需要将dubbogosamples的gojava互通例子搬进来,增加互通性例子和ci集成测试过程。

Why is this needed:

writeResponse message may be string

What happened:
writeResponse(triple/pkg/http2/util.go) input param message may be string instead of []byte, when error occurs.

What you expected to happen:

How to reproduce it (as minimally and precisely as possible):

Anything else we need to know?:

windows未生成xx_triple.pb.go

protoc --go_out=. --go-triple_out=. .\xx.proto 生成不了xx_triple.pb.go

libprotoc 3.21.9
protoc-gen-go.exe v1.28.1
protoc-gen-go-triple 1.0.5

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.