用HTTP事件驱动一切应用程序

服务器 服务器产品
在互联网和云计算时代,HTTP协议已经成为应用程序设计的基本元素,甚至某些编程语言本身就几乎可以和web服务器划等号。云计算平台提供的函数服务大多都支持HTTP触发器,将web服务器架构作近一步抽象。

在互联网和云计算时代,HTTP协议已经成为应用程序设计的基本元素,甚至某些编程语言本身就几乎可以和web服务器划等号。云计算平台提供的函数服务大多都支持HTTP触发器,将web服务器架构作近一步抽象。在云中运行的应用,尽管形式不同,大多都可以使用基于HTTP事件的API或者函数来构建。

REST API

API是函数服务的最基本应用场景,使用AWS Lambda或者Azure Functions可以快速搭建API。在配置API Gateway和相应的身份认证方案后,基于HTTP触发器的函数服务就可当作API使用,尤其适用于按调用量计费的场景。在基于微服务的系统中,函数服务可以作为微服务的载体,发挥灵活部署和弹性伸缩的优势。

[[215067]]

Webhook

Webhook可以看作是退化了的REST API,用来接收消息推送。一般来说webhook是匿名的,或者采用弱身份验证方式。发送端通常只关心webhook所返回的response的状态码,而正文会被忽略。函数服务是实现webhook的理想选择。

SPA网站

HTTP函数服务也可以作为Single Page Application的后端。一种搭建网站的做法是将前端的脚本等静态资源放在CDN上,然后在脚本里通过ajax访问后端的API,而API就可以通过函数服务搭建。

后台程序

传统的应用设计一般不会采用web服务器来实现后台的工作流,但一切程序的执行入口都是基于事件的,所以一些后台job也可以改造成由HTTP事件触发。最典型的后台应用模式是基于schedule的,可以使用函数服务外加一个外部定时器来触发,比如Azure Scheduler。需要注意的是,很多函数服务都是有较短timeout限制的,如果业务逻辑的后台工作流可能会耗时较久,应该考虑采用异步调用,并配置函数服务的运行和计费模式。

消息分发

消息队列是分布式系统中常用的中间件,一般来说消息的接收有轮询,长连接和推送通知三种模式。推送模式可以直接应用webhook来实现,而轮询和长连接模式在收到消息后,可以将消息分发为基于HTTP的调用,转化为下游的API或者webhook。这样的设计理念可以近一步推广到其他的应用场景,将系统拆分,把主要的计算工作交给HTTP函数或者微服务。

上面的各种应用场景,都可以看作是某种形式的API实现。开发者可以把“后端”这个概念和基于HTTP的API划上约等号,由此专注相关技术,并采用成熟的设计模式和工具。我坚持的一个奇葩观点是,即便写Hello World也应该走HTTP协议。

责任编辑:武晓燕 来源: 子非虞之Yu见
相关推荐

2020-12-31 13:06:54

大数据大数据应用

2023-10-07 09:37:53

2022-04-27 09:28:11

HTTPExpires

2021-12-03 08:24:05

HttpTCP连接

2012-05-29 10:04:08

2016-08-31 17:24:05

大数据分析

2012-12-31 11:22:58

开源开放

2020-09-11 10:55:10

useState组件前端

2023-05-04 12:19:47

模型AI

2017-03-23 14:51:21

HTTP缓存CDN缓存

2021-12-06 07:47:36

Linux 驱动程序Linux 系统

2017-03-23 15:05:50

HTTP缓存Cookie

2014-03-05 09:29:46

程序员绘画

2012-11-05 15:22:59

康普光缆DCD

2021-02-28 09:47:54

软件架构软件开发软件设计

2013-08-08 10:20:39

大数据

2021-08-30 14:23:05

BlazorHTTP请求

2021-02-19 23:08:27

软件测试软件开发

2018-11-23 11:17:24

负载均衡分布式系统架构

2021-09-01 07:21:39

Exporter指标监控
点赞
收藏

51CTO技术栈公众号