给客户建完美网站,佛山网站建设哪个好,工厂弄个网站做外贸如何处理,保定手机网站制作01 什么是RPC
RPC#xff08;Remote Procedure Call#xff09;远程过程调用协议是一个用于建立适当框架的协议。从本质上讲#xff0c;它使一台机器上的程序能够调用另一台机器上的子程序#xff0c;而不会意识到它是远程的。
RPC 是一种软件通信协议#xff0c;一个程…01 什么是RPC
RPCRemote Procedure Call远程过程调用协议是一个用于建立适当框架的协议。从本质上讲它使一台机器上的程序能够调用另一台机器上的子程序而不会意识到它是远程的。
RPC 是一种软件通信协议一个程序可以用来向位于网络上另一台计算机的程序请求服务而不必了解网络的细节。RPC 被用来像本地系统一样调用远程系统上的其他进程。过程调用有时也被称为函数调用或子程序调用
02 RPC框架
RPC本身是一套协议规范遵循这一套规范实现的框架比较流行的有以下几个 grpc框架
gRPC是由 google开发的一个高性能、通用的开源RPC框架主要面向移动应用开发且基于HTTP/2协议标准而设计同时支持大多数流行的编程语言。gRPC基于 HTTP/2协议传输 dubbo框架
Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架使得应用可通过高性能的 RPC 实现服务的输出和输入功能可以和Spring框架无缝集成。
Dubbo是一款高性能、轻量级的开源Java RPC框架它提供了三大核心能力
① 面向接口的远程方法调用
② 智能容错和负载均衡
③ 服务自动注册和发现 thrift框架
Thrift是一种接口描述语言和二进制通讯协议。原由Facebook于2007年开发2008年正式提交Apache基金会托管成为Apache下的开源项目。
Thrift是一个RPC通讯框架采用自定义的二进制通讯协议设计。相比于传统的HTTP协议效率更高传输占用带宽更小。另外Thrift是跨语言的 Hetty 框架
Hetty 是一款构建于 Netty 和 Hessian 基础上的高性能的 RPC 框架
Hessian 是一款基于 HTTP 协议的 RPC 框架采用的是二进制 RPC 协议非常轻量级 且速度较快。
Netty 是一款基于事件驱动的 NIO 框架用以快速开发高性能、高可靠性的网络服务器和客户端程序。Hetty 客户端完全由 Hessian 实现只是使用 Netty 重新实现了服务端
03 基于grpc框架服务的接口测试
01 创建一个grpc服务接口
注意在公司里你们的grpc服务可能并不是采用python去实现的课上咱们为了测试grpc的接口使用python先创建grpc的服务接口。 安装依赖库 创建grpc接口协议文档 在项目下创建一个grpc_study包包下创建一个add.proto文件将下述内容复制进去 生成服务代码 终端下进入proto文件所在目录执行下述命令 创建服务端 02 调用grpc接口客户端
以下代码就是调用第一步中的grpc接口的 03 接口框架中适配grpc封装
1、封装底层channel初始化
在config目录下创建grpc.yml其中写上grpc接口的地址 在common目录下的client中增加下述代码 在conftes.py中增加下述代码 2、封装grpc接口调用
在api包下创建一个grpcapi的包将grpc的定义proto文件拷贝进去然后在终端下进入grpcapi目录执行下述命令 该目录下文件如下 修改add_pb2_grpc.py中的导入如下 根据上述代码封装接口调用创建一个api_client.py写上如下代码就是grpc提供的add接口的调用方法 3、编写grpc接口测试用例
在testcases包下创建一个grpcapi包创建一个test_grpc_api.py编写针对add接口的测试用例如下 执行测试
04 基于dubbo框架服务的接口测试
dubbo服务管理地址
http://**.***.**.***:****/dubbo-admin-2.6.0
用户名和密码都是root
01 dubbo服务管理简单使用
先设置为中文右侧选择语言 选择服务治理--服务 点开MarketService再点ip和端口打开如下 02 实战接口说明
第1步里我们看到了两个接口exchange和lottery下面是这两个接口的业务说明 exchange
业务是积分兑换该接口的参数是一个对象对象类型对应后台java代码中的某个类cn.testfan.dubbo.model.ExchangeRequest这个类对象对应的属性如下这些属性其实就是我们的参数 lottery
业务是抽奖参数有两个都是数字没有参数名称按照顺序第一个表示参与的活动id第二个表示用户id
03 python调用dubbo接口 安装第三方库 dubbo接口调用 04 接口框架中适配dubbo封装
1、封装底层dubbo初始化
在config目录下创建dubbo.yml文件写上如下内容 在client.py里增加下述代码 2、封装api层
dubbo接口通常是按照服务进行划分一个服务下有多个接口针对该服务创建对象然后调用各个接口。
在api包下创建dubboapi的包针对market服务创建一个market_api.py文件写上如下代码 3、测试用例层
在testcases包下创建dubboapi包在其下创建test_market_service.py写上如下代码 执行测试