在 PHP 后端从多个 API 提供服务的最佳解决方案是什么?
What is the best solution to serve from multiple API's on a PHP backend?
我正在用 Laravel's Lumen 构建一个 API,我意识到我的 API 的主要任务是为来自其他 API 的数据提供服务' s.
我真的不知道哪一个是获得最佳性能的最佳方法。
我想到了两个解决方案:
每次用户发出请求时,我都会调用不同的 API 来满足请求。
我认为这方面的主要问题是响应请求所需的时间,因为它取决于所有 API 的调用。
每隔 X 秒调用每个 API(使用 cron)并保持我的数据库更新,然后从数据库而不是直接为其他 API的。
我认为这是一种非常糟糕的方法,因为即使此时没有人需要数据,我也会每秒浪费大量资源。
我看到的问题是另一个API的数据在不断变化,所以我必须提供更新的数据。
所以我真的希望有任何其他更好的解决方案来解决此类问题。我想知道大公司是如何处理这个问题的。
谢谢!
你描述的是微服务架构。
在我的公司(大型电子商务网站),我们正在开发 5 个微服务和 2 个网关。
当客户请求数据时,它会被定向到我们的网关(后台或前台相关)。
然后,应用我们的业务逻辑,我们调用不同的微服务来提供新数据(或尽可能缓存数据)。
当然,你必须要有快速有效的微服务。
为此,您必须使用 ORM 缓存(例如,我们的微服务使用 Symfony,因此我们将 Doctrine 与 Redis 一起使用)。
此外,必须优化您的数据库查询。
您的第二种方法可行,但维护起来会很痛苦,并且对您的数据库来说会非常庞大,因为您的所有数据都将被抓取。
这不是 "micro service compliant",因为结果是前面有一个大数据库,里面有许多较小的数据库
总而言之,大公司使用我首先描述的微服务,使用 RESTFul API 或 GRAPHQL 技术
我正在用 Laravel's Lumen 构建一个 API,我意识到我的 API 的主要任务是为来自其他 API 的数据提供服务' s.
我真的不知道哪一个是获得最佳性能的最佳方法。
我想到了两个解决方案:
每次用户发出请求时,我都会调用不同的 API 来满足请求。
我认为这方面的主要问题是响应请求所需的时间,因为它取决于所有 API 的调用。
每隔 X 秒调用每个 API(使用 cron)并保持我的数据库更新,然后从数据库而不是直接为其他 API的。
我认为这是一种非常糟糕的方法,因为即使此时没有人需要数据,我也会每秒浪费大量资源。
我看到的问题是另一个API的数据在不断变化,所以我必须提供更新的数据。
所以我真的希望有任何其他更好的解决方案来解决此类问题。我想知道大公司是如何处理这个问题的。
谢谢!
你描述的是微服务架构。 在我的公司(大型电子商务网站),我们正在开发 5 个微服务和 2 个网关。
当客户请求数据时,它会被定向到我们的网关(后台或前台相关)。 然后,应用我们的业务逻辑,我们调用不同的微服务来提供新数据(或尽可能缓存数据)。
当然,你必须要有快速有效的微服务。 为此,您必须使用 ORM 缓存(例如,我们的微服务使用 Symfony,因此我们将 Doctrine 与 Redis 一起使用)。 此外,必须优化您的数据库查询。
您的第二种方法可行,但维护起来会很痛苦,并且对您的数据库来说会非常庞大,因为您的所有数据都将被抓取。 这不是 "micro service compliant",因为结果是前面有一个大数据库,里面有许多较小的数据库
总而言之,大公司使用我首先描述的微服务,使用 RESTFul API 或 GRAPHQL 技术