java - 具有后端服务器轮询其他 API 的 Web 应用程序的架构模式。
问题描述
我正在构建一个使用 Java/Spring Boot 作为后端的 Web 应用程序,并使用 Angular 5 作为前端。我认为技术栈对于这个问题并不重要。
关键部分是我需要后端轮询几个 RESTful API 来检索数据、存储并在未来对这些数据进行各种分析。目前主要只是简单的报告。
目前我还没有尝试构建微服务方法。该应用程序是单片的,我在 Spring Boot 端使用一个简单的调度程序来轮询 API。一些示例代码是这样的:
@Component
public class RestAPIDataScheduler
{
@Scheduled(fixedRate = <<Polling Rate in Milliseconds>>)
public void pollApis()
{
}
}
我追求更适合处理此类应用程序的最合适的架构模式(最有可能是微服务)。这是这里描述的简单 API 网关模式http://microservices.io/patterns/apigateway.html吗?
解决方案
如果我理解正确,您正试图以给定的频率从各种来源获取数据。您不能使用弹簧批处理来安排定时作业吗?
如果要处理的数据变得更大/更长,您可以将要处理的响应数据提交到 RabbitMQ/Kafka 等队列系统并异步执行。
推荐阅读
- mysql - 从模式(MySQL)导入数据时打开的文件过多
- java - 我正在尝试访问禁用右键单击的安全网站。通过使用 selenium Xpath 不能点击元素
- c# - 当数据已经在调试中显示时,在运行时附加数据会引发空异常
- java - 有什么方法可以限制 POJO 中字符串的大小并在超出限制时抛出特定异常?
- ios - 如何在 EventKit(swift 4)中添加正确的事件时间?
- python-3.x - 如何减小直方图的宽度?
- excel - 根据另一列顺序对列进行排序
- docker-compose - docker-compose 卷未正确安装
- powershell - 将 pscustomobject 转换为 Json 格式
- python - Python - ValueError:解包的值太多(预期 2)