10 月,开发者不可错过的开源大数据大会-2021 WeDataSphere 社区大会深圳站 了解详情
写点什么

云计算呼唤基于事件的 API

2010 年 3 月 08 日

引自 William Vambenepe 的说法:

至少从发出第一个 SNMP 自陷起,事件 / 警报 / 通知在 IT 管理领域已经成为中心的概念,甚至有可能比这更旧远。然而它们在所有的云管理 API/ 协议中神奇的蒸发了。

然而现今大部分云管理 API 都是基于轮询的。按照 George Reese 的说法,这样的轮询方式:

…造成的结果就是对 CPU 能力的极大的效率浪费…不仅是对云计算供应商,同时也会浪费双方的带宽。我们当然会进行各种优化以尽量避免轮询…[但] 这一底线仍存在,无论如何,我们大多数的调用白白浪费了。

为了解决这一问题,Reeser 提出一种事件驱动 API 的解决之道,由"云计算供应商通知我们所关心的资源的变更",他可以还注意了该提案可能会遇到了一些挑战:

  • 一个事件驱动的 API 要求一定层次的标准化,而这种标准化目前在云计算领域还不具备,你不能让每个消费者都设计他们自己的回调 API,而且就算支持跨云系统的调用,每个云计算供应商设计其自己的回调协议仍然是有问题的。
  • 你不能通过回调来提供数据,因为提供数据要求逆向的身份验证,这将会使整个流程复杂化。
  • 最后,消费者无法完全信赖回调 API。仍然需要创建自己的调用以验证云计算供应商在真实有效的合理运作。

对于这些挑战,Reese 提出了一些简单的解决方案:

  • 引入标准的回调格式 (应当非常简洁,比如像这样 [consumer-base]/[asset class]/[id])
  • 将回调事件集成到现有的云 API 中。

基于他在 WS-Notification 系列规范方面的工作,Vambenepe 强烈支持简单 API 的设想。按照他的观点,以云计算为中心的事件协议可以通过关注于少量的用例 (仅针对云计算场景) 而得以简化。在 Vambenepe 的观点中,以下的元素可以被用作云计算事件实现的根基:

  • 事件的类型。客户端应当能够指明它所感兴趣的是什么类型的资源信息。 > 你如何描述你所关心的变更?是否有一个达成一致的状态集,而对于资源你仅需要在状态转换才收到通知?你是否能够指明一个激发一个事情的最小严重性等级?…

    在 Vambenepe 看来 WS-Topics 展现了解决这一问题的最佳方案。

  • 事件格式。云事件应当符合一个标准的事件模型定义: > 事件元数据是如何被捕捉的 (如,观察的时间戳,也许与通知消息发出的时间不一样)?如果事件的负载是资源新状态的表示,那么它能否指明域的变更 (原来的值是什么)?

  • 订阅创建。需要创建一个标准的订阅机制,考虑如下问题: > 你需要变更订阅载体所用的过滤器吗?你能更改投递的端点吗?…来谁来设置过期时间?提供者能否设置最大的持续时间?是否能续订一个订阅…?如果你的订阅因为投递端点下线而失效了怎么办?…你订阅的时候能够提供一个单独的…订阅管理…端点 (与事件投递端点区别开) 吗?

  • 投递机制。事件投递有许多选择,从永久性的开放 HTTP 连接 (与 COMET 长轮询相似) 到 HTTP 回调 URL,以及 AMQP, 或是电子邮件。

  • 安全。取决于投递机制,可能会需要不同的安全实现。

  • 流量控制。一个事件实现应该保证,不管是资源还是消费者都不会被发出 / 接收到的事件洪流淹没。

如 InfoQ 早前曾为你报道过的那样,异步API 对于云计算非常重要。引入完整的事件协议可以解决这一问题和附带的问题。希望这一规范的作者可以吸取WS-Notification 的经验,创造出一个不以牺牲覆盖性和延伸范围的简单协议。

查看英文原文: The Need for an Event-based API in the Cloud

2010 年 3 月 08 日 09:421515
用户头像

发布了 133 篇内容, 共 28.3 次阅读, 收获喜欢 1 次。

关注

评论

发布
暂无评论
发现更多内容

第三周总结

小树林

分布式系统消息异常该何去何从

架构师修行之路

分布式 分布式锁

第三周学习总结

傻傻的帅

学习 设计思维

架构师训练营第 03 周—— 练习

李伟

极客大学架构师训练营

Java 字符串连接运算符干了什么?

封不羁

Java

架构师训练营 -week3- 学习总结

晓-Michelle

极客大学架构师训练营

本周学习总结

Geek_zhangjian

架构师的基本能力之代码重构

_MISSYOURLOVE

极客大学架构师训练营

2020-06-20-第三周作业

路易斯李李李

设计模式(Dessert)

Arvin

架构师训练营第 03 周——总结

李伟

极客大学架构师训练营

面试难题:为什么HashMap加载因子默认值0.75?

Java小咖秀

Java 面试 hashmap

架构师训练营 Week 03 作业

Wancho

Java反射与内省(参考小米内部资料)

知春秋

Java 反射 内省

第三周作业一

潜默闻雨

代码重构能力体会总结

周冬辉

第二周

Geek_zhangjian

第三周作业

小树林

小师妹学JVM之:JIT中的PrintCompilation

程序那些事

JVM Java 25 周年 小师妹 性能调优 JIT

架构师训练营第 0 期第三周作业

无名氏

单例模式 组合模式

手写

AIK

架构师训练营第 0 期 - 第 3 周 - 命题作业

极客大学架构师训练营

week3

AIK

Week03 作业

极客大学架构师训练营

重学 Java 设计模式:实战迭代器模式「模拟公司组织架构树结构关系,深度迭代遍历人员信息输出场景」

小傅哥

设计模式 小傅哥 重构 代码规范 迭代器模式

面试官:CAP都搞不清楚,别跟我说你懂微服务!

码农神说

分布式 漫画 CAP

什么是技术债,为什么要还技术债?

Phoenix

项目管理 架构 技术 管理 工作方式

架构师训练营第 0 期 - 第 3 周 - 学习总结

极客大学架构师训练营

架构师训练营第 0 期第三周学习总结

无名氏

架构师第三周作业

傻傻的帅

设计模式 极客大学架构师训练营

软件设计之术-设计模式学习应用心得

旭东(Frank)

架构 设计模式 技术交流 架构师 极客大学架构师训练营

云计算呼唤基于事件的API-InfoQ