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
相关推荐
泡泡以安9 小时前
【爬虫教程】第7章:现代浏览器渲染引擎原理(Chromium/V8)
java·开发语言·爬虫
月明长歌9 小时前
Java进程与线程的区别以及线程状态总结
java·开发语言
汪不止9 小时前
使用模板方法模式实现可扩展的动态查询过滤器
java·模板方法模式
Facechat9 小时前
视频混剪-时间轴设计
java·数据库·缓存
蝎子莱莱爱打怪10 小时前
我的2025年年终总结
java·后端·面试
沛沛老爹10 小时前
Web开发者5分钟上手:Agent Skills环境搭建与基础使用实战
java·人工智能·llm·llama·rag·agent skills
奋进的芋圆10 小时前
TokenRetryHelper 详解与 Spring Boot 迁移方案
java·spring boot·后端
毕设源码-赖学姐10 小时前
【开题答辩全过程】以 音像租借管理系统为例,包含答辩的问题和答案
java
小宇的天下10 小时前
Calibre 3Dstack --每日一个命令day7【Centers】(3-7)
java·服务器·数据库
用户03048059126310 小时前
Spring Boot 配置文件加载大揭秘:优先级覆盖与互补合并机制详解
java·后端