Orleans是一种新的编程模式,用来提升微软通用语言运行库(CLR)的抽象水平,Orleans的宗旨就是为了创建一种既适用于客户端又适用于服务器的编程模式,简化代码调试,提高代码的可移植性。3.0 版本带来大量的改进和修复,以及一些新的特性。
自2.0以来的一些主要变化是:
分布式ACID 事务——多个grains可以加入一个事务(不管它们的状态存储在哪里)新的调度器,它在某些情况下提高了30%以上的性能新的基于Roslyn代码分析的代码生成器重写集群成员以提高恢复速度共同托管支持Networking layer replacement with ASP.NET Bedrock
在3.0版本中,引入TLS支持,可通过 Microsoft.Orleans.Connections.Security 包获得。Orleans 3.0将其整个网络层替换为构建在 Project Bedrock 之上的整个网络层,这是ASP.NET团队的一个创举。Bedrock的目标是帮助开发人员构建快速、健壮的网络客户端和服务器。
网络层重写还包括用对MemoryPool的依赖替换自定义缓冲区池,在进行这种更改时,序列化现在更多地利用了 Span。在Orleans 3.0中,增加了对通过协议协商逐步升级网络协议的支持。Orleans 3.0中添加的协议协商,例如定制核心序列化程序,同时保持向后兼容性。新网络协议的一个好处是支持全双工silo-to-silo连接,而不是以前在silo之间建立的单纯连接对。协议版本可以通过ConnectionOptions.ProtocolVersion配置。
Co-hosting via the Generic Host
现在,与其他框架(如ASP .NET Core)在同一个进程中共同托管Orleans比以前更容易。下面是一个使用UseOrleans将Orleans与ASP.NET Core一起添加到主机的示例:
var host = new HostBuilder()
.ConfigureWebHostDefaults(webBuilder =>
{
// Configure ASP.NET Core
webBuilder.UseStartup();
})
.UseOrleans(siloBuilder =>
{
// Configure Orleans
siloBuilder.UseLocalHostClustering();
})
.ConfigureLogging(logging =>
{
})
.ConfigureServices(services =>
{
})
.UseConsoleLifetime()
.Build();
// Start the host and wait for it to stop.
await host.RunAsync();
使用通用主机构建器,Orleans将与其他托管服务共享服务提供商。这使得这些服务可以进入Orleans。例如,开发人员可以将IClusterClient或IGrainFactory注入ASP.NET Core MVC控制器,并直接从它们的MVC应用程序调用grains。此功能可用于简化部署拓扑或向现有应用程序添加其他功能。
Improved extensibility
streams 现在可以有自定义数据适配器,允许它们以任何格式接收数据。这使开发人员能够更好地控制 stream 项在存储中的表示方式。它还使 streams提供程序能够控制数据的编写方式,从而使steams能够与遗留系统和/或non-Orleans 服务集成。自定义事务状态现在可以声明它在事务中能够履行的角色。现在可以公开访问预定义的布局策略,以便在配置期间可以替换任何位置指示符。
Reliability improvements
此版本中,集群从故障中恢复得更快。消息传递错误现在得到更一致的处理,从而导致提示错误被传送回调用方。这有助于开发人员更快地发现错误。例如,当消息不能完全序列化或反序列化时,详细的异常将被传回原始调用方。
发布说明:
https://devblogs.microsoft.com/dotnet/orleans-3-0/
相关资讯
最新热门应用
热币全球交易所官网苹果手机
其它软件38.33MB
下载币咖交易所app官网
其它软件86.26MB
下载马蹄链交易所app官网
其它软件223.89MB
下载dboss交易所app
其它软件23.10M
下载必安交易所官网
其它软件179MB
下载xt交易所安卓版
其它软件104.98 MB
下载bitflyer交易所app
其它软件89.13M
下载hoo交易所安卓版
其它软件34.95 MB
下载抹茶数字资产交易所app官网
其它软件137MB
下载芝麻交易所app手机版苹果版
其它软件223.89MB
下载