A tour of gRPC
文章平均质量分 77
BUG_zhentan
这个作者很懒,什么都没留下…
展开
-
A tour of gRPC:09 - gRPC Interceptor 拦截器
好了,我们接下来进行一个小测试,看我们的拦截器是否起到了身份验证和鉴权,我们先用一个user 权 限的账号(种子用户设置在 server/main.go 中) 尝试进行 createLaptop。拦截器可以在server和client上添加,服务端拦截器会在实际方法被调用前先执行,它有多种用途,例如:日志记录,跟踪,速率限制,身份验证和授权。11. 将之前 main/client.go 中的逻辑,抽到新建的 client/laptop_client.go 中。可以看到拦截器的运行符合预期。...原创 2022-08-31 16:49:36 · 291 阅读 · 1 评论 -
A tour of gRPC:08 - gRPC 反射 与 Evans 客户端
在上一篇中,我们尝试了 bindirectional-straming 并且测试了它的跨语言调用能力,在本篇中,我们将 尝试开启 server 端的反射功能,并依据反射功能和 evans 客户端进行rpc测试。gRpc 反射是服务器的拓展,帮助客户构造请求而不需要我们事先生成stub,这使得我们可以再server完成后立刻进行远程调用测试,而不需手动构建客户端。至此为止,我们已经在服务端成功开启了 gRPC 的反射功能,接下来我们安装 Evans 客户端。接着,我们收到了来自服务端的返回。原创 2022-08-24 15:57:12 · 387 阅读 · 0 评论 -
A tour of gRPC:07 - gRPC bidirectional straming 双向流
同上,可以看到,client 发送完3条create laptop后,server 返回了评分的提示,此时client 再次发送y 后,server 接收到后会进行评分,并进行返回。可以看到,client 发送完3条create laptop后,server 返回了评分的提示,此时client 再次发送y后, server 接收到后会进行评分,并进行返回。也就是说,client和server在一次连接中都发送了多次消息。7. 接下来实现客户端,在 Generator 中添加一个新随机生成分数的方法。.原创 2022-08-11 17:18:23 · 210 阅读 · 0 评论 -
A tour of gRPC:06 - gRPC client straming 客户端流
在上一篇中,我们尝试了使用serverstraming的调用形式,在创建了十个Laptop并发送了一个筛选条件后,由server多次返回符合筛选条件的结果,并且验证了这种调用形式的跨语言调用能力。在本篇中,我们将尝试使用clientstraming即client发送多次内容,而server在接收完所以内容后,返回一次响应。本次我们将利用clientstraming这种调用形式实现图像传输的功能。...原创 2022-08-02 15:15:47 · 112 阅读 · 0 评论 -
A tour of gRPC:05 - gRPC server straming 服务端流
在上一篇中,我们实现了gRPC中的unarycall,即客户端发一个请求,服务端回复一个响应。并尝试了它在跨语言的情型下调用。在本篇中,我们将尝试实现serverstraming即客户端发送一个请求,服务端回复多个响应,并同样尝试跨语言的调用。...原创 2022-07-28 14:46:39 · 129 阅读 · 0 评论 -
A tour of gRPC:04 - gRPC unary call 一元调用
在上一篇中,我们尝试了proto 的序列化功能,并尝试进行了跨语言的序列化。而在本篇中,我们将尝 试实现一个简单的gRPC 一元调用(unary call),通过client调用server的创建方法创建一个Laptop对 象,并存储在server的内存中,并同样尝试跨语言的调用。1. 编写一个laptop_service.proto,让proto帮助我们生成stub该proto 包含三个部分CreateLaptopRequest (创建请求)CreateLaptopResponse (创建响应)Lapt原创 2022-07-12 14:51:46 · 509 阅读 · 0 评论 -
A tour of gRPC:03 - proto序列化/反序列化
在上一篇中,我们安装配置了protoc,编写了一些简单的message,并使用protoc自动生成了代码。在本篇中,我们将尝试proto的序列化功能,并且尝试在不同的语言之间进行序列化和反序列化。原创 2022-07-07 14:56:02 · 501 阅读 · 0 评论 -
A tour of gRPC:02 - 从proto生成代码
在上一部分,我们了解了gRPC的一些基础理论,接下来我们将尝试编写proto文件,并通过配套的生成 器生成Java和golang的代码。在实践的部分我将尝试构建一个笔记本销售平台,方便我们在实践中进行 学习。1. 新建项目2. 创建 proto 文件夹3. 添加 processor_message.proto 文件夹 并 添加一下内容:如何定义协议信息?使用 message 后面跟消息名称,在其消息块内,定义其所有字段,格式如下:a. 消息名称格式应为大驼峰命名b. 字段名格式应为小写蛇形c. 数据类型有原创 2022-06-29 15:58:37 · 269 阅读 · 0 评论 -
A tour of gRPC:01 - 基础理论
在实际工程中后端服务实现方式往往不止一种,并且由于技术或者业务的限制,通常会存在着多种语言 编写的服务。而服务间为了相互通讯就必须使用一种统一的 API 契约达成一种一致的协议。该协议要规 定诸如:通讯信道,身份验证机制、负载格式、数据模型和如何处理异常情况。当然我们希望通讯可以做到高效(快速且轻量),由于微服务间服务信息交换的数量通常是巨大的,所以通信也理应越快越好。同时在例如移动应用或其他网速和带宽是有限的情景下,有一个轻量级的通信协议与后端服务进行交互非常重要。最后,我们也希望通信尽可能的简单,例如我原创 2022-06-23 14:55:42 · 180 阅读 · 0 评论