RPC框架介绍(二)

前篇:RPC框架介绍(一)

4 gRPC

基于HTTP2,序列化方式默认使用Prototol Buffers,不是JSON

4.1 运行示意图

在这里插入图片描述

4.2 使用

前导工作:

1.添加依赖:gRPC、protobuf-maven-plugin
2.src/main/proto下使用protobuf3语法编写proto文件,定义服务接口、接口方法参数对象和接口方法返回对象
3.在pom.xml目录下,控制台分别运行Maven插件命令,生成对应的Java文件:
mvn protobuf:compile
mvn protobuf:compile-custom

服务端:

服务实现类需要扩展接口名Grpc和接口实现类名Base
方法中需要构建返回结果,将返回结果传入stream,返回给调用方,然后通知stream结束

使用ServerBuilder.方法来添加服务、启动服务器Server对象,main中启动服务器后,进行阻塞

客户端:

客户端构造方法中,需要初始化连接ManagedChannel对象和初始化要使用的远程服务Stub,其类型为:接口名Grpc.接口名BlockingStub
然后main中创建此客户端对象,写一个调用方法,此方法中构造服务调用参数对象,然后调用远程服务方法,返回接口方法返回对象即可;然后main中就能调用此方法了

先运行服务端,再运行客户端即可

5 HTTP Client

HTTP协议实现

5.1 开发流程

在这里插入图片描述

5.2 使用

1.构建HttpClient对象:使用单例模式,可以使用默认值或自定义参数来初始化CloseableHttpClient对象,execute方法请求接口,内部方法handleResponse处理响应,返回结果作为execute的调用结果

2.构建URI对象:基于Builder模式来构建,使用URIBuilder类和setScheme、setHost等方法

3.构建请求对象(示例:HttpGet对象对应Get、HttpPost对象对应Post):创建HttpGet对象,传入String形式的uri即可;HttpPost同理,不过其参数需要通过nvps来添加:
在这里插入图片描述
4.HttpClient发起调用及获取调用返回结果(最佳实践):自定义Json数据返回格式,使用类来对应,需要实现Serializable

整合以上步骤即HttpClient发起调用及获取返回结果的示例,也可以使用流氏API来提高易用性

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值