• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ASP.NET > Discuz!NT数据库读写分离方案详解

Discuz!NT数据库读写分离方案详解

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了discuz nt,discuz nt官网,discuz nt下载,powered by discuz nt,discuz nt源码等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
目前在Discuz!NT这个产品中,数据库作为数据持久化工具,必定在并发访问频繁且负载压力较大的情况下成 为系统性能的‘瓶颈'。即使使用本地缓存等方式来解决频繁访问数据库的问题,但仍旧会有大量的并发请求要访问动态数据,虽然 SQL2005及2008以上版本中性能不断提升,查询计划和存储过程运行得越来越高效,但最终还是 要面临‘瓶颈'这一问 题。当然这也是许多大型网站不断研究探索各式各样的方案来有效降低数据访问负荷的原 因, 其中的‘读写分离'方案就是一种被广泛采用的方案。
      Discuz!NT这个产品在其企业版中提供了对‘读写分离'机制的支持,使对CPU及内存消耗严重的操作(CUD)被 分离到一台或几台性能很高的机器上,而将频繁读取的操作(select)放到几台配置较低的机器上,然后通过‘事务 发布订阅机制',实现了在多个sqlserver数据库之间快速高效同步数据,从而达到了将‘读写请求'按实际负载 情况进行均衡分布的效果。

      下面就简要介绍一下其实现思路。注:有关数据同步的工具已在sqlserver中自带了,可以参考这篇文章。

      将相应的数据由Master(主)数据库中‘发布'出来,然后使用推送的方式(注:事务发布可以指定是‘通过主 数据库推送' 还是‘订阅服务器去获取')发送到订阅它的数据库中,就实现了数据同步功能。

      下面就介绍一下如何通过改变既有代码来实现在‘几个从数据库(类似快照)'间进行读取数据的负载均衡。

      原有的代码中因为使用了分层机制,所以我们只要在‘数据访问层'动一下心思就可以了。在这里我的一个设 计思路就是不改变已有的数据库访问接口(包括参数等)的前提下,实现底层自动将现有的数据访问操作进行负载 均衡。这样做的好处不用多说了,同时也让这个负载均衡功能与数据访问层相分离,不要耦合的太紧密,同时如果不晓得底层 的实现原理也可以只通过一个开关(后面会介绍),就可以让自己的sql语句自动实现动态负载均衡。

      说到这里,我来对照代码进一步阐述:

      首先就是(Discuz.Data\DbHelper.cs)代码,主要变动如下(新增方法部分):   
代码如下
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Discuz!NT数据库读写分离方案详解
  • Discuz!NT 3与asp.net 整合的实例教程
  • discuz nt的退出实现代码
  • Discuz!nt 源文件变成乱码的解决方法

相关文章

  • 2017-05-11asp.net 源码保存 用程序分页
  • 2017-05-11ASP.NET 常用 文件上传方法第1/2页
  • 2017-05-11ASP.NET中Application全局对象用法实例浅析
  • 2017-05-11Asp.Net 无刷新文件上传并显示进度条的实现方法及思路
  • 2017-05-11asp.net JSONHelper JSON帮助类
  • 2017-05-11asp.net fileupload控件上传图片并预览图片
  • 2017-05-11ASP.NET MVC使用ActionFilterAttribute实现权限限制的方法(附demo源码下载)
  • 2017-05-11ASP.NET中画图形验证码的实现代码
  • 2017-05-11asp.net Gridview里添加汇总行
  • 2017-05-11ASP.NET编程中的十大技巧第1/2页

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 有关.NET参数传递的方式引发的思考
    • 动态组合SQL语句方式实现批量更新的实例
    • Asp.net防止盗链的实现原理分析
    • ASP.NET设置404页面返回302HTTP状态码的解决方法
    • asp.net 防止用户通过后退按钮重复提交表单
    • 在ASP.NET 2.0中操作数据之五十:为GridView控件添加Checkbox
    • asp.net Repeater 自增
    • ASP.NET 2.0,C#----图像特效处理
    • ASP.NET网站导航及导航控件如何使用
    • ASP.NET读取RSS的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有