事件API简介以及如何使用Pushpin构建它们

创作者Ci20

“实时”正成为现代技术堆栈中无所不在的力量。 随着消费者要求更快,更频繁的数据交易,公司越来越多地投资于产品基础架构,以加速这些交易。 尽管我们已经看到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入门。

From: https://hackernoon.com/pushpin-an-open-source-library-that-turns-rest-apis-into-realtime-apis-ebb3253e63ce

图钉—将REST API转变为实时API的开源库相关推荐

  1. 页面图钉_图钉—将REST API转变为实时API的开源库

    页面图钉 事件API简介以及如何使用Pushpin构建它们 创作者Ci20 "实时"正成为现代技术堆栈中无所不在的力量. 随着消费者要求更快,更频繁的数据交易,公司越来越多地投资于 ...

  2. YOLACT++:目前最热门的实时实例分割开源库

    点击我爱计算机视觉标星,更快获取CVML新技术 YOLACT 是ICCV 2019 接收的实时实例分割论文 YOLACT: Real-time Instance Segmentation 提出的算法, ...

  3. coco 语义分割_YOLACT++:目前最热门的实时实例分割开源库

    点击我爱计算机视觉标星,更快获取CVML新技术 YOLACT 是ICCV 2019 接收的实时实例分割论文 YOLACT: Real-time Instance Segmentation 提出的算法, ...

  4. 爬虫技术(02)神箭手爬虫实时API

    var scanUrl = "http://www.leiphone.com/news/201610/9EbxjV73a9kGhN3a.html" ;//@input(scanUr ...

  5. 用聚合数据API(苏州实时公交API)快速写出小程序

    利用聚合数据API快速写出小程序,过程简单. 1.申请小程序账号 2.进入开发 3.调用API.比如"苏州实时公交"小程序,选择的是苏州实时公交API. 苏州实时公交API文档:h ...

  6. python百度推广api,查询实时账户情况,展现量、点击量、消费、点击率、点击均价

    python百度推广api,查询实时账户情况,展现量.点击量.消费.点击率.点击均价 import requests,json,time,datetimedef selectlivedata(user ...

  7. 大智慧L2实时api接口的逐笔委托功能执行代码分享

    用过l2行情接口的投资者应该都了解大部分的接口都是有逐笔委托功能的,那么大智慧L2实时api接口也有着很强大的逐笔委托功能,投资者可以通过这个逐笔委托功能可以看到一个股票的每天出现的全部委托指令,那么 ...

  8. baidumap api MySQL_百度地图API

    本文我将从如何使用地图API(本文以百度为例,谷歌类似)开始,往后的扩展行的内容详见后续文章. 1.打开链接http://developer.baidu.com/map/jshome.htm 这里有很 ...

  9. baidumap api MySQL_百度地图API开发笔记一(基础篇)

    什么是百度地图API? 百度地图API是一套由JavaScript语言编写的应用程序接口,它能够帮助您在网站中构建功能丰富.交互性强的地图应用.百度地图API包含了构建地图基本功能的各种接口,提供了诸 ...

最新文章

  1. 8Linux服务器编程之:chdir()函数和cd命令,getcwd()函数和pwd
  2. java neo4j_java连接neo4j
  3. 云原生演进趋势下传统数据库升级实践
  4. C/C++ strlen函数为什么不能传入空指针NULL?
  5. 如何使用SAP CRM增强工具AET创建Table表格类型的增强
  6. 平衡树-Treap基础内容
  7. B端产品如何寻找竞品
  8. 10月第4周回顾:欧盟垄断案微软低头 BEA为收购讨价还价
  9. ssm 竞赛管理系统
  10. 软件测试 _ 基础知识
  11. 阻止中文输入时触发input事件
  12. unity shader - 圣斗士星矢 人物 shader 还原 - GPA 抓帧提取资源、shader,ROOT权限、救砖、ro.debuggable=1(最终还是RenderDoc无法抓帧)
  13. 为什么我不断收到Java错误:错误:可以找到或加载类Dint?
  14. 【APP】模拟器的学习和使用
  15. 【四大名企】5月27日18点,惟客数据、环信、融云、文因互联带着岗位来招人啦
  16. java实现图片去掉水印
  17. Type-C笔记本电脑全功能TCPC接口方案
  18. hadoop java 文件追加_HDFS追加文件
  19. python包:scikit-learn
  20. 为什么要将图片转为base64格式

热门文章

  1. mysql TIMESTAMP 不能为NULL
  2. 教师资格证面试需要准备什么?
  3. oracle中怎样获取当前月上个月的第一天和最后一天?
  4. 《深入浅出数据分析》小结
  5. .NET框架-LINQ 9类操作符使用举例
  6. Linux之Screen
  7. 计算机网络概论(不完整版,突然想随便写写)
  8. TiDB整体架构详解TiDB核心特性
  9. vue路由的两种模式:hash与history的区别
  10. 论文翻译:A Comprehensive Survey on Graph Neural Networks