我们这里在本地用VMware Workstation建立了2台WindowsServer2012服务器,每台服务器都安装SqlServer2017开发版数据库。由于本人电脑只有8G内存,安装2个虚拟机已经非常卡了。 1、确定主机与虚拟机通讯是否正常。本人采用的是NAT连接方式,主机直接ping虚拟机ip是畅通的。如果不通,详细参照。 2、将2台服务器的TCP连接打开,详细参照。设置完成之后,直接用本地计算机安装的SSMS连接虚拟机中的SqlServer实例。确定2个实例都能正常连接。 在WTM生成项目,并下载。项目appsettings.json,将数据库连接字符串修改为使用账号密码登录。设置完成后启动项目,并查看Node1(192.168.137.128)数据库是否正常生成数据表。 在Node1(192.168.137.128)发布订阅【数据库名称GasDataReport_db】,在Node2(192.168.137.129)接收订阅【数据库名称zcfl】。完成数据库主从设置。关于这一块,详细参照。 后续会写一篇关于alwayson的博客。 修改项目appsettings.json,将数据库连接字符串修改为读写分离模式。 框架会自动识别ConnectionString中以下划线+数字结尾的key值,作为只读库。 配置文件定义了两个连接字符串,default是写库,default_1是只读库。 框架读写分离逻辑是,就是[HttpPost]的会走写库,其他走读库,另外可以通过[FixConnection]指定用读库还是写库。 在HomeController里添加Test方法,并在数据完成搜索的地方打断点。 进入系统后访问Test方法。/Home/Test 进入断点 在即时窗口中输入this.DC回车查看数据库连接信息。 这里我们可以看到,获取数据的Sqlserver实例是Node2(192.168.137.129),zxfl数据库。 成功完成读写分离配置。
为了提升网站的性能,我们可以采用数据库读写分离的方案。在WTM框架中,只需要简单配置即可完成数据库读写分离操作。官方文档
一、环境搭建
计算机名称
Sql实例名称
内存
硬盘
ip
说明
Node1
Node1
2G
60G
192.168.137.128
主数据库服务器
Node2
Node2
2G
60G
192.168.137.129
从数据库服务器
二、主机、虚拟机通讯
三、配置WTM项目
{ "Key": "default", "Value": "Server=192.168.137.128;Database=GasDataReport_db;User ID=sa;Password=000000;" },
四、配置数据库主从
五、配置WTM读写分离
"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;" } ],
六、验证是否读写分离。
public async Task<IActionResult> Test() { var list = await DC.Set<FrameworkUserBase>().ToListAsync(); return Json(list);//此处打断点 }
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算