Webhooks如何无障碍地将数据流扩展到连接的应用程序中

188 阅读4分钟

Webhooks是整合你的各种业务应用程序的最简单的方法,但在你扩大规模时,它们会带来挑战和复杂性。如果你是Ably的用户,你不必担心这个问题。更重要的是,有了'Incoming Webhooks',现在比以往任何时候都更容易接收来自第三方集成的消息,当你快速扩展时,没有瓶颈的风险。

使用Webhooks在多个应用中扩展实时数据流的挑战


当你的终端用户与你的业务互动时,他们不会考虑系统的边界。他们期待一个无缝的、几乎是即时的默认体验。为了提供这种体验,数据需要在不同的系统应用中顺利地移动。当一个客户下了一个新的订单,这个过程跨越了几个不同的系统,从ID到库存、运输、计费等等。为了使数据交换有效、可靠和安全地进行,这些不同的服务需要无缝集成。

Webhooks 是实现各种应用之间集成的最简单和最广泛的方式,但使用它们也有其自身的挑战,特别是当你在处理扩展的实时数据流时:

  • 如果你想让你的系统处理数以百万计的事件发生,你的webhooks架构也必须是可扩展的,但不是所有的应用程序都是为扩展而建立的。
  • 如果你的系统由于某种原因停机,webhooks将无法向你的系统传递信息。你可以使用一个外部事件消息传递队列,以确保在你的系统停机时没有webhook事件丢失,但这将增加复杂性,因为你将不得不管理消息传递队列的容量、扩展和监控。
  • 流量的突然增加,不管是现实生活中的事件还是意外或恶意的DDos攻击的结果,如果你没有提前做好扩展的准备,都会使你的系统不堪重负。

关于传入Webhooks


Ably用户可以使用他们已经在使用的服务,并添加新的服务,而不必担心Webhook瓶颈和压倒他们的终端。Ably的平台在webhook流量扩大时处理缓冲和负载平衡,它允许排队和批量消费大量的实时消息,通过对消息执行函数来转换或过滤消息,或将消息传递给其他系统进行后续处理。

为了使连接更容易,Ably提供完全管理的第三方 集成 和数据处理管道,用于接收其他系统的数据或将数据推送到Ably。Incoming Webhooks是将信息从任何第三方集成发布到Ably的最简单方法。

想象一下,当你的送货司机迟到时,或者当他们想重新安排送货时间时,你想开始让你的客户从各种信息应用中给你发短信。你会使用像Vonage这样的服务,它将生成webhooks作为与你的网络应用程序沟通的一种方式。但是,由于你是一个快速增长的企业,该服务很快就开始向你的服务器发送如此多的webhooks,你需要扩大你的处理规模,这意味着你要在建立基础设施方面进行更多投资。

如果你使用Ably,你所要做的就是通过在Ably仪表板上配置Incoming Webhooks来接收Vonage的webhooks。现在,消息都是通过Ably的pub/sub消息通道进来的。Ably可以把它们全部处理到一个队列中,让你在合理的时间范围内处理它们,或者使用无服务器功能来管理它们,而不给你的基础设施增加复杂性。你甚至可以使用一个分批的Webhook,将较小的消息转化为一个大得多的消息。

开始使用传入Webhooks


为了让Ably接收来自其他web服务的webhook,你需要用一个webhook URL来配置外部web服务。webhook URL指定了生成的webhook请求的端点,并在Ably仪表板中定义。webhook数据将以消息的形式发布到配置的Ably频道。

如果你有一个Ably账户,注册一个传入的webhook很简单。 进入你的Ably仪表板,并导航到你想注册一个传入网络钩子的Ably应用程序。然后前往 "集成 "选项卡,用一个友好的名称和一个渠道创建一个传入网钩,通过网钩发布的信息将被发布到该渠道。这将产生一个URL,用于其他系统的webhook,你可以粘贴作为回调URL。