Orleans 2.0 官方文档 —— 5.5.9 集群和客户端 -> 配置指南 -> 配置ADO.NET提供程序

配置ADO.NET提供程序

Orleans的任何可靠部署,都需要使用持久化存储来保持系统的状态,特别是Orleans集群成员身份表和提醒器(Reminder)。可用的选项之一,是通过ADO.NET提供程序来使用SQL数据库。

为了将ADO.NET用于持久性,集群或提醒器,需要将ADO.NET提供程序配置为silo配置的一部分,并且在群集的情况下,还需要将其配置为客户端配置的一部分。

silo配置代码应如下所示:

var siloHostBuilder = new SiloHostBuilder();
var invariant = "System.Data.SqlClient"; // for Microsoft SQL Server
var connectionString = "Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=Orleans;Integrated Security=True;Pooling=False;Max Pool Size=200;Asynchronous Processing=True;MultipleActiveResultSets=True";
//use AdoNet for clustering 
siloHostBuilder.UseAdoNetClustering(options =>
            {
                options.Invariant = invariant;
                options.ConnectionString = connectionString;
            });
//use AdoNet for reminder service
siloHostBuilder.UseAdoNetReminderService(options =>
            {
                options.Invariant = invariant;
                options.ConnectionString = connectionString;
            });
//use AdoNet for Persistence
siloHostBuilder.AddAdoNetGrainStorage("GrainStorageForTest", options =>
            {
                options.Invariant = invariant;
                options.ConnectionString = connectionString;
            });

客户端配置代码应如下所示:

var siloHostBuilder = new SiloHostBuilder();
var invariant = "System.Data.SqlClient";
var connectionString = "Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=Orleans;Integrated Security=True;Pooling=False;Max Pool Size=200;Asynchronous Processing=True;MultipleActiveResultSets=True";
//use AdoNet for clustering 
siloHostBuilder.UseAdoNetClustering(options =>
            {
                options.Invariant = invariant;
                options.ConnectionString = connectionString;
            });

其中,ConnectionString被设置为有效的AdoNet 服务器连接字符串。

为了使用ADO.NET提供程序用于持久化、提醒器或集群,有一些用于创建数据库工件的脚本,所有将承载Orleans silo的服务器,都需要访问这些脚本。缺少对目标数据库的访问,是我们看到开发人员犯的一个典型错误。

在AdoNet扩展的nuget上安装或执行nuget还原后,脚本被复制到项目目录\ OrleansAdoNetContent,其中每个受支持的ADO.NET扩展都有自己的目录。我们将AdoNet nugets拆分为每个功能单元:Microsoft.Orleans.Clustering.AdoNet用于群集,Microsoft.Orleans.Persistence.AdoNet用于持久性和Microsoft.Orleans.Reminders.AdoNet用于提醒器。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值