gRPC玩法:
服务端
1.新建gRPC项目,添加protos文件
2.在项目文件中增加节点
3.编译项目,
4.添加服务类,继承来自proto文件生成的一个类
5.覆写父类的虚方法
6.startup UseEndpoints注册服务
客户端:
0.nuget 添加:grpc.tools;grpc.netclient;google.protobuf
1.从服务端copy proto文件到客户端
2.在项目文件中配置使用当前这个proto文件
------------------------------------------------------------------
1. gRPC 是一个高性能,开源的,跨语言的RPC框架
基于 Http/2 传输协议(支持流)
Protocol buffers高效序列化(JSON / XML)
2. gRPC支持4种流
简单 RPC(Unary RPC):传入一个请求,返回一个结果对象
服务端流式 RPC (Server streaming RPC):传入一个请求,返回多个结果对象
客户端流式 RPC (Client streaming RPC) :传入多个请求,返回1个结果对象
双向流式 RPC(Bi-directional streaming RPC):传入多个请求,返回多个结果对象
3.为什么要用grpc
WebService:最早-门槛最低,soap+xml累赘,只Http,依赖IIS
.NetRemoting:RPC--.NET RPC(限制多)---性能高
WCF—集大成者,各种服务各种协议—XML 重---.NET5移除WCF(未来可能又有了)
WebApi&Core WebApi---
gRPC
Webapi &core webapi就是遵循REST的框架,路由
Json格式—比XML轻一些
Http/2:高性能—专属序列化格式---多路复用双向流---
gRPC对js不是很友好,性能也不总是比webapi好
(gRPC数据量越大,相对性能越好)
内部交互,用gRPC
外部数据,用core webapi
4. 使用步骤:
服务端:
1.新建grpc项目服务端项目
2.添加nuget: grpc.tools;grpc.net.client;grpc.aspnetcore;google.protobuf
3.添加custom.proto 协议文件,编译
4.新建customService.cs 业务处理方法
客户端:
1.添加custom.proto 协议文件,编译;
2.program.cs 添加调用服务器端的方法,可以获取返回结果数据;
---------Jemter 测试补偿--------------------
响应时间500ms;互联网行500ms,淘宝20ms,银行1-2m,制造也3-5m
系统处理能力:HPS,TPS,QPS:互联网行
吞吐量:
并发数:500
错误率:99.4
Harbor
code--git--jenkins--harbor--kuernetes:管理镜像
JMeter 如何带token 测试接口
HTTP信息头管理器token
Bearer token //中间空格
redis 不是并发的瓶颈,需优化:
网关
log
MVC