#反向代理 #代理服务器 #基础设施 # #HTTP #客户端连接

app megaphone-broker

适用于长时间运行请求和服务器流式的反向代理

8个版本

0.10.5 2024年4月28日
0.10.4 2024年3月22日
0.10.0 2024年2月26日
0.9.6 2024年2月25日

#1836 in Web编程

每月 47 次下载

AGPL-3.0-only

72KB
1.5K SLoC

扩音器 📣

Test Status Crate API

扩音器是一个反向代理,允许客户端使用长时间运行请求和服务器流式连接到服务器。它很有用,因为它从服务器抽象出处理长时间运行请求和服务器流式的复杂性,使服务器能够专注于业务逻辑。它还为客户提供了一个单一的连接端点,使得管理连接更容易,并减少了打开的连接和总体的流量开销。

它的工作原理

创建一个通道

要创建一个通道,必须调用 [POST] /create 端点。每个通道

  • 都有一个100条消息的缓冲区,如果消费者当前未连接,则用于保持消息挂起。如果缓冲区已满,服务器将保留可能的写入操作10秒钟,之后将响应一个 503 服务不可用 状态码。
  • 在最后读取操作后1分钟内(如果没有读取操作则为创建)保持活跃。之后它将自动删除,所有缓冲的消息都将丢失。
  • 有两个地址,分别是 producerAddressconsumerAddress,第一个地址可用于向通道写入,第二个地址可用于从中读取。

向通道写入

要向通道写入,客户端必须调用 [POST] /write/{producer-address}/{stream-id} 端点。如果消息成功写入通道,服务器将响应 201 已创建 状态码。

从通道读取

从通道读取所需的信息仅为创建通道时返回的 consumerAddress。目前支持的唯一协议是 http 流,因此要从通道中读取,客户端必须调用 [GET] /read/{consumer-address} 端点。

支持的协议

Http 流

要使用 http 流访问通道,客户端必须调用 [GET] /read/{consumer-address} 端点。服务器将保持连接打开 20 秒,并发送到达的消息。

其他仓库

依赖关系

~22–36MB
~667K SLoC