限制传出 HTTP 请求
Throttling Outgoing HTTP requests
我正在使用 vert.x 作为服务器来接收搜索请求,然后在服务器上处理该请求以向各种外部服务发送多个传出 HTTP 请求。
对于异步行为,我选择使用 Vert.x 本机 http 客户端来使用 RxJava。
事实是,我使用的服务限制我每秒最多调用 1 次。
限制 NIO HTTP 传出请求的 best/simple 方法是什么?
- 在单服务器环境中。
- 在集群服务器环境中。
在单个服务器中,解决您的问题的一种天真的方法是:
- 将请求和结果处理程序推送到队列
- 有一个周期性处理程序,每秒从队列中弹出一个元素并执行请求
- 使用结果或错误调用结果处理程序
以集群的方式,您可以扩展之前的概念并将其包装在事件总线地址上,因此它类似于:
- 将消息发送到包含请求的地址并设置回复处理程序
- 该服务将像之前的解释一样工作
- 服务将依赖消息回复处理程序来传递结果,而不是调用处理程序。
我正在使用 vert.x 作为服务器来接收搜索请求,然后在服务器上处理该请求以向各种外部服务发送多个传出 HTTP 请求。
对于异步行为,我选择使用 Vert.x 本机 http 客户端来使用 RxJava。
事实是,我使用的服务限制我每秒最多调用 1 次。
限制 NIO HTTP 传出请求的 best/simple 方法是什么?
- 在单服务器环境中。
- 在集群服务器环境中。
在单个服务器中,解决您的问题的一种天真的方法是:
- 将请求和结果处理程序推送到队列
- 有一个周期性处理程序,每秒从队列中弹出一个元素并执行请求
- 使用结果或错误调用结果处理程序
以集群的方式,您可以扩展之前的概念并将其包装在事件总线地址上,因此它类似于:
- 将消息发送到包含请求的地址并设置回复处理程序
- 该服务将像之前的解释一样工作
- 服务将依赖消息回复处理程序来传递结果,而不是调用处理程序。