趣谈网络协议
刘超
网易研究院云计算技术部首席架构师
立即订阅
39583 人已学习
课程目录
已完结 51 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 想成为技术牛人?先搞定网络协议!
免费
第一模块 通信协议综述 (4讲)
第1讲 | 为什么要学习网络协议?
第2讲 | 网络分层的真实含义是什么?
第3讲 | ifconfig:最熟悉又陌生的命令行
第4讲 | DHCP与PXE:IP是怎么来的,又是怎么没的?
第二模块 底层网络知识详解:从二层到三层 (5讲)
第5讲 | 从物理层到MAC层:如何在宿舍里自己组网玩联机游戏?
第6讲 | 交换机与VLAN:办公室太复杂,我要回学校
第7讲 | ICMP与ping:投石问路的侦察兵
第8讲 | 世界这么大,我想出网关:欧洲十国游与玄奘西行
第9讲 | 路由协议:西出网关无故人,敢问路在何方
第二模块 底层网络知识详解:最重要的传输层 (4讲)
第10讲 | UDP协议:因性善而简单,难免碰到“城会玩”
第11讲 | TCP协议(上):因性恶而复杂,先恶后善反轻松
第12讲 | TCP协议(下):西行必定多妖孽,恒心智慧消磨难
第13讲 | 套接字Socket:Talk is cheap, show me the code
第二模块 底层网络知识详解:最常用的应用层 (4讲)
第14讲 | HTTP协议:看个新闻原来这么麻烦
第15讲 | HTTPS协议:点外卖的过程原来这么复杂
第16讲 | 流媒体协议:如何在直播里看到美女帅哥?
第17讲 | P2P协议:我下小电影,99%急死你
第二模块 底层网络知识详解:陌生的数据中心 (6讲)
第18讲 | DNS协议:网络世界的地址簿
第19讲 | HTTPDNS:网络世界的地址簿也会指错路
第20讲 | CDN:你去小卖部取过快递么?
第21讲 | 数据中心:我是开发商,自己拿地盖别墅
第22讲 | VPN:朝中有人好做官
第23讲 | 移动网络:去巴塞罗那,手机也上不了脸书
第三模块 热门技术中的应用:云计算中的网络 (5讲)
第24讲 | 云中网络:自己拿地成本高,购买公寓更灵活
第25讲 | 软件定义网络:共享基础设施的小区物业管理办法
第26讲 | 云中的网络安全:虽然不是土豪,也需要基本安全和保障
第27讲 | 云中的网络QoS:邻居疯狂下电影,我该怎么办?
第28讲 | 云中网络的隔离GRE、VXLAN:虽然住一个小区,也要保护隐私
第三模块 热门技术中的应用:容器技术中的网络 (3讲)
第29讲 | 容器网络:来去自由的日子,不买公寓去合租
第30讲 | 容器网络之Flannel:每人一亩三分地
第31讲 | 容器网络之Calico:为高效说出善意的谎言
第三模块 热门技术中的应用:微服务相关协议 (5讲)
第32讲 | RPC协议综述:远在天边,近在眼前
第33讲 | 基于XML的SOAP协议:不要说NBA,请说美国职业篮球联赛
第34讲 | 基于JSON的RESTful接口协议:我不关心过程,请给我结果
第35讲 | 二进制类RPC协议:还是叫NBA吧,总说全称多费劲
第36讲 | 跨语言类RPC协议:交流之前,双方先来个专业术语表
第四模块 网络协议知识串讲 (4讲)
第37讲 | 知识串讲:用双十一的故事串起碎片的网络协议(上)
第38讲 | 知识串讲:用双十一的故事串起碎片的网络协议(中)
第39讲 | 知识串讲:用双十一的故事串起碎片的网络协议(下)
第40讲 | 搭建一个网络实验环境:授人以鱼不如授人以渔
答疑与加餐 (9讲)
协议专栏特别福利 | 答疑解惑第一期
协议专栏特别福利 | 答疑解惑第二期
协议专栏特别福利 | 答疑解惑第三期
协议专栏特别福利 | 答疑解惑第四期
协议专栏特别福利 | 答疑解惑第五期
加餐1 | 测一测:这些网络协议你都掌握了吗?
加餐2 | 创作故事:我是如何创作“趣谈网络协议”专栏的?
加餐3 | “趣谈网络协议”专栏食用指南
第2季回归 | 这次我们来“趣谈Linux操作系统”
结束语 (1讲)
结束语 | 放弃完美主义,执行力就是限时限量认真完成
趣谈网络协议
登录|注册

第35讲 | 二进制类RPC协议:还是叫NBA吧,总说全称多费劲

刘超 2018-08-06
前面我们讲了两个常用文本类的 RPC 协议,对于陌生人之间的沟通,用 NBA、CBA 这样的缩略语,会使得协议约定非常不方便。
在讲 CDN 和 DNS 的时候,我们讲过接入层的设计,对于静态资源或者动态资源静态化的部分都可以做缓存。但是对于下单、支付等交易场景,还是需要调用 API。
对于微服务的架构,API 需要一个 API 网关统一的管理。API 网关有多种实现方式,用 Nginx 或者 OpenResty 结合 Lua 脚本是常用的方式。在上一节讲过的 Spring Cloud 体系中,有个组件 Zuul 也是干这个的。

数据中心内部是如何相互调用的?

API 网关用来管理 API,但是 API 的实现一般在一个叫作 Controller 层的地方。这一层对外提供 API。由于是让陌生人访问的,我们能看到目前业界主流的,基本都是 RESTful 的 API,是面向大规模互联网应用的。
在 Controller 之内,就是咱们互联网应用的业务逻辑实现。上节讲 RESTful 的时候,说过业务逻辑的实现最好是无状态的,从而可以横向扩展,但是资源的状态还需要服务端去维护。资源的状态不应该维护在业务逻辑层,而是在最底层的持久化层,一般会使用分布式数据库和 ElasticSearch。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《趣谈网络协议》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(16)

  • 问题究竟系边度 置顶
    dubbo 是这个rpc框架包括服务发现,服务均衡负载,接口层面监控。对于rpc中的扩展点比较多。后面会用servicemesh ,传输协议较多选择


    spring cloud 是一个完整微服务框架,包括rpc框架,整体链路监控,熔断降级,网关,配置中心,安全验证。主要用http协议传输


    对于跨语言的,首先要定义非编程语言相关的协议,例如http,protobuf ,然后需要每个语言需要写相关客户端,至于复杂程度,就要看服务发现,均衡负载是在客户端实现还是另外写一个代理
    2018-08-10
    10
  • Jay
    题目1:
    1.Dubbo只实现了服务治理,而Spring Cloud子项目分别覆盖了微服务架构下的众多部件。

    2.Dubbo使用RPC通讯协议
    Spring Cloud使用HTTP协议REST API

    3.Dubbo通信性能略胜于Spring Cloud

    4.Dubbo通过接口的方式相互依赖,强依赖关系,需要严格的版本控制,对程序无入侵
    Spring Cloud 无接口依赖,定义好相关的json字段即可,对程序有一定入侵性


    2018-08-06
    12
  • andy
    spring cloud的restful方式虽然基于json,但是服务端在发送数据之前会将DTO对象转换为JSON,客户端收到JSON之后还会转换为DTO。这时会在客户端和服务端分别创建各自的DTO对象,会出现代码的重复,如果共享jar,又出现jar管理的问题。

    作者回复: 是的,我们是各自定义

    2018-08-06
    6
  • blackpiglet
    第二题,可以使用 thrift 和 protobuf
    2018-08-10
    5
  • 阿痕
    请教下,文中说的dubbo的jar包,具体是指啥?我们公司正在用dubbo,不需要在应用离单独部署jar包啊
    2018-08-06
    2
  • 及子龙
    我们用的是gRpc,对多语言支持的比较好。
    2018-08-06
    2
  • Jay
    题目2:
    可以使用Thrift和Protocol Buffers。
    Thrift是Facebook提供的跨语言轻量级RPC消息和数据交换框架;
    Ptotocol Buffers是Google提供的一个开源序列化框架,类似于XML、JSON这样的数据表示语言。
    2018-08-06
    2
  • 怎么肥四
    书读百遍,其义自现。听不懂不要急,多看多听时间会让我们成长。

    作者回复: 这句话好“书读百遍,其义自现”

    2019-06-02
    1
  • 谢晋
    Dubbo 和 SpringCloud 各有优缺点?
    Dubbo只实现了服务治理,而Spring Cloud子项目分别覆盖了微服务架构下的众多部件。
    Spring Cloud使用HTTP协议REST API
    Dubbo使用RPC通讯协议
    Dubbo通信性能略胜于Spring Cloud
    Dubbo通过接口的方式相互依赖,强依赖关系,需要严格的版本控制,对程序无入侵
    Spring Cloud 无接口依赖,定义好相关的json字段即可,对程序有一定入侵性
    跨语言的RPC调用协议?
    Thrift是Facebook提供的跨语言轻量级RPC消息和数据交换框架;
    Ptotocol Buffers是Google提供的一个开源序列化框架,类似于XML、JSON这样的数据表示语言
    2019-05-12
    1
  • 乘风
    看刘老师推荐的论文都很经典,请问能再推荐一些相关的经典论文吗
    2019-02-15
    1
  • 忆水寒
    跨语言调用的场景,可以使用序列化工具,比如Thrift、protobuf等序列化框架。
    2018-08-07
    1
  • _CountingStars
    2.跨语言如果使用 restful 基本可以直接用 如果用二进制rpc需要分别实现相应的客户端sdk
    2018-08-06
    1
  • 咸鱼与果汁
    同样是基于TCP协议,为什么RPC会比HTTP快呢?

    作者回复: RPC基于二进制,压缩好

    2019-06-21
  • 王璇
    还真是越到后面人越来越少 我看到现在也好多没看懂 准备先看完整体后 再回过头 仔细再看一遍

    作者回复: 加油

    2019-04-29
  • 超超
    答问题一:Spring Clould与Dubbe间的对比可以看成是REST与升级版的RPC的对比。
    2019-04-12
  • stany
    深入浅出,条理很清晰了。
    2018-08-06
收起评论
16
返回
顶部