基于边缘和基于水平的意义是什么?

时间:2015-06-25 05:18:46

标签: kubernetes

“基于等级”和“基于边缘”的含义一般是什么意思?

我从kubernetes文档中读到“换句话说,系统的行为是基于级别而不是基于边缘的”: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md

与Google合作,我只发现: http://www.keil.com/forum/9423/edge-based-vs-level-based-interrupt/

谢谢。

2 个答案:

答案 0 :(得分:9)

它还有一个更通用的定义(至少我们倾向于在文档中使用它的方式)。一段逻辑是基于水平的"如果它只取决于当前的状态。一条逻辑是基于边缘的"如果它取决于当前状态之外的历史/转换。

"基于等级"组件更具弹性,因为如果它们崩溃,它们可以重新启动并查看当前状态。 "边缘为基础"组件必须存储它们所依赖的历史记录(或依赖于存储它的其他组件),这样当它们重新启动时,它们可以查看当前状态和历史记录。此外,如果存在某种临时网络分区且基于边缘的组件错过了某些更新,那么它将计算错误的输出。

然而,"基于等级"组件通常效率较低,因为它们可能需要扫描很多状态才能计算输出,而不是仅仅读取增量。

许多成分是两者的混合物。

简单示例:您希望构建一个报告处于READY状态的pod数量的组件。基于级别的实现将从etcd(或API服务器)获取所有pod并进行计数。基于边缘的实现在启动时会执行一次,然后只关注进入和退出READY状态的pod。

答案 1 :(得分:0)

我说他们在网站上解释得非常好:

  

当一个新版本的对象被POST或PUT时," spec"已更新并立即可用。随着时间的推移,系统将努力实现"状态"符合"规范"。该系统将推向最新的规范"无论该节的先前版本如何。 换句话说,如果在一个PUT中将值从2更改为5,然后在另一个PUT中将值从3更改为3,则系统不需要触摸基数'在改变"状态"之前的5点;到3

因此,根据该声明,我们知道" 级别基础"表示如果主要目标不需要,则不需要满足PUT请求; 在适合的时候可以自由跳过PUT请求

这使我假设" 基于边缘"系统要求满足每个PUT请求,即使可以跳过某些请求而不改变最终结果,因为这将是跳过请求的替代方案。

我没有RESTful开发人员(您可以通过我的帐户活动查看)。我无法在其他任何地方找到任何关于这些事情的信息来源,所以我根据他们提供的解释进行,这看起来非常简单。