使用浏览器服务器端



请 我有一个 ASP.NET 核心 Web API 项目,我需要开发一个前端 UI 来使用它,利用 Blazor 的单页应用程序 (SPA( 和组件模型,我正在考虑使用 Blazor Server 应用,但我的应用程序将来将是一个至少具有 20,000 个或更多并发用户的企业应用,我关心的显然是 SignalR 连接。

Blazor 服务器端可以处理它吗? 感谢您的友好回复。

我会研究Blazor WebAssembly。

https://learn.microsoft.com/en-us/aspnet/core/blazor/hosting-models?view=aspnetcore-3.1#blazor-webassembly

如果仍想继续使用 Blazor 服务器,可以在下面阅读更多内容。

https://learn.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://learn.microsoft.com/en-us/aspnet/core/host-and-deploy/blazor/server?view=aspnetcore-3.1

这是一个很好的比较,也是在拥有超过 20,000 个并发活跃用户的Standard D3 v2 instance on Azure (4vCPU & 14GB memory)上完成的测试

特别要注意:

这些实验得出的主要发现是 内存和延迟是 Blazor 服务器的主要瓶颈 应用。如果延迟超过 200 毫秒,则性能会受到影响 并且规模受到盒子上可用内存的限制。

https://stackoverflow.blog/2020/02/26/whats-behind-the-hype-about-blazor/

绝对可以使用 Blazor 服务器应用,但你必须处理一些事情。

  • 需要成熟的 ASP.NET 核心服务器来托管应用程序。 无服务器部署方案,例如从 CDN 提供应用 是不可能的。
  • 始终需要与服务器建立活动连接。这意味着 需要保持服务器 24X7 全天候运行。如果服务器 关闭,应用程序停止工作。
  • 由于每次用户交互都涉及到服务器的往返 与 Blazor WebAssembly 相比,通常存在更高的延迟 好客。
  • 可扩展性可能具有挑战性,特别是对于具有许多 用户作为服务器必须管理多个客户端连接和 处理客户端状态。但是,我们可以克服这个可扩展性问题, 将 Azure SignalR 服务与 Blazor Server 应用配合使用。此服务 允许 Blazor 服务器应用通过支持大型 并发信号雷达连接数。

参考:https://www.pragimtech.com/blog/blazor/blazor-hosting-models/

是的,Blazor Server 将处理它。您只需要额外的系统资源。如果没有对您的业务和计划的深入了解,没有人可以推荐任何适合您需求的技术。一旦你有了 Web API,与 Blazor WASM 相比,我看不到 Blazor Server 的许多优势。Blazor WASM 未声明为 LTS。Microsoft可以停止开发它,您将只有大约 3 个月的支持。我建议使用稳定成熟的技术,如 Angular/React。

如果您将的 signalR 部分交给特定于此目的的服务,则会从您的 webapi 中删除一些(很多?(性能影响。

Azure为此提供了服务 - 公平地说,如果您在 VS 中新建一个新的 blazor 服务器端并将其发布到 Azure 订阅,VS 将在此过程中提示你单独的 SignalR 服务(并为你设置它(。

这不是对问题的明确回答,但这是调整设置以提高性能的方法之一 - 如果将 SignalR 排除在等式之外,那么每个用户的会话量就变成了问题。

如果您想深入研究,则很少有链接: https://learn.microsoft.com/en-us/aspnet/core/blazor/hosting-models?view=aspnetcore-3.1

为什么在部署 Blazor 服务器端应用时建议使用 Azure SignalR 服务?

https://www.youtube.com/watch?v=qe9qANk8Ecw&feature=youtu.be

我想说的是,指出旧技术有很多资源,而新技术有很多潜力。因此,您可以拥有一个可靠且拥有大量用户的产品,并且是开源的。React, Vue, Flutter, Tensorflow。

相关内容

最新更新