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
相关推荐
爱上语文8 分钟前
Springboot的三层架构
java·开发语言·spring boot·后端·spring
serve the people11 分钟前
springboot 单独新建一个文件实时写数据,当文件大于100M时按照日期时间做文件名进行归档
java·spring boot·后端
qmx_071 小时前
HTB-Jerry(tomcat war文件、msfvenom)
java·web安全·网络安全·tomcat
为风而战1 小时前
IIS+Ngnix+Tomcat 部署网站 用IIS实现反向代理
java·tomcat
技术无疆3 小时前
快速开发与维护:探索 AndroidAnnotations
android·java·android studio·android-studio·androidx·代码注入
架构文摘JGWZ6 小时前
Java 23 的12 个新特性!!
java·开发语言·学习
拾光师7 小时前
spring获取当前request
java·后端·spring
aPurpleBerry7 小时前
neo4j安装启动教程+对应的jdk配置
java·neo4j
我是苏苏7 小时前
Web开发:ABP框架2——入门级别的增删改查Demo
java·开发语言
xujinwei_gingko7 小时前
Spring IOC容器Bean对象管理-Java Config方式
java·spring