【发布时间】:2020-03-09 02:44:27
【问题描述】:
我有一个连接到 Rabbit 的 JAVA Spring Boot 应用程序(我称之为 A1)。 A1 接收数据并将其保存到数据库(MySql)(我将调用数据库 DB1)。您可以将这些数据想象为具有适当市场和结果的足球比赛。我们正在通过 A1 应用程序接收未来 10 天的数据,并且该数据存储在数据库中。
还有一点值得强调的是,每场足球比赛都有 4 个盘口,每个盘口有 7 个结果。
我将解释 DB1 的外观。除了其他表格之外,还有 3 个表格(比赛、市场、结果)值得一提。这些表格在方式上是相关的:比赛 1 .....* 市场市场 1 ..... * 结果 通过 A1 接收的数据不断更新(从当前时刻加上 2 小时,每秒钟都会收到一些足球赛事的更新)。 还有另一个 PHP Symfony 应用程序(我称之为 S1)。此应用程序用作 REST API。
还有一个前端应用程序(我称之为 F1)通过 HTTP 与 S1 通信,以便从数据库中检索数据。 F1 应用程序正在向 S1 发送 HTTP 请求以检索此数据(与市场和结果匹配),但日期时间范围是从当前时刻加上 7 天(业务要求)。
当向 S1 发送 HTTP 请求时发生错误,因为有超过 10 000 场足球比赛以及投注和结果。
PHP 致命错误:允许的内存大小为 134217728 字节已用尽(尝试分配 20480 字节)。
我正在考虑两种选择来解决这个问题,如果我的选择都不够好,如果您能建议我解决我的问题,我将不胜感激。
- 选项 - F1 每天迭代并向 S1 异步发送 7 个 HTTP 请求,以便检索所有 7 天的数据。
- 选项 - F1 向 S1 发送 HTTP 请求。 S1 仅返回今天的数据,接下来的 6 天通过套接字每天迭代发送,使用https://pusher.com/ 或类似的东西。
还有一点需要强调的是,我们统计的这个 HTTP 的数量是每秒两个,而且它趋于增长。
【问题讨论】:
标签: performance caching architecture scaling software-design