开拓者 正在被希望使用 .NET 创建交互式 Web UI 的组织迅速采用。 它允许您使用 C# 创建应用程序,而不是经历 JavaScript 的麻烦,并且您的所有服务器端和客户端逻辑都整合在 .NET 空间中。
Blazor 使用 ASP.NET Core SignalR 实现客户端和服务器之间的消息传递。 由于它在同一个进程中,一旦事务数量变多或服务器上的客户端负载增加,它就无法扩展。 此外,它不能用作负载平衡环境中的背板。 对于实时和多用户应用程序,这可能成为瓶颈。
At NCache,我们一直在收到关于 NCache 支持 Blazor 应用。 是, NCache 可以轻松集成到您的 Blazor 应用程序中。 NCache 是实现 ASP.NET / ASP 的内存中分布式缓存.NET Core SignalR Backplane 适用于高流量、实时、Web 应用程序。 由于是分布式的,它可以扩展以处理不断增加的请求,并且不会成为瓶颈。 而且, NCache SignalR 使用强大的 Pub/Sub 消息传递 将消息从一个 Web 服务器发送到另一个 Web 服务器的功能。 图 1 说明了如何 NCache 适合您的 Blazor 应用程序作为 SignalR Backplane:
为了使其更简单,我们使用了 Blazor SignalR 示例实现 微软,并整合 NCache 作为一个 SignalR backplane 在现有的应用程序中。 我们使用 Blazor 的运行实现 NCache SignalR backplane 上传于 GitHub上.
运用 NCache SignalR Backplane 在 Blazor
整合 NCache as SignalR Backplane 非常简单,几乎不需要对现有 Blazor 应用程序进行任何代码更改。
第 1 步:创建缓存
供 Blazor 应用使用 NCache,您需要创建一个缓存来充当 SignalR backplane。 下载并安装 NCache 如解释 安装指南. 您可以使用以下任一方法创建和启动缓存 NCache 管理工具:
对于这个应用程序,我们创建了一个名为“西装外套”这将在我们的 Blazor 应用程序中使用。
步骤2:设定 NCache as SignalR Backplane
In 启动文件 您的 Blazor 应用程序在 BlazorSignalRApp.服务器 项目,需要添加以下几行进行配置 NCache as SignalR Backplane,就是这样:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
public void ConfigureServices(IServiceCollection services) { //...Configure NCache as SignalR Backplane services.AddSignalR().AddNCache(ncacheOptions => { ncacheOptions.CacheName = "blazor"; ncacheOptions.ApplicationID = "chat"; }); //...Blazor code services.AddControllersWithViews(); services.AddResponseCompression(opts => { opts.MimeTypes = ResponseCompressionDefaults.MimeTypes.Concat( new[] { "application/octet-stream" }); }); } |
NCache 更多信息 Blazor 应用程序 NCache NCache SignalR 文档
为什么 NCache?
如果您的 Blazor 应用程序流量很大并且在负载平衡的多服务器 Web 场中运行,则使用 NCache 作为一个 SignalR Backplane 为您的应用程序提供以下好处:
- .NET 发布/订阅消息: NCache 是一个功能丰富的分布式缓存,并提供强大的 Pub/Sub 消息传递功能。 SignalR Backplane 使用这些消息传递功能 NCache 将消息发送到网络场中的其他服务器。
- 100%.NET / .NET Core 缓存: 作为原生 .NET 分布式缓存, NCache 无缝融入您的 ASP.NET / ASP.NET Core 应用程序堆栈,并降低您的开发和维护成本。
- 极快且可扩展: NCache 是在内存中的,这使得它非常快。 它的分布式特性提供了线性可伸缩性,因此即使在峰值负载下它也永远不会成为 Blazor 应用程序性能的瓶颈。
- 高可用性: NCache 提供动态和自我修复且没有单点故障的点对点集群架构。
- 对组和用户的支持: 运用 NCache 作为一个 SignalR backplane 便于向 SignalR 组发送消息,这些组是关联连接的集合。 此外,使用 NCache 作为消息总线,您还可以向与特定 SignalR 用户关联的所有连接发送消息。
结论
运用 NCache 作为一个 SignalR Backplane 在您的 Blazor 应用程序中是一个非常无缝的过程。 你只需要配置 NCache 作为一个 SignalR backplane 在您现有的 Blazor 应用程序中使用 2 行代码,其余的由 NCache 本身。 凭借 Blazor 的易用性和 NCache 集成,可以保证流畅的体验。