当前位置: 首页 > news >正文

分库分表中间件特性分析

随着互联网行业的兴起, 分库分表中间件在很多大型网站获得了成功应用。分库分表中间件本身不具备完整的数据库特性,毕竟顾名思义只是一个中间件,还需要搭建数个关系数据库系统作为服务节点。有些传统企业希望借鉴互联网企业的经验,引入这类中间件来构件分布式系统,以达到降低成本,提升系统性能和灵活性的目的,但是传统企业引入此类架构的风险不容小觑。

    SQL语言特性非常丰富,是上层应用操作数据库的标准工具。但是几乎所有的中间件对SQL的支持非常弱,对应用施加种种限制,有的甚至连数据库基本的唯一性约束都无法提供,连接、子查询、分类聚合、排序等基本操作要么需要符合极为有限的条件,要么索性不支持,把特性优雅功能强大的SQL语言限制得支离破碎,成熟的应用开发模式完全不适用,很多数据库的功能被迫提升到业务层,增加项目的复杂度,应用开发或调整的成本和风险违背了企业引入此类架构的初衷。

    分布式增加了系统复杂性,涉及的软硬件较多, 出问题的概率急剧上升,数据一致性的保证复杂化,增加了维护的麻烦。中间件作为代理,存取数据需要增加至少一次交互,不可避免有性能损耗。很少有这类系统能提供以tpc-c为模型的事务处理性能指标。

  分库分表中间件的分布系统中,数据被分布到多个节点,但是目前的中间件并没有能力有效去管理这些分布数据,SQL功能被肢解就是直接体现,这导致对数据做一些简单的统计分析报表都成了很大的难题。当然也有解决办法,不嫌麻烦的话把这些数据迁移到另外一个系统,比如时尚的hadoop,再编写算法运行一些批作业来完成分析工作,当然这需要额外的投资。

    数据库系统作为管理数据,共享数据的平台,需要保证数据的一致性、完整性,方便数据共享,随时提供存取和分析,才能最大体现其价值。目前典型的单机服务器,或基于单机集中式模型构建的读写分离等集群,无论是CPU计算能力,内外存的存储容量,都足以应付传统企业的大部分业务,高性能大容量的PCI-E存储卡的应用也部分抵消了分布式IO优势。采购多台低配的机器去配置一个小型基于分库分表的分布式系统,是不可取的做法。用类似或更底的预算,去配置一台配置稍高的单机系统,采用集中共享模式,将消除中间件架构带来的一切麻烦,极大简化系统维护工作量,提升系统综合效能。

转载于:https://www.cnblogs.com/xxt19970908/p/6685788.html

相关文章:

  • 百科知识 scm文件如何打开
  • PHP之旅3 php数组以及遍历数组 以及each() list() foreach()
  • Spring配置activemq异步消息监听器
  • HTML起步——学习2
  • 1.Zabbix 3.0 基础
  • bzoj4823[CQOI2017]老C的方块
  • 工资计算(用SQL来计算)
  • 电梯演说模板练习
  • 优达学城-并行编程-Unit2 硬件内存
  • ajax,json
  • 修饰符
  • 网络中数据的传输过程
  • 如何把你的Windows PC变成瘦客户机
  • codevs 1086 栈(Catalan数)
  • Java设计模式---策略模式
  • 深入了解以太坊
  • JavaScript 如何正确处理 Unicode 编码问题!
  • 【391天】每日项目总结系列128(2018.03.03)
  • Docker入门(二) - Dockerfile
  • egg(89)--egg之redis的发布和订阅
  • express + mock 让前后台并行开发
  • Java IO学习笔记一
  • JavaScript 奇技淫巧
  • nginx 配置多 域名 + 多 https
  • Spring声明式事务管理之一:五大属性分析
  • Storybook 5.0正式发布:有史以来变化最大的版本\n
  • windows下如何用phpstorm同步测试服务器
  • 安卓应用性能调试和优化经验分享
  • 汉诺塔算法
  • 解析带emoji和链接的聊天系统消息
  • 利用jquery编写加法运算验证码
  • 详解NodeJs流之一
  • 【运维趟坑回忆录】vpc迁移 - 吃螃蟹之路
  • (4)logging(日志模块)
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (多级缓存)缓存同步
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • (蓝桥杯每日一题)平方末尾及补充(常用的字符串函数功能)
  • (四)Linux Shell编程——输入输出重定向
  • (五)大数据实战——使用模板虚拟机实现hadoop集群虚拟机克隆及网络相关配置
  • (一)使用IDEA创建Maven项目和Maven使用入门(配图详解)
  • (转)Unity3DUnity3D在android下调试
  • (转)程序员技术练级攻略
  • ******之网络***——物理***
  • ***原理与防范
  • *上位机的定义
  • .NET 4 并行(多核)“.NET研究”编程系列之二 从Task开始
  • .net wcf memory gates checking failed
  • .net 按比例显示图片的缩略图
  • .net程序集学习心得
  • .Net程序猿乐Android发展---(10)框架布局FrameLayout
  • .NET开发人员必知的八个网站
  • :中兴通讯为何成功
  • [ Linux ] Linux信号概述 信号的产生