限制传出的HTTP请求

时间:2016-10-27 15:10:34

标签: http rx-java vert.x throttling

我使用vert.x作为服务器来接收搜索请求,然后在服务器上将其处理为对各种外部服务的多个传出HTTP请求。

对于异步行为,我选择使用Vertx本机http客户端使用RxJava。

事实上,我使用的服务限制我每秒最多1次呼叫。

限制NIO HTTP传出请求的最佳/简单方法是什么?

  1. 在单一服务器环境中。
  2. 在群集服务器环境中。

1 个答案:

答案 0 :(得分:1)

在单个服务器中,一种解决问题的简单方法是:

  1. 将请求和结果处理程序推送到队列
  2. 拥有一个周期性处理程序,每秒从队列中弹出一个元素并执行请求
  3. 使用结果或错误调用结果处理程序
  4. 以集群方式,您可以扩展先前的概念并将其包装在事件总线地址上,因此它将类似于:

    1. 使用请求向地址发送消息并设置回复处理程序
    2. 该服务将按照前面的说明进行操作
    3. 而不是调用处理程序,服务将依赖于消息回复处理程序来传递结果。