gRPC 简介
gRPC 是一个现代开源的高性能 RPC 框架,可以在任何环境下运行。它可以有效地将数据中心内和跨数据中心的服务与可插拔支持进行负载均衡、跟踪、健康检查和认证。它也适用于分布式计算,将不同设备、移动应用程序和浏览器连接到后端服务。
主要使用场景:
- 在微服务架构中有效地连接多个服务
- 将移动设备、浏览器客户端连接到后端服务
- 生成高效的客户端库
核心功能:
- 10 种语言的客户端库支持
- 高效、简单的服务定义框架
- 基于 http/2 传输的双向流式传输
- 可插拔的认证、跟踪、负载均衡和健康检查
Spring Boot 快速集成 gRPC
1、Github 地址以及相关 DEMO 代码
https://github.com/ChinaSilence/spring-boot-starter-grpc
2、结构关系说明
-
facade:独立的 Maven 模块,依赖
spring-boot-starter-grpc
,需要远程调用的方法,都定义在此模块,形式可以为接口(interface) 或者抽象类(abstract class) -
server:服务提供方,依赖
facade
模块,需实现facade
模块定义的接口或者抽象类的抽象方法 -
client:服务调用方,依赖
facade
模块,使用时,直接调用即可
3、基于容器的微服务架构下的应用
spring-boot-starter-grpc
无服务注册中心,在 kubernetes 集群或 docker swarm 集群下轻松使用,只需更改 client 端的配置中的 host 即可,基于容器平台的 DNS 服务,host 配置为 server 端的服务名,就能正常调用。