grpc-learn

RPC:

  1. 提供统一的服务调用方式
  2. 类似调用本地函数
  3. 编译期参数类型检查
  4. 屏蔽协议编码和网络通信
  5. 面向服务化编程

基本框架:

  • Thrift(facebook)/Avro(hadoop)/Finagle(twitter)/grpc(google)
  • Dubbo(ali)/Motan(sina)/rpcx(golang!)
  • Sofa/Poppy/MTRpc/PhxRpc/Pebble

RPC服务发现:

  • Client-Side App:Stub(生成客户端接口)->Client Callmethod->Channel(Address Resolver, Load Balancer)->transport
  • Server-Side App:Service Implementation(扩展生成定义)->Service CallMethod->ServerCallHandler(req Scheduler) //调度策略,过载保护,优雅重启-> transport(tbus, socket)

网络通信:

方案

信息封装

传输模型

应用

远程调用

函数,变量

函数+参数-》返回

RMI

数据包

二进制

Send、Recv

udp

消息队列

对象

Put、Get

ActiveMQ

流过滤

单元长度很小的数据结构

读取处理

视频

资源拉取

header+body

资源id

www

RPC框架服装屏蔽底层传输方式(TCP/UDP),序列化方式(XML/Json/二进制)和通信细节,调用者可以像调用本地接口一样调用远程服务。核心是要解决在分布式系统间,如何执行另外一个地址空间上的函数。

目的:

  • 服务端尽可能多的处理并发请求
  • 同时竟可能短的处理完毕

I/O模型:

  1. Blocking I/O:C10k问题
  2. Non-blocking I/O
  3. I/O multiplexing(有分配代理)
  4. Asynchronous I/O(回调)

gRPC支持C,java,Go语言:

  1. 语言中立,支持多种语言
  2. 基于IDL文件定义服务,通过proto3工具生成指定语言的数据结构,服务器端口以及客户端Stub
  3. HTTP/2设计,支持双向流,消息头压缩,单TCP的多路浮云,服务端推送–》省电和流量
  4. 序列化支持PB和JSON

创建流程:

  1. NettyServer创建,实现基于HTTP/2协议请求消息的接入
  2. 绑定IDL定义的服务接口实现类:proto工具生成代码在服务器上注册
  3. gRPC服务实例创建

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏ericzli

Jetson TX1上安装Tensorflow Serving遇到的问题总结

本文的目的是分享在TX1上安装Tensorflow Serving时遇到的主要问题,避免重复踩坑。

41740
来自专栏Seebug漏洞平台

CVE-2015-1641 Word 利用样本分析

00 引 子 本文我们将通过一个恶意文档的分析来理解漏洞 CVE-2015-1641(MS15-033)的具体利用过程,以此还原它在现实攻击中的应用。就目前来...

35980
来自专栏开发与安全

linux网络编程之socket(五):tcp流协议产生的粘包问题和解决方案

我们在前面曾经说过,发送端可以是一K一K地发送数据,而接收端的应用程序可以两K两K地提走数据,当然也有可能一次提走3K或6K数据,或者一次只提走几个字节的数据,...

33500
来自专栏ml

catalan---卡特兰数(小结)

(关于卡特兰数的详细介绍)http://baike.baidu.com/view/2499752.htm 下面有练习的题目: 经过测试,_int64/long...

41970
来自专栏伪君子的梦呓

用 Python 生成彩色动态二维码

54770
来自专栏小白安全

渗透测试单行化工具One-Lin3r

One-Lin3r One-Lin3r是一款简单的轻量级框架,而该工具的灵感来自于Metasploit的web-delivery模块。该工具提供...

30850
来自专栏流柯技术学院

JMeter专题系列(四)参数化

参数化:录制脚本中有登录操作,需要输入用户名和密码,假如系统不允许相同的用户名和密码同时登录,或者想更好的模拟多个用户来登录系统。

10720
来自专栏liulun

windows服务器性能监控工具、方法及关键指标

监控方法 推荐使用windows自带的“性能监视器”(老版本的windows叫性能计数器)来监控服务器的性能。 打开控制面板内的管理工具,在管理工具内打开性能监...

60360
来自专栏蜉蝣禅修之道

fs学习笔记之输出格式

20830
来自专栏逆向技术

逆向课程第二讲,寻找main入口点

            逆向课程第二讲,寻找main入口点 一丶识别各个程序的入口点 入门知识,识别各个应用程序的入口点 (举例识别VC 编译器生成,以及VS编...

299100

扫码关注云+社区

领取腾讯云代金券