基於spring-boot、grpc、zookeeper的分布式微服務架構


總覽:

開源、高性能、多語言、跨平台、易擴展rpc框架 。

Concept Diagram

Protocol Buffers 使用

默認使用 protocol buffers,Google 開源的成熟序列化機制:

文件格式:.proto 文本文件.

程序文件生成:官方提供的 protoc 程序生成目標程序文件。

示例定義:

通信數據格式:

message Person {
  string name = 1;
  int32 id = 2;
  bool has_ponycopter = 3;
}

服務,方法(參數及返回)定義:

// The greeter service definition.
service Greeter {
  // Sends a greeting
  rpc SayHello (HelloRequest) returns (HelloReply) {}
}

// The request message containing the user's name.
message HelloRequest {
  string name = 1;
}

// The response message containing the greetings
message HelloReply {
  string message = 1;
}

gRPC提供插件式生成方式。 

詳細文檔:Protocol Buffers documentation

Protocol buffer 版本

Protocol buffer 已經開源一段時間了,項目示例目前使用proto3版本,最新版本對一些定義做了簡化,添加了一些新的特性,並且在語言支持上做了擴展。

protocol buffers GitHub repo Java, C++, Python, Objective-C, C#, a lite-runtime (Android Java), Ruby, and JavaScript。

golang/protobuf GitHub repo 庫:Go。

詳細文檔:proto3 language guide 、reference documentation

通常來說,建議將使用的proto3版本,除了可以使用所有的特性外,同時也可以避免proto2目前現有的一些問題及涉及客戶端和服務端版本差異導致的一些不必要的問題。

 

項目示例:https://github.com/windwant/grpc-service


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM