当前位置: 首页 > 科技观察

用HTTP事件驱动所有应用

时间:2023-03-22 15:57:30 科技观察

在互联网和云计算时代,HTTP协议已经成为应用设计的基本元素,甚至一些编程语言本身几乎可以等同于Web服务器。云计算平台提供的大部分功能服务都支持HTTP触发器,进一步抽象了Web服务器架构。大多数运行在云端的应用程序都可以使用API或基于HTTP事件的函数来构建,尽管它们有不同的形式。RESTAPIAPI是函数服务最基本的应用场景,可以使用AWSLambda或AzureFunctions快速构建API。配置API网关和相应的身份认证方案后,可以将基于HTTP触发器的函数服务作为API使用,特别适用于按通话量计费的场景。在基于微服务的系统中,函数服务可以作为微服务的载体,实现灵活部署和弹性伸缩的优势。WebhookWebhook可以看做是一个降级的RESTAPI,用于接收消息推送。通常,webhook是匿名的或使用弱身份验证。发送方通常只关心webhook返回的响应的状态码,文本会被忽略。函数服务是实现webhook的理想选择。SPA网站HTTP函数服务也可以作为单页应用的后端。建站的一种方式是将前端脚本等静态资源放在CDN上,然后在脚本中通过ajax访问后端API,通过函数服务即可构建API。后台程序传统的应用程序设计一般不使用web服务器来实现后台工作流,但是所有程序的执行入口都是基于事件的,所以一些后台作业也可以修改为由HTTP事件触发。最典型的后台应用模式是基于调度的,可以通过函数服务加外部定时器来触发,比如AzureScheduler。需要注意的是,很多功能服务都有一个很短的超时限制。如果业务逻辑的后台工作流可能耗时较长,则应考虑使用异步调用,并配置函数服务的运行和计费方式。消息分发消息队列是分布式系统中常用的中间件。一般来说,接收消息有三种方式:轮询、长连接和推送通知。推送模式可以直接使用webhook实现,而轮询和长连接模式可以在收到消息后将消息分发为基于HTTP的调用,并转换为下游API或webhook。这种设计理念可以进一步扩展到其他应用场景,将系统进行拆分,将主要的计算工作交给HTTP函数或微服务。上面的各种应用场景都可以看作是某种形式的API实现。开发者可以将“后端”的概念等同于基于HTTP的API,从而专注于相关技术,采用成熟的设计模式和工具。我坚持的一个奇妙的观点是,即使你写HelloWorld,你也应该使用HTTP协议。