我有一个公开REST端点的服务,该端点经过几次转换后也通过其REST端点调用了第三方服务。
我想对我的服务实施某种限制,以避免受到该第三方服务的限制。请注意,我的服务端点仅接受一个请求,而不接受它们的列表。我正在使用Play,我们也有Akka Streams作为依赖项。
我的第一步是让我的服务将请求保存到数据库表中,然后使用Akka流Source
,利用throttle
函数,选择任务,应用转换,然后调用外部服务。
这是重新确定的方法还是有严重的缺点?
谢谢!
答案 0 :(得分:0)
为什么将请求保存到数据库?队列是否需要重新启动后才能生存和/或是否运行需要以某种方式同步请求的负载平衡设置?
如果您不需要上面的内容,我认为仅使用Source.queue
来存储任务数据就可以了吗?
也许您已经想到了这一点:如果要使端点更具弹性,则应允许您的API发送“抱歉,忙碌”的响应并丢弃请求,而不是在队列超过特定大小时将其排队