.NET中大型项目开发必备(4)--数据库的读写分离


本文讲述的数据库读写分离的实现方式,是基于前述“数据库的负载均衡”这篇文章的内容发展而来,请先对其阅读参考。

 

在某些大型应用系统中,往往需要把数据库的“读操作”与“写操作”分为两个数据库(甚至两组数据库)分开操作,以达到读写分离的目的。

要实现数据库的读写分离,只需在前述“数据库的负载均衡“这篇文章的内容上做两点修改即可实现:

一是在DeveloperSharp.xml配置文件中设置两个DatabaseCluster节点分别对应“读数据库”与“写数据库”。

二是建立两个“负载均衡器”类分别对应“读的DatabaseCluster节点”与“写的DatabaseCluster节点”。

 

举例如下,我们在数据库服务器中创建一个BaseRead数据库专门用作读操作,然后再创建一个BaseWrite数据库专门用作写操作。随后,我们的DeveloperSharp.xml配置文件则修改为如下:

<?xml version="1.0" encoding="utf-8" ?>
<DeveloperSharp>
    <DatabaseClusterList>
        <DatabaseCluster Id="BRead">
            <Database Id="A1" Enable="true" Weight="100" DatabaseType="SqlServer" ConnectionString="Server=localhost;Database=BaseRead;Uid=sa;Pwd=123"/>
        </DatabaseCluster>
        <DatabaseCluster Id="BWrite">
            <Database Id="B1" Enable="true" Weight="100" DatabaseType="SqlServer" ConnectionString="Server=localhost;Database=BaseWrite;Uid=sa;Pwd=123"/>
        </DatabaseCluster>
    </DatabaseClusterList> 
</DeveloperSharp>

注意,其中两个DatabaseCluster节点的Id属性值分别为BRead与BWrite。

 

接着,我们再创建两个“负载均衡器”类(Base4Read与Base4Write)分别对应BRead与BWrite。如下所示:

    [DeveloperSharp.Structure.Model.LoadBalance.DataSourceCluster("BRead")]
    public class Base4Read : DeveloperSharp.Structure.Model.DataLayer
    {
        //类中没有任何代码
    }

    [DeveloperSharp.Structure.Model.LoadBalance.DataSourceCluster("BWrite")]
    public class Base4Write : DeveloperSharp.Structure.Model.DataLayer
    {
        //类中没有任何代码
    }

此后,我们只需在相关程序代码中区分使用Base4Read与Base4Write这两个类,即可灵活实现数据库的读写分离。

 

推荐阅读

 

引用来源:https://www.cnblogs.com/DeveloperSharp/p/15824790.html

版权声明:本文为YES开发框架网发布内容,转载请附上原文出处连接
管理员
上一篇:.NET中大型项目开发必备(5)--Web服务/WebApi的负载均衡
下一篇:.NET中大型项目开发必备(1)--UUID全球通用唯一识别码
评论列表

#1楼 213 2023-10-07 22:36
DeveloperSharps搜集用户隐私,务必不要使用
发表评论

评论内容
昵称:
关联文章

.NET大型项目开发必备(4)--数据库分离
.NET大型项目开发必备(8)--高效分页
.NET大型项目开发必备(6)--IUtility工具介绍
.NET大型项目开发必备(7)--ORM数据库访问技术
.NET大型项目开发必备(10)--图片裁剪、缩放、与加水印
.NET大型项目开发必备(2)--CORS跨域访问
.NET大型项目开发必备(5)--Web服务/WebApi负载均衡
.NET大型项目开发必备(1)--UUID全球通用唯一识别码
.NET大型项目开发必备(12)--使用MQ消息队列
.NET大型项目开发必备(9)--http请求调用(Post与Get)
YES-WEB快速开发框架,.NET WEB开发平台,高效web项目开发框架
有限在线用户场景,前后端分离是多此一举
VS2022添加支持.Net Framwork4.0方法
03、4G 收款播报机
.Net Core 5.x Api开发笔记 -- 基础日志(Log4Net)(八)
.NET Core 项目windows server部署
在Winform项目和Web API.NetCore项目使用Serilog 来记录日志信息
.NET Core鉴权授权正确方式(.NET5)
ASP.NET+MVC入门踩坑笔记 (一) 创建项目 项目配置运行 以及简单Api搭建
.NET Core 运行时T4模板使用,T4生成代码

联系我们
联系电话:15090125178(微信同号)
电子邮箱:garson_zhang@163.com
站长微信二维码
微信二维码