WTM(ASP.NET Core)配置读写分离(SqlServer)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了WTM(ASP.NET Core)配置读写分离(SqlServer),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2371字,纯文字阅读大概需要4分钟。
内容图文
![WTM(ASP.NET Core)配置读写分离(SqlServer)](/upload/InfoBanner/zyjiaocheng/872/56c0071bc0d8401cb1fe6cedc1ef6fe0.jpg)
为了提升网站的性能,我们可以采用数据库读写分离的方案。在WTM框架中,只需要简单配置即可完成数据库读写分离操作。官方文档
一、环境搭建
我们这里在本地用VMware Workstation建立了2台WindowsServer2012服务器,每台服务器都安装SqlServer2017开发版数据库。由于本人电脑只有8G内存,安装2个虚拟机已经非常卡了。
计算机名称 | Sql实例名称 | 内存 | 硬盘 | ip | 说明 |
---|---|---|---|---|---|
Node1 | Node1 | 2G | 60G | 192.168.137.128 | 主数据库服务器 |
Node2 | Node2 | 2G | 60G | 192.168.137.129 | 从数据库服务器 |
二、主机、虚拟机通讯
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数据库。
成功完成读写分离配置。
内容总结
以上是互联网集市为您收集整理的WTM(ASP.NET Core)配置读写分离(SqlServer)全部内容,希望文章能够帮你解决WTM(ASP.NET Core)配置读写分离(SqlServer)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。