图钉—将REST API转变为实时API的开源库
事件API简介以及如何使用Pushpin构建它们
“实时”正成为现代技术堆栈中无所不在的力量。 随着消费者要求更快,更频繁的数据交易,公司越来越多地投资于产品基础架构,以加速这些交易。 尽管我们已经看到API成为经济和技术上的当务之急,但它们通常基于请求-响应样式的交互,这限制了它们在实时领域的范围和有效性。
请求响应与事件驱动的API
本质上,请求-响应是一种消息交换模式,其中请求者将请求消息发送到转发器系统。 转发器系统接收并处理该请求,如果一切顺利,则作为响应返回一条消息。 尽管这种交换格式对于结构化的请求非常有效,但它会将集成限制到那些预期系统对另一个系统有明确要求的情况。 因此,这些请求-响应样式的API必须遵循来自调用服务的交互脚本。
在事件驱动的体系结构中,应用程序基于事件驱动的交互等效地集成了多个服务和产品。 这些交互是由事件发射器,事件使用者和事件通道驱动的,因此事件本身通常是产生,发布,传播,检测或消耗的重大“状态更改”。 这种架构模式支持软件组件和服务之间的松散耦合。 优点是事件发送者不需要知道使用者的状态,使用者是谁或如何处理事件(如果有的话)。 它是一种通过持久流推送数据的机制。
事件API解决方案
在技术生态系统中,有多种方法可以处理数据流和事件API。 一些领先的SaaS解决方案包括PubNub , 推 , 的Kaazing和扇出 -每个都有自己的优点/缺点和斜坡上升的投资。 为了理解事件驱动的体系结构的基础知识,我们将探索一些称为Pushpin的开源软件。
图钉
Pushpin的主要价值支柱在于,它是一个启用实时推送的开源解决方案,这是事件API( GitHub Repo )的必要条件。 它的核心是反向代理服务器,可以轻松实现WebSocket,HTTP流和HTTP长轮询服务。 从结构上讲,Pushpin使用常规的短期HTTP请求与后端Web应用程序进行通信。
该体系结构具有一些核心优点:
- 后端语言可以用任何语言编写,也可以使用任何网络服务器。
- 可以通过一个简单的HTTP POST请求将数据推送到Pushpin的私有控件API。
- 它对连接的客户端不可见。
- 当需要从后端服务器获取数据时,它通过充当负责方来管理状态元素。
- 通过不需要图钉实例之间的通信,可以水平扩展。
- 它利用发布-订阅模型进行数据传输。
- 它既可以充当代理服务器,又可以充当发布订阅代理。
集成图钉
从更系统的角度来看,有几种方法可以将Pushpin集成到堆栈中。 最基本的设置是将Pushpin放在典型的Web服务后端的前面,在后端,后端将数据直接发布到Pushpin。 Web服务本身可能会响应传入的请求而发布数据,或者可能会有某种后台进程/作业来发布数据。
因为Pushpin是代理服务器,所以它可与大多数API管理系统一起使用-允许您执行实际的API开发。 例如,您可以将代理链接在一起,将图钉放在前面,这样您的API管理系统就不会受到长期连接的影响。 更重要的是,Pushpin可以将WebSocket协议转换为HTTP,从而允许API管理系统对转换后的数据进行操作。
您可以在此处查看使用Pushpin构建的一些示例应用程序。
事件API的未来
在一些后续文章中,我将讨论一些在事件API向前发展中可以看到的独特功能。 其中包括事件批处理,显着性过滤器和标准订阅界面。 如果您想使用实时嵌入式API代理,那么我强烈建议尝试使用Pushpin入门。