请提供一个ASP.NET Core Web API项目,我需要开发一个前端UI来使用它,并利用Blazor的Single Page Application(SPA)和组件模型,我正在考虑使用Blazor服务器应用程序,但我的应用程序将来将成为具有至少20,000个并发用户的企业应用程序,而我担心的显然是SignalR连接。
Blazor服务器端可以处理吗? 谢谢您的友好答复。
答案 0 :(得分:0)
我会改用Blazor WebAssembly。
如果您仍然想继续使用Blazor Server,可以在下面阅读更多内容。
https://docs.microsoft.com/en-us/aspnet/core/blazor/hosting-models?view=aspnetcore-3.1#blazor-server
每个电路使用大约250 KB的内存以最小化Hello 世界风格的应用程序。电路的大小取决于应用程序的代码和 与每个组件相关的状态维护要求。我们 建议您在开发过程中测量资源需求 您的应用和基础架构,但以下基准可以作为 计划部署目标的起点:如果您期望 应用程序以支持5,000个并发用户,请考虑至少预算1.3 应用程序的服务器内存GB(或每个用户〜273 KB)。
https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/blazor/server?view=aspnetcore-3.1
这是一个很好的比较,也是在Standard D3 v2 instance on Azure (4vCPU & 14GB memory)
上进行的同时有超过20,000个并发活动用户的测试
请特别注意:
这些实验得出的主要发现是 内存和延迟是Blazor Server的主要瓶颈 应用程序。如果延迟超过200毫秒,则性能会受到影响 和规模受到包装盒上可用内存的限制。
https://stackoverflow.blog/2020/02/26/whats-behind-the-hype-about-blazor/
答案 1 :(得分:0)
如果您将信号的R部分移交给专门用于此目的的服务,则会从Webapi上消除一些(很多?)性能影响。
Azure为此提供了服务-公平的是,如果您在VS中新建了一个新的blazor服务器端并将其发布到Azure订阅,则VS会在整个过程中提示您有关单独的SignalR服务(并为您进行设置) )。
这不是您问题的明确答案,而是一种调整设置以提高性能的方法之一-如果将SignalR排除在等式之外,则这取决于每个会话的工作量用户。
如果您想深入研究,则很少有链接: https://docs.microsoft.com/en-us/aspnet/core/blazor/hosting-models?view=aspnetcore-3.1
Why is Azure SignalR Service recommended when deploying a Blazor Server Side app?
https://www.youtube.com/watch?v=qe9qANk8Ecw&feature=youtu.be
答案 2 :(得分:0)
是的,Blazor Server将处理它。您只需要其他系统资源。没有您的业务和计划的深入了解,没人会推荐任何适合您需求的技术。有了Web API后,与Blazor WASM相比,我看不到Blazor Server的许多优势。 Blazor WASM未声明为LTS。 Microsoft将在明天停止开发它,您将获得大约3个月的支持。我建议使用稳定可靠的技术,例如Angular / React。
答案 3 :(得分:0)
我想指出的是,旧技术有很多资源,新技术有很多潜力。因此,您可以拥有一个可靠且拥有大量用户的开源软件,并且可以继续使用。 React、Vue、flutter、Tensorflow。
答案 4 :(得分:0)
绝对可以使用 Blazor 服务器应用程序,但您必须注意一些事项。
参考: https://www.pragimtech.com/blog/blazor/blazor-hosting-models/