到目前为止,咱们讲了四种 RPC,分别是 ONC RPC、基于 XML 的 SOAP、基于 JSON 的 RESTful 和 Hessian2。通过学习,我们知道,二进制的传输性能好,文本类的传输性能差一些;二进制的难以跨语言,文本类的可以跨语言;要写协议文件的严谨一些,不写协议文件的灵活一些。虽然都有服务发现机制,有的可以进行服务治理,有的则没有。我们也看到了 RPC 从最初的客户端服务器模式,...
点击进入阅读全文

前面我们讲了两个常用文本类的 RPC 协议,对于陌生人之间的沟通,用 NBA、CBA 这样的缩略语,会使得协议约定非常不方便。在讲 CDN 和 DNS 的时候,我们讲过接入层的设计,对于静态资源或者动态资源静态化的部分都可以做缓存。但是对于下单、支付等交易场景,还是需要调用 API。对于微服务的架构,API 需要一个 API 网关统一的管理。API 网关有多种实现方式,用 Nginx 或者 Ope...
点击进入阅读全文

上一节我们讲了基于 XML 的 SOAP 协议,SOAP 的 S 是啥意思来着?是 Simple,但是好像一点儿都不简单啊你会发现,对于 SOAP 来讲,无论 XML 中调用的是什么函数,多是通过 HTTP 的 POST 方法发送的。但是咱们原来学 HTTP 的时候,我们知道 HTTP 除了 POST,还有 PUT、DELETE、GET 等方法,这些也可以代表一个个动作,而且基本满足增、删、查、...
点击进入阅读全文

上一节我们讲了 RPC 的经典模型和设计要点,并用最早期的 ONC RPC 为例子,详述了具体的实现。

ONC RPC 存在哪些问题?

ONC RPC 将客户端要发送的参数,以及服务端要发送的回复,都压缩为一个二进制串,这样固然能够解决双方的协议约定问题,但是存在一定的不方便。首先需要双方的压缩格式完全一致,一点都不能差。一旦有少许的差错,多一位,少一位或者错一位,都可能造成无法解压缩。当然,我们可...
点击进入阅读全文

前面我们讲了容器网络如何实现跨主机互通,以及微服务之间的相互调用。网络是打通了,那服务之间的互相调用,该怎么实现呢?你可能说,咱不是学过 Socket。服务之间分调用方和被调用方,我们就建立一个 TCP 或者 UDP 的连接,不就可以通信了?你仔细想一下,这事儿没这么简单。我们就拿最简单的场景,客户端调用一个加法函数,将两个整数加起来,返回它们的和。如果放在本地调用,那是简单的不能再简单了,只要稍...
点击进入阅读全文

上一节我们讲了 Flannel 如何解决容器跨主机互通的问题,这个解决方式其实和虚拟机的网络互通模式是差不多的,都是通过隧道。但是 Flannel 有一个非常好的模式,就是给不同的物理机设置不同网段,这一点和虚拟机的 Overlay 的模式完全不一样。在虚拟机的场景下,整个网段在所有的物理机之间都是可以“飘来飘去”的。网段不同,就给了我们做路由策略的可能。

Calico 网络模型的设计思路

我们看图中...
点击进入阅读全文

上一节我们讲了容器网络的模型,以及如何通过 NAT 的方式与物理网络进行互通。每一台物理机上面安装好了 Docker 以后,都会默认分配一个 172.17.0.0/16 的网段。一台机器上新创建的第一个容器,一般都会给 172.17.0.2 这个地址,当然一台机器这样玩玩倒也没啥问题。但是容器里面是要部署应用的,就像上一节讲过的一样,它既然是集装箱,里面就需要装载货物。如果这个应用是比较传统的单体...
点击进入阅读全文

如果说虚拟机是买公寓,容器则相当于合租,有一定的隔离,但是隔离性没有那么好。云计算解决了基础资源层的弹性伸缩,却没有解决 PaaS 层应用随基础资源层弹性伸缩而带来的批量、快速部署问题。于是,容器应运而生。容器就是 Container,而 Container 的另一个意思是集装箱。其实容器的思想就是要变成软件交付的集装箱。集装箱的特点,一是打包,二是标准。在没有集装箱的时代,假设要将货物从 A 运...
点击进入阅读全文

对于云平台中的隔离问题,前面咱们用的策略一直都是 VLAN,但是我们也说过这种策略的问题,VLAN 只有 12 位,共 4096 个。当时设计的时候,看起来是够了,但是现在绝对不够用,怎么办呢?一种方式是修改这个协议。这种方法往往不可行,因为当这个协议形成一定标准后,千千万万设备上跑的程序都要按这个规则来。现在说改就放,谁去挨个儿告诉这些程序呢?很显然,这是一项不可能的工程。另一种方式就是扩展,在...
点击进入阅读全文

在小区里面,是不是经常有住户不自觉就霸占公共通道,如果你找他理论,他的话就像一个相声《楼道曲》说的一样:“公用公用,你用我用,大家都用,我为什么不能用?”。除此之外,你租房子的时候,有没有碰到这样的情况:本来合租共享 WIFI,一个人狂下小电影,从而你网都上不去,是不是很懊恼?在云平台上,也有这种现象,好在有一种流量控制的技术,可以实现Qo(Quality of Service),从而保障大多数...
点击进入阅读全文