基于spring-boot、grpc、zookeeper的分布式微服务架构

时间:2022-07-24
本文章向大家介绍基于spring-boot、grpc、zookeeper的分布式微服务架构,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

总览:

开源、高性能、多语言、跨平台、易扩展rpc框架 。

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 repoJava, C++, Python, Objective-C, C#, a lite-runtime (Android Java), Ruby, and JavaScript。

golang/protobuf GitHub repo 库:Go。

详细文档:proto3 language guidereference documentation

通常来说,建议将使用的proto3版本,除了可以使用所有的特性外,同时也可以避免proto2目前现有的一些问题及涉及客户端和服务端版本差异导致的一些不必要的问题。

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