![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
gRPC
Omni-Space
专注Android, Mobile Security and AI
展开
-
gRPC的那些事 - streaming
gRPC是一个高性能、通用的开源RPC框架,其由Google主要面向移动应用开发并基于HTTP/2协议标准而设计,基于ProtoBuf(Protocol Buffers)序列化协议开发,且支持众多开发语言。 gRPC提供了一种简单的方法来精确地定义服务和为iOS、Android和后台支持服务自动生成可靠性很强的客户端功能库。 客户端充分利用高级流和链接功能,从而有助于节省带宽、降低的TCP链接次数...转载 2018-03-15 06:22:24 · 8489 阅读 · 2 评论 -
你不知道的gRPC反向代理
一个gRPC Proxy的实现方案导语可用性、可靠性和扩展性是衡量后台服务的基本标准,HTTP反向代理,是任何一个提供大型Web服务后台所必备的,用以提高服务的这些基础参数,且通过支持到负载均衡而进一步提升服务性能。然而,随着微服务框架的盛行,RPC技术也已经开始承载大量的微服务之间的通信,在众多RPC技术中,gRPC是Google开源的通用高性能RPC框架,因此,一个支持gRPC的反向代...转载 2019-06-29 16:06:12 · 4989 阅读 · 0 评论 -
gRPC学习记录(六)--客户端连接池
对于客户端来说建立一个channel是昂贵的,因为创建channel需要连接,但是建立一个stub是很简单的,就像创建一个普通对象,因此Channel就需要复用,也就是说需要实现一个连接池应用.本文使用commons-pool2来实现连接池应用. 该案例可以当成连接池模板案例. <!--客户端连接池--> <dependency> ...转载 2018-05-03 07:16:45 · 5395 阅读 · 0 评论 -
gRPC学习记录(五)--拦截器分析
对于此类调用拦截器是必不可少的,本篇就分析下拦截器的实现.(博主本来想分析源码的,但是水平不足,并发知识欠缺,看的不是很懂,哎,仍需努力),另外貌似不同版本有些差异,这里使用的是1.0.3版本.1.一个拦截器的小例子在分析之前先看一种设计.有一个接口如下:/** * 主调用接口 */public abstract class Client { public abstract void...转载 2018-05-02 15:35:11 · 2595 阅读 · 0 评论 -
gRPC学习记录(四)--官方Demo
了解proto3后,接下来看官方Demo作为训练,这里建议看一遍之后自己动手搭建出来,一方面巩固之前的知识,一方面是对整个流程更加熟悉.官方Demo地址: https://github.com/grpc/grpc-java例子是一个简单的路由映射的应用,它允许客户端获取路由特性的信息,生成路由的总结,以及交互路由信息,如服务器和其他客户端的流量更新.1.1定义服务也就是写proto文件//指定pr...转载 2018-05-02 15:33:55 · 666 阅读 · 0 评论 -
gRPC学习记录(三)--proto3知识
在上一篇中,得知proto文件是定义服务端和客户端通讯接口的标准,说白了就是客户端该传什么样的参数,服务端该返回什么样子的参数,客户端该怎么调用,是阻塞还是非阻塞,是同步还是异步,那么就需要对这个东西有所了解,该篇了解基于官方文档.建议有能力的还是直接看官方文档,该文章内容是个人看文档时的摘录.https://developers.google.com/protocol-buffers/docs/...转载 2018-05-02 15:32:07 · 792 阅读 · 0 评论 -
gRPC学习记录(二)--Hello World
在上一篇的整体了解后,该篇则对应了快速上手,入门示例当然仍旧是Hello world,该一阶段不需要深究代码,所要求的的目的是先跑通,再回顾代码,然后分析需要什么知识,再去学什么.1.Maven配置首先是三个依赖包 <properties> <grpc.version>1.0.3</grpc.version> </propertie...转载 2018-05-02 15:30:59 · 891 阅读 · 0 评论 -
gRPC学习记录(一)--概念性知识
前几天刚发了一个如何学习一门新技术,现在正好遇到了要学习的东西,因为重新找了工作,所以新公司使用的技术需要自己快速上手,那么快速学习就是必须掌握的一门技能了.下面根据之前的博文展示如何快速入门一门新技术.(本篇很多内容都摘抄自网络)1.gRPC是什么?搜寻百科博客之类的可以查看到很多资料.Paste_Image.pnggRPC 是一个高性能、开源和通用的 RPC 框架,面向移动和 HTTP/2 设...转载 2018-05-02 15:29:41 · 667 阅读 · 0 评论 -
gRPC客户端创建和调用原理解析
1. gRPC客户端创建流程1.1. 背景gRPC是在HTTP/2之上实现的RPC框架,HTTP/2是第7层(应用层)协议,它运行在TCP(第4层 - 传输层)协议之上,相比于传统的REST/JSON机制有诸多的优点:基于HTTP/2之上的二进制协议(Protobuf序列化机制)一个连接上可以多路复用,并发处理多个请求和响应多种语言的类库实现服务定义文件和自动代码生成(.proto文件和Proto...转载 2018-05-02 15:23:36 · 4143 阅读 · 0 评论 -
GRPC golang版源码分析之客户端(二)
Table of Contents1. 前言2. 负载均衡3. 相关链接1 前言前面一篇文章分析了一个grpc call的大致调用流程,顺着源码走了一遍,但是grpc中有一些特性并没有进行分析,这篇blog主要就是分析负载均衡这个特性。负载均衡可以让你在使用grpc调用方法是连接不同的服务器。在启动的时候,grpc client会建立对所有服务器的连接,然后通过轮询算法拿不同的服务器。2 负载均衡...转载 2018-05-02 15:20:41 · 1205 阅读 · 0 评论 -
GRPC golang版源码分析之客户端(一)
Table of Contents1. 前言2. 源码目录浏览3. 客户端4. 相关链接1 前言grpc是一个通用的rpc框架,用google实现,当然也有go语言的版本。在工作中主要用到这个库,所以看看源码加强自己对框架的了解。目前来说主要分析的都以go版本为主(并没有看其他语言版本).由于个人水平有限,代码中的有些思想也是个人揣测,难免有些错误,如果发现错误,还望帮忙指出。2 源码目录浏览gr...转载 2018-05-02 15:19:23 · 3888 阅读 · 0 评论 -
gRPC & Protocol Buffer 构建高性能接口实践
介绍如何使用 gRPC 和 ProtoBuf,快速了解 gRPC 可以参考这篇文章第一段:gRPC quick Start。接口开发是软件开发占据举足轻重的地位,是现代软件开发之基石。体现在无论是前后端分离的 Web 前端还是移动客户端,乃至基于不同系统、编程语言构建的软件系统之间,API 都是充当桥梁的作用把不同端的系统链接在一起从而形成了一套稳固的商用系统。基于 Web 的接口通常都是 RES...转载 2018-04-05 14:06:55 · 541 阅读 · 0 评论 -
gRPC初体验
gRPC是由Google主导开发的RPC框架,使用HTTP/2协议并用ProtoBuf作为序列化工具。其客户端提供Objective-C、Java接口,服务器侧则有Java、Golang、C++等接口,从而为移动端(iOS/Androi)到服务器端通讯提供了一种解决方案。 当然在当下的环境下,这种解决方案更热门的方式是RESTFull API接口。该方式需要自己去选择编码方式、服务器架构、自己搭建...转载 2018-03-15 06:25:19 · 58934 阅读 · 2 评论 -
从源码透析gRPC调用原理
导语gRPC是什么,不用多说了。gRPC如何用,也不用多说了 。但是,gRPC是如何work的,清楚的理解其调用逻辑,对于我们更好、更深入的使用gRPC很有必要。因此我们必须深度解析下gRPC的实现逻辑,在本文中,将分别从客户端和服务端来说明gRPC的实现原理。准备条件本文将以gRPC Github上helloword代码作为一个完整的项目示例作为介绍的基础,在展开分析之前,简...转载 2019-06-29 16:07:09 · 1934 阅读 · 0 评论