浅谈管理软件数据库负载均衡及实现 (转)
来源:互联网 发布:非结构化数据存储 编辑:程序博客网 时间:2024/04/30 10:31
在我的系统里面一直想加这个功能,但觉得实在不靠谱,不但要考虑稳定性,而且这样的设计会给系统带来多大性能上的提高也是必须先考虑的,如果没有性能的提高多稳定也是没作用的,不过今天还是拿出来给大家看看,也帮忙考虑一下。
Winform和Webform在负载均衡处理的大部分时候有些不太一样的重点,Winform偏重点可能是数据库的负载均衡,而Webform重点偏向的是网络负载均衡(注:Webform里数据库的负载均衡也是一样的重要)。
系统定位Winform应用,SQL Server系列数据库(Oracle、MySQL就可以用自带的),面向中小企业,注册用户数量大概会在1000以下,按网友老马的算法,平均在线用户数是注册用户数的1/3,大概是333,再按大概是50%的请求交换,大概是200个并发,显然瓶颈应该不会在这里。
那么对于业务复杂的管理系统来说如果数据库设计不当或者数据库设计不得不冗余时,数据库的瓶颈应该是第一时间感受得到的。我有想过把单据表在服务端中支持库表散列,当用户批量提取数据时由系统自动处理并返回结果,但这样的设计对于报表的二次开发来说应该是一个负担。如果分成个应用服务器,那么数据就比较松散,也不利于一些功能开发。而且我想我暂时也没条件做这么大的项目,先考虑现状:并发的用户数不多,数据库存取的数据量大,业务复杂导致数据查询复杂。
回顾现有的项目,SQL Server 对于单表100W数据的处理速度应该是可以接受的,包括简单的SQL查询也可以得到优化,对于复杂的SQL查询可能就有点吃力了,CPU100%,看了关于SQL Server上实现负载均衡集群的一些相关资料后,实现原理大概是,写数据时往多个数据库服务器同时写,读取的时候“随机”从一台服务器里读取。关键在于实现多个数据库的实时同步,数据要保证一致而且消耗要小效率要高。
对于我的管理系统来说,客户端是通过TCP向服务端提交数据,由服务端处理并读/写数据库,我的想法是:在服务器读数据时“随机”(轮回算法)从一台服务器里读,而写数据时往多个数据库服务器同时写。
这种做法一方面,稳定性很难说,没实现出来,另一方面对于常规的使用数据库导入数据类似这样的操作会变得更复杂了。
代码已经实现了一部分了,不敢更新上去,毕竟其中一个用到的项目是政府的,如果数据一不小心弄错了,可能会导致麻烦甚至官司。
希望各位高手、牛人给小弟一些指导,在此先谢过。!
后记:能力提升 - 来源于从别人的指导中学习进步。文笔不怎么样,旨在分享!
- 浅谈管理软件数据库负载均衡及实现 (转)
- VMware+Redhat9环境下实现LVS负载均衡系统(一、内核补丁及管理软件)
- 负载均衡架构及实现
- 浅谈Nginx负载均衡原理与实现
- 浅谈Nginx负载均衡原理与实现
- 浅谈Nginx负载均衡原理与实现
- 浅谈Nginx负载均衡原理与实现
- 【转】使用spring的动态路由实现数据库负载均衡
- 浅谈负载均衡
- 浅谈负载均衡
- Nginx 负载均衡 浅谈
- 实现PostgreSQL数据库服务器的负载均衡
- 如何实现mssql数据库负载均衡
- 利用nginx实现数据库的负载均衡
- SQL Server数据库实现负载均衡
- 利用dubbo实现数据库的负载均衡
- 常见负载均衡算法及java实现
- 负载均衡原理及实现方式
- SQL Server 2008请参阅“对象资源管理器详细信息”了解此文件夹中的对象
- 看看斯坦福大学是如何教学生编程的
- 一道超级好的笔试题
- 银行ECIF概述
- blog搬家
- 浅谈管理软件数据库负载均衡及实现 (转)
- 整理了一个多数据库通用操作类
- [转]3D编程的4个境界
- save my post
- Frame 添加应用模块
- 用Ant完成生成javadoc的任务
- NoSQL会取代SQL数据库吗?
- 利用CVSNT在Eclipse中使用CVS 1 - 5(转载)
- 水晶报表中显示CheckBox