无服务器Web服务器?

是否有任何无服务器技术可以构建无服务器websocket服务器?

我知道长时间运行的连接的本质是它们是有状态的,但是如果唯一的状态是传输层上的连接本身,那么似乎可能有一个无服务器产品将它抽象出来,因此您只处理应用程序层。 有没有允许这样做的云提供商(AWS,Azure等)? 我看不到AWS Lambda或Azure功能实现此目标的方法。

任何人有任何想法? 只是检查。

谢谢


目前,AWS Lambda和Azure函数不支持这一点。 如果您计划使用websockets在AWS中设置可伸缩环境,则可以使用Application Load Balancer,并在ECS集群或ECS实例之前使用Websocket支持的服务器,如NodeJS。

另一种解决方案是使用完全托管的服务,例如体系结构中的Google Firebase Service或Pubnub来处理实时部分。


如果唯一的状态是传输层上的连接本身

事实并非如此。 Web套接字连接将保持活动交换为第7层有效负载。 其他人可能会争辩说,它被更准确地描述为第6层和第7层之间的子层......但无论如何,它都远高于传输层。

许多应用程序以其他方式使用网络套接字,这些方式也不是无状态的。 一旦连接,然后进行身份验证,就不需要持续重新进行身份验证,因为套接字上的客户端现在将在15分钟后成为同一个客户端,而这是在无服务器环境中无法避免的开销 - websocket需要重新认证。 再举一个例子,如果数据流不变,服务器可能会跟踪发送的内容或客户端感兴趣的流的哪些特定子集。

如果您不维护(或不需要)与服务器的持久连接,则可能会问“您为什么使用Web套接字?”。

也许还有相关性:HAProxy是一个常用的负载平衡器,支持Web套接字,它为每个当前的Web套接字连接维护一个到单个后端服务器的持久连接。 如果后端服务器脱机,则平衡器中不会为现有连接选择另一个后端。 客户端需要重新连接。


AWS IoT提供了MQTT端点,并且它支持端口443上的MQTT + WebSocket。这可能是您在AWS上可以获得的最接近的托管服务。 查看此链接:AWS IoT协议您可以定义触发AWS IoT上的Lambda或将它们传递给Kinesis并通过Lambdas处理流的规则。

链接地址: http://www.djcxy.com/p/95603.html

上一篇: Serverless web socket server?

下一篇: Merge multiple spring web projects into one deployable war