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
相关推荐
小豪GO!21 分钟前
Java多线程初阶
java·开发语言
程序猿阿越21 分钟前
Kafka源码(四)发送消息-服务端
java·后端·源码阅读
杨杨杨大侠22 分钟前
第10篇:测试与实战 - 构建完整的示例应用
java·spring·apache log4j
码农秋23 分钟前
Java Optional 最佳实践:从入门到精通的完整指南
java·开发语言·optional
杨杨杨大侠27 分钟前
第9篇:监控与运维 - 集成Actuator健康检查
java·spring·apache log4j
AAA修煤气灶刘哥32 分钟前
从 “一块巨石” 到 “搭积木”:后端 必懂的微服务全家桶(Feign+OkHttp 实战版)
java·后端·架构
技术小泽32 分钟前
JVM之CMS、G1|ZGC详解以及选型对比
java·jvm·后端·算法·性能优化
AAA修煤气灶刘哥35 分钟前
微服务 “迷路” 自救指南:Nacos 凭啥把 Eureka 拍在沙滩上?(附注册中心原理 + 实战)
java·后端·spring cloud
一叶飘零_sweeeet1 小时前
从 0 到 1 构建零丢失 RabbitMQ 数据同步堡垒:第三方接口数据零丢失的终极方案
java·分布式·rabbitmq
三水彡彡彡彡1 小时前
Java中使用正则表达式的正确打开方式
java·开发语言·正则表达式