我正在构建一个应用程序,它可以连接到实现分页的fhirapi,并且每页最多只能提供100个结果。但是,我们的应用程序需要聚合这些页面,以便将整个结果集的元数据交给ui。
当我遍历一个大结果集的页面时,我得到了http状态429—请求太多。我想知道,如果把这些要求交给Kafka服务将有助于我绕过这个问题,也许提高性能。我已经阅读了kafka文档中的简介和用例部分,但是还不清楚实现这个工具是否会有所帮助。
我正在构建一个应用程序,它可以连接到实现分页的fhirapi,并且每页最多只能提供100个结果。但是,我们的应用程序需要聚合这些页面,以便将整个结果集的元数据交给ui。
当我遍历一个大结果集的页面时,我得到了http状态429—请求太多。我想知道,如果把这些要求交给Kafka服务将有助于我绕过这个问题,也许提高性能。我已经阅读了kafka文档中的简介和用例部分,但是还不清楚实现这个工具是否会有所帮助。
2条答案
按热度按时间xlpyo6sf1#
你得到429个错误,因为你提出太多的要求太快;你需要实行速率限制。
至于是否使用Kafka,很大一部分是你的结果集是否能在记忆中体现出来。如果你能记住它,那么我真的会建议避免单独的服务(接吻)。如果没有,那么是的,你可以用Kafka。但我建议您考虑一下是否可以使用关系型数据存储,因为它们更灵活。或者直接读/写磁盘
iovurdzv2#
我是你,在我调查Kafka之前,我会试图解决你为什么会出现429错误。我不会不注意的。我想看看我该怎么解决这个问题。
我将研究以下内容:
1) 睡眠你的过程。服务器响应通常在响应中包含一个retry after头,其中包含您在重试之前应该等待的秒数。
2) 指数退避如果服务器的响应没有告诉您等待多长时间,您可以通过在中间插入暂停来重试请求。
一定要记住,在实施睡眠之前,它需要进行广泛的测试。您必须确保现有功能不会受到影响。
回答你的问题,如果Kafka会帮助你或没有,答案是它可能或可能没有,与有限的信息,我可以从你的问题。一定要明白实现Kafka会改变你的网络架构。你把一个流媒体平台带入了这个等式。您很可能会实现缓存来聚合结果。但目前所有这些概念都处于一个非常全面的层面。我建议你首先应该解决429的错误,然后保证如果有适当的技术原因是目前实施Kafka,这将提高您的网站的性能。