我的系统架构是一个Web应用程序服务器,它使用PHP-Slim 3运行LAMP堆栈,用作API和Web应用程序前端。 API允许获取请求以检索数据,但也允许传感器设备每秒向其发送POST。在同一台服务器上,我们运行一个用Python编写的处理算法,每5分钟执行一次,处理600秒的数据。
MongoDB位于一个独立的服务器上,拥有自己的资源。在很少有传感器的情况下,您可以想象性能很好。但随着时间的推移,随着索引与数据量成比例增长,以及发布数据的传感器数量不断增加,来自Web应用程序前端的获取请求已经放慢到甚至显示图形会导致大量延迟阻塞的程度发布传感器数据。这是一个大问题,需要我们解决。
我一直认为Web应用程序可能需要拆分为3个组件 - 一个用于POST API的Web服务器,一个用于Web应用程序,另一个用于处理API get请求。这样我们就可以与MongoDB服务器建立3个连接,希望我们不会对发布数据的get请求产生不利的阻塞效果。
我的问题是,如何使用PHP Slim开始这样做?
答案 0 :(得分:0)
这确实不是一个很小的问题,这是一个数据库问题。你的苗条应用程序可能只是从数据库中提取数据...使瓶颈等待数据库响应所花费的时间,或者将所有数据从数据库发送到slim应用程序的传输时间。
尝试找出瓶颈所在。在CLI中运行数据库查询并查看在本地获取数据所需的时间...如果是数据的MB,那么即使在数据中心的传输时间也会成为一个问题....我见过蹩脚DC有500kbs,因此即使几MB的数据也会明显变慢。