首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel 5可以处理1000个并发用户而不会出现严重的滞后吗?

Laravel 5可以处理1000个并发用户而不会出现严重的滞后吗?
EN

Stack Overflow用户
提问于 2017-11-29 13:05:08
回答 4查看 6.2K关注 0票数 18

我想知道,如果1000个用户同时使用由laravel 5构建的网站,并定期查询数据库,那么laravel 5的性能如何?我知道它会很慢,但它会非常慢到让人无法忍受吗?请注意,我还将大量使用ajax。

假设我使用的是数字海洋云服务,配置如下

代码语言:javascript
复制
2GB memory
2 vCPU
40GB SSD

我不期望完全真实的数字,因为这是不可能的,但至少提供一些细节,我是否应该使用具有一些可观性能的laravel。

还请提供一些工具,我可以通过它们来检查我的laravel 5应用程序的速度,以及当有实际负载时它将如何执行,以及其他工具,我可以通过它们来测试速度和性能。

如果有人真正有使用laravel的经验,尤其是Laravel 5,那就更好了。

Lumen的应用程序真的比laravel快多少?

EN

回答 4

Stack Overflow用户

发布于 2020-05-30 01:53:48

简而言之,是的。至少更新版本的Laravel支持(Laravel 7.*)

话虽如此,这确实是一个三部分的难题。

Php 1.Laravel()

老实说,我不能像这篇令人惊叹的文章那样提供一半的细节。他囊括了从concurrency的定义到pre-optimization times vs. after-optimization times.的所有内容

2.读取、写入和分区持久化数据(数据库)

我很好奇真正的问题是Php的Laravel,还是更多的数据库读/写速度时间瓶颈。非关系数据库是一种令人难以置信的技术,与传统关系数据库相比,它对大数据的好处更大。

  • Non-relational数据库( correctly)
  • Non-relational )的读取速度要比experience
  • Unlike快得多(如果我没记错的话,大概快60% ),但这通常并不是限制用户使用servers.
  • Mongo关系数据库( MySql )的因素,Mongo DB可以真正地 be ,分散在多个Mongo数据库中。Mongo DB有文档集合,集合是表的同义词,文档是行的同义词。
  • 不同之处在于,MongoDB有一种非常类似JSON的感觉。(文档的集合,其中每个文档看起来像一个

对象)。JSON

  • 最大的区别和好处是每个文档--也就是行--不具有相同的键。当在财富500强项目中使用mongo DB时,我的导师和当时的领导Logan有一句名言。

"Mongo不关心

这意味着您可以根据需要对数据进行整形,这样不仅读取速度更快,而且通常不会因为必须从多个表中检索数据而变慢。

这是一个经过亲自测试和喜爱的包,用于在Laravel中设置MongoDB

如果你关心大量的用户和数据传输,MongoDB可能就是你想要的。说到这里,让我们继续第三点,也是最重要的一点。

3.无服务器架构(也称为水平扩展)

Aws、Google Cloud、Microsoft Azure等...我相信你一定听说过云

最终,如果您遇到并发问题,并且希望停留在Laravel的范围内,那么这就是您要寻找的。

这是一个令人难以置信的工具的全新世界,人们可以不断地敲打--它们非常棒。它也是一个全新的,相当大的,学习工具和思想的世界。

首先,让我们深入了解几个无服务器概念。

作为代码的

  • Infrastructure

“使用基础架构作为代码来调配和管理任何云、基础架构或服务”

通过

  • 实现的云水平扩展示例

“创建Laravel应用程序。这是一个单一的应用程序,单块的。然后你潜入云中。你发现了Terraform。啊哈哈,首先你使用terraform来定义你的应用一次运行多少个实例。你决定你的应用程序需要8个实例。接下来,当然要定义一个负载均衡器__。负载均衡器只需在您的8个应用程序实例之间平衡流量负载。每个应用程序都连接到相同的数据库,最终共享相同的数据源。您只是将流量分散到同一application."的多个实例中

  • 我们当然可以超越这一点,非常简单地回答云,并深入到lambdas,Not to do's of serverless,设置您的内部虚拟云网络...

Or...we可以提前感谢Laravel团队简化了无服务器架构

  • 是,Laravel Simplified (喊出Laravel团队)

代码语言:javascript
复制
- [**Serverless Via Laravel Vapor**](https://docs.vapor.build/1.0/introduction.html#what-is-vapor)

Laravel Vapor开篇段落

"Laravel Vapor是用于Laravel的自动扩展、无服务器部署平台,由AWS Lambda提供支持。在Vapor上管理您的Laravel基础设施,爱上无服务器的可扩展性和简单性。“

快结束了,让我们来总结一下。

Oringal Concern

能够在设定的时间内处理一定数量的流量

潜在解决方案的潜在瓶颈

Php&

数据库&高效地持久化/检索数据

适用于水平扩展无服务器架构

票数 13
EN

Stack Overflow用户

发布于 2020-05-31 03:31:46

我将根据我作为软件开发人员的经验来尝试回答这个问题。老实说,每当同时达到1000个并发用户时,我肯定会要求升级,因为我不会冒服务器故障或数据故障的风险。

但让我们打破它如何设计它。

  1. 如果获取的数据不复杂,并且Laravel代码中的操作不多,那么它可以处理这些用户。如果它只是从数据库传递过来的,并且几乎没有对数据进行任何修改,那么它会很快。
  2. 用户获取的数据不是唯一的。假设你有一个没有用户个性化的新闻网站。用户获取的大多数新闻都是相同的。你从内存(Redis,我推荐)或web服务器(Nginx,应该避免)缓存数据,你的Laravel程序将直接从数据库运行快速的enough.
  3. Querying比使用Laravel ORM更快。如果需要,你可能会考虑它,但我自己总是会尝试使用对象关系映射,因为它有助于提高代码的可读性,而且secure.
  4. Splitting数据库、web服务器、CDN和缓存服务器明显使监控服务器使用情况变得更容易。
  5. 尝试将其升级到最新版本。我曾经在一家使用版本5的公司工作,它并不擅长performance.
  6. opcode缓存。缓存PHP文件代码。我自己从来没有用过这个,
  7. 把应用分成了后端和前端。使用前端应用的状态管理来减少对服务器的请求数据。

现在让我们回答你的问题

有没有检查性能的工具?你可以查看Laravel调试栏,这些工具提供了简单的性能报告。我自己鼓励你为你创建的每个特性做一个测试。您可以根据该单元测试创建一份报告,以找出哪些功能需要花费时间才能完成。

lume比laravel快吗?是的,Lumen更快,因为他们禁用了Laravel的一些功能。但请注意,泰勒似乎要stop Lumen for development。您应该为将来考虑这一点。

如果您了解性能,您可能不会选择Laravel进行开发。

  1. ,因为在打开连接时,每台服务器之间存在延迟。每当用户创建请求时,他们都会打开到服务器的连接。服务器打开到缓存服务器、数据库服务器、SMTP服务器或其他第三方的连接。这是发生在Laravel上的真正瓶颈。您可以与数据库和高速缓存服务器建立keep-alive连接以减少连接延迟,但在Laravel中找不到它,因为它会在请求完成时处理连接。
  2. 它是一种类型化语言,大多数编译语言速度更快

最后,您可能无法将Laravel与该服务器资源一起使用,除非您正在创建一个非常简单的应用程序。

票数 3
EN

Stack Overflow用户

发布于 2020-06-04 21:05:26

像这样的问题需要一个实数的答案:

幸运的是,这个guy已经在您想要尝试的类似条件下使用laravel forge完成了这项工作。

使用此php配置:

代码语言:javascript
复制
opcache.enable=1
opcache.memory_consumption=512
opcache.interned_strings_buffer=64
opcache.max_accelerated_files=20000
opcache.validate_timestamps=0
opcache.save_comments=1
opcache.fast_shutdown=1

结果:

代码语言:javascript
复制
Without Sessions:
Laravel: 609.03 requests per second
With Sessions:
Laravel: 521.64 requests per second

所以回答你的问题:

有了这样的内存,你很难让1000个用户发出请求,使用4 4gb的内存,你就会有更好的状态。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47545427

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档