900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > WTM(ASP.NET Core)配置读写分离(SqlServer)

WTM(ASP.NET Core)配置读写分离(SqlServer)

时间:2019-07-22 11:32:16

相关推荐

WTM(ASP.NET Core)配置读写分离(SqlServer)

为了提升网站的性能,我们可以采用数据库读写分离的方案。在WTM框架中,只需要简单配置即可完成数据库读写分离操作。官方文档

一、环境搭建

我们这里在本地用VMwareWorkstation建立了2台WindowsServer服务器,每台服务器都安装SqlServer开发版数据库。由于本人电脑只有8G内存,安装2个虚拟机已经非常卡了。

二、主机、虚拟机通讯

1、确定主机与虚拟机通讯是否正常。本人采用的是NAT连接方式,主机直接ping虚拟机ip是畅通的。如果不通,详细参照。

2、将2台服务器的TCP连接打开,详细参照。设置完成之后,直接用本地计算机安装的SSMS连接虚拟机中的SqlServer实例。确定2个实例都能正常连接。

三、配置WTM项目

在WTM生成项目,并下载。项目appsettings.json,将数据库连接字符串修改为使用账号密码登录。设置完成后启动项目,并查看Node1(192.168.137.128)数据库是否正常生成数据表。

{"Key": "default","Value": "Server=192.168.137.128;Database=GasDataReport_db;User ID=sa;Password=000000;"},

四、配置数据库主从

在Node1(192.168.137.128)发布订阅【数据库名称GasDataReport_db】,在Node2(192.168.137.129)接收订阅【数据库名称zcfl】。完成数据库主从设置。关于这一块,详细参照。

后续会写一篇关于alwayson的博客。

五、配置WTM读写分离

修改项目appsettings.json,将数据库连接字符串修改为读写分离模式。

框架会自动识别ConnectionString中以下划线+数字结尾的key值,作为只读库。

配置文件定义了两个连接字符串,default是写库,default_1是只读库。

"ConnectionStrings": [{"Key": "default","Value": "Server=192.168.137.128;Database=GasDataReport_db;User ID=sa;Password=000000;"},{"Key": "default_1","Value": "Server=192.168.137.129;Database=zxcl;User ID=sa;Password=000000;"}],

六、验证是否读写分离。

框架读写分离逻辑是,就是[HttpPost]的会走写库,其他走读库,另外可以通过[FixConnection]指定用读库还是写库。

在HomeController里添加Test方法,并在数据完成搜索的地方打断点。

public async Task<IActionResult> Test(){var list = await DC.Set<FrameworkUserBase>().ToListAsync();return Json(list);//此处打断点}

进入系统后访问Test方法。/Home/Test 进入断点

在即时窗口中输入this.DC回车查看数据库连接信息。

这里我们可以看到,获取数据的Sqlserver实例是Node2(192.168.137.129),zxfl数据库。

成功完成读写分离配置。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。