我们有一个高交易量的 PHP 网站,总体上表现良好,但薄弱环节是搜索结果缓慢。原因是我们汇总了来自众多来源的数据。例如:
用户点击搜索 > 从本机数据库获取结果 1 > 从 API 2 获取结果 2 > 从 API 3 获取结果 3 > 从 API 4 获取结果 4 > 聚合和排序 > 输出到浏览器。
数据来自各种来源,一些来自我们自己的 PostgreSQL 数据库,但其余来自各种外部 API。
如您所见,这种顺序访问是一个真正的杀手。我一直在研究使用线程的各种方法,因此我可以将每个请求分配给它自己的线程并执行最终聚合。
到目前为止,我倾向于编写一个专门用于搜索的基于 Java 的层。我的想法是我向 Java 服务发送一条消息,它处理线程池和聚合。我正在考虑使用node.js,但我认为可能很难达到最终结果。
有没有人有任何想法或建议?我愿意使用任何语言或技术。