基于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 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
- centos 6x系统下源码安装mysql操作记录
- 【3】利用Word模板生成文档的总结
- 【2】快速代码集的由来及概览
- silverlight数据绑定模式TwoWay,OneWay,OneTime的研究
- Silverlight数据绑定/IValueConverter学习笔记
- silverlight:DeepZoom版的图片局部放大效果
- Linq之ToDictionary<TSource, TKey, TElement>的写法
- vs.net的调试小技巧之#define debug(适合新手)
- byte[]数组下标的最大值
- silverlight图片局部放大效果
- 局域网与互联网环境下MTU的快速确定方法
- 【4】通过简化的正则表达式处理字符串
- silverlight中的socket编程注意事项
- socket中的byte消息格式设计
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 实践:SpringBoot实现定时任务的动态增删启停
- Java并发编程的艺术[3]
- R语言 | 根据数据框的顺序进行筛选
- 上帝视角看 TypeScript
- 一文 get 入门 canvas 的最佳路径
- Matlab系列之数组的基本操作
- Matlab系列之数组(矩阵)的生成
- R语言T检验的简单小例子
- ggplot2 修改图例的一些操作
- 实践:SpringBoot实现定时任务的动态增删启停
- Asp.Net Core API 需要认证时发生重定向的解决方法
- 在 Windows 系统上启用远程应用
- ArcGIS Enterprise 配置 nginx 反向代理
- 在安卓手机上通过 Termux 运行编译/运行 .NET 应用
- 在 ASP.NET Core 中修改配置文件后自动加载新的配置