gRPC初体验

一、gRPC简介

1、RPC是远程过程调用的简称,在分布式系统中,客户端可以像调用本地对象一样调用远程机器上服务端对象,用于系统的垂直拆分,常见的JAVA RPC框架有JAVA自带的RMI、基于Http的Hessian、阿里基于TCP的Dubbo、淘宝基于TCP的HSF、Spring Cloud等。

2、gRPC是一个基于ProtoBuf、HTTP2设计的高性能通用RPC框架,支持跨语言调用。

二、Hello World例子

1、定义服务

使用ProtoBuf接口定义语言定义方法和请求参数和返回类型。

(1)、hello.proto:请求参数和返回类型
复制代码
protoc --java_out=. hello.proto

编译后生成五个文件Hello.java、HelloRequest.java、HelloRequestOrBuilder.java、HelloResponse.java、HelloResponseOrBuilder.java

(2)、helloServer.proto 服务接口

服务接口的编码依赖于protoc-gen-grpc-java插件,mac下安装protoc-gen-grpc-java,下载protoc-gen-grpc-java配置环境

编译后会生成gRPC两个文件 GreetingService.java、HelloServiceGrpc.java

2、创建Maven多模块工程

Interface:proto生成的代码copy到该模块下

clien:客户端代码

service:服务端代码

3、服务端代码

一个接口实现类,一个启动类

4、客户端代码

注:开始运行的时候报错,报下面错误,代码跟进去发现默认是启用了SSL连接,但没有配置SSL证书,为了简单跑通第一个例子,可以加上usePlaintext(true)用明文进行通讯。

复制代码
Jetty ALPN/NPN has not been properly configurs
相关推荐
天远Date Lab3 分钟前
零信任架构实战:基于天远企业股权变更构建自动化招投标供应商股东穿透审查网关
java·人工智能·架构·自动化
weixin_3993806925 分钟前
TongWeb7.0.4.9M11如何接入到idea(by lqw)
java·ide·intellij-idea
paopaokaka_luck37 分钟前
社区服务平台(加权协同过滤推荐、Jieba中文词频分析、WebSocket实时聊天、求助处理闭环、 活动积分闭环、ECharts多维分析)
java·前端·spring boot·mysql·echarts·mybatis
.Bryce.43 分钟前
T2-LLM评测不等于Agent评测
android·java·人工智能·后端·gpt·agent·1024程序员节
Wang's Blog1 小时前
Java 项目实战: 交友项目 - 用户体系集成:查询用户环信账号密码
java·交友
Wang's Blog1 小时前
Java 项目实战: 交友项目 - 发布评论
java·开发语言·交友
qq_364682151 小时前
录音APP怎么切换语言?多语言版本如何使用
java·服务器·前端
Wang's Blog2 小时前
Java 项目实战: 交友项目 - 用户体系集成:根据环信id查询用户详情
java·lua·交友
摇滚侠2 小时前
《On Java 中文版 基础卷》阅读笔记 复用 13
java·笔记·python
2601_968900772 小时前
玻璃深加工的工艺窗口:4 道工序的温度与时间参数边界
android·java·javascript