搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
小小林熬夜学编程
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
Proteus8 交流220V电压源的两种设置方法_proteus交流电压源
2
上弦外媒新闻发稿:2024年度国外主流新闻媒体和海外媒体软文分发平台有哪些?
3
实验三 关系代数_关系代数至少选修两门课
4
图像分类实战:mobilenetv2从训练到TensorRT部署(pytorch)_mobilenetv2训练
5
AI人工智能 Agent:在智能医疗中的应用
6
美团内推面试记录_美团内推挂掉内推人知道吗
7
《自然语言处理简明教程》读书笔记:第十四章 文本数据挖掘_tdm数据与文本挖掘
8
终端make命令和Git学习
9
Can‘t find third_party/gtest. Run git submodule update --init, or disable with CMake -DBUILD_TEST
10
mac pro M1/M2/M3(ARM)安装:VMWare Fusion及linux(centos7/ubuntu)(一)_centos-7-aarch64-08191738
当前位置:
article
> 正文
大型分布式数据库应用的案例_分布式数据库举例
作者:小小林熬夜学编程 | 2024-06-07 18:29:18
赞
踩
分布式数据库举例
网格式大型分布式数据库中间件(Cluster Killer)
1
背景
我们知道数据是一个公司的命脉,随着业务越做越大,数据量也会越来越大,计算也会越来越复杂,性能,可靠性,可扩展性的需求就会越来越强烈,这个时候一个集中式的数据库显然已经满足不了需求了。对于技术决策者来说有两条路可以走,第一:按照现有的大型数据库的解决方案,比如
SQL SERVER Cluster
或者
Oracle RAC
等
,
但是这也就等于走上了一条烧钱的道路,小则几十万,大则上百万乃至更多;第二:使用真正能够扩展的分布式数据库,利用中小型服务器甚至是
PC
机的累加来替代大型的服务器,这也是很多公司希望的,却苦于没有合适产品,现在有了
ClusterKiller
,用它真正能给您带来:
高性能,高可用性,高扩展性,高性价比。
http://www.mediafire.com/?bd0bdjm2gxh
介绍的录像版本
http://www.mediafire.com/?0tygenydtdg
demo的录像版本
http://www.mediafire.com/?czceymw5dxz
试用版
交流方式:msn:web668@hotmail.com;QQ:
39868224;手机:13810901198
2
方案比较
2.1
SQL SERVER
的集群模式
这种结构只能说是一种故障转移的机制,当有一个节点出现问题后把负载转移到另一个节点上。在负载能力上和扩展性上没有任何办法,而且还浪费了硬件资源
2.2
Oracle Real Application Clusters (RAC)
Oracle Rac最多可支持64个节点,基本上算是解决了性能,扩展性的问题了,但是它在存储上还是一个单点,且不说出现故障怎么办,IO也可能会成为性能瓶颈。 我们都知道一个数据库大到一定程度的时候,在物理上分区才能从根本上解决问题,对几十万数据进行查找和几百万上千万的数据进行查找在系统的消耗上以及响应时间上有着几何级的降低。
2.3
Cluster Killer
从图例中可以看出,下面的像网格一样的机器叫数据层,每个机器上存储着数据全集的一个分区,每一行组成一个数据全集,每一列是某个分区的多份相同的数据从而达到查询时负载均衡的效果,同时也是高可用性的保障:某个列的机器出现问题后其他的机器会负载访问。为了不让这样一个复杂的结构暴露给应用程序,在数据层上面又放了一层机器叫中间层,中间层
机器的数据库中驻留着的中间件来处理
SQL
语句,根据
SQL
语句的类型和条件来决定由哪些机器来提供服务。在中间层的外面加一个负载均衡设备,
这样应用程序或者开发
/
维护的人员通过负载均衡设备连接到中间层的任意一台机器上操作,感觉就像还在使用原来的一个数据库那样,易用性非常好。以下从各个角度具体的说明一下:
l
开发:中间件是宿主在数据库中的,所以面对数据库写
SQL
语句的方式没有改变,只需要把
SQL
语句从语法的角度上封装一下即可。还是利用原有的数据库的管理工具,不需要使用的新的管理工具,不需要改变原有的使用习惯,不需要学习新的知识。
l
数据库维护:对于维护表,存储过程,安全等数据库对象还是像使用一个数据库那样在中间层的任意一台机器上执行,中间件会抓取到更改并分发到其他的机器上。不会增加额外的工作量。
l
机器维护:因为这个结构比集中式的结构在机器的数量上要增加了很多,所以在机器层面上的维护成本比以前要有所增加。不过对于机器的维护不会影响整个结构的可用性,只需要在中间层的任意一台机器上更改一下配置就可以把某台机器添加到结构中或从结构中移出。
l
诊断:当出现异常后会明确的指定出错原因以及出错的机器,另外还有执行日志详细的记录每个执行步骤的细节。
l
分区:支持多种数据类型的分区,分区方式有静态分区和线形增长两种方式。静态分区不言而喻就是一开始就要规划好分区的个数;线形增长方式就是一开始只有一个或少数几个分区列,随着数据量和访问的增长的时候再添加新的分区从而达到了线性扩展的效果
l
总结:中间件的定位和作用是只是把很多的数据库服务器联合起来最终实现高扩展性,高可用性以及高性能。许多关键的数据库技术比如事务,连接池,锁,安全等还是依靠数据库来完成,无论从研发成本还是实施的风险都降到最低。
2.4
指标比较
l
故障转移
/
可靠性
n
SQL SERVER Cluster
:能做到前面的计算节点的故障转移,后面的存储设备还是单点
n
Oracle RAC
:能做到前面的计算节点的故障转移,后面的存储设备还是单点
n
Cluster Killer
:从每个维度上都是可扩展的,所以无论从哪个维度上的机器损坏以后都能找到替代者从而实现故障转移。
l
负载均衡
n
SQL SERVER Cluster
:从它的工作机制上可以看出它的两个节点只能有一个处于工作状态,所以没有负载均衡能力
n
Oracle RAC
:它前面的几个计算节点是可以同时提供服务的,但是后面的存储设备只有一个。所以说是计算能够均载,存储不能均载
n
Cluster Killer
:即能够计算均载也能存储均载
l
扩展性
n
SQL SERVER Cluster
:只能够两个计算节点带一个存储组成
n
Oracle RAC
:最多
64
个节点带一个存储组成
n
Cluster Killer
:每个维度上都能扩展,而且能够根据数据的增加线形扩展,最小用两台机器就可以搭建起来,另外每个机器之间的关系是松散耦合的,扩展起来不需要复杂的安装,配置。
l
硬件要求
n
SQL SERVER Cluster
:因为要使用能够连接存储设备的服务器,而这类服务器的配置都很高,都是中高档服务器,价格不菲。而且还有一个节点在正常情况下是闲置的,所以性价比低
n
Oracle RAC
:它的硬件配置要求同上,但是起码没有闲置的资源,性价比中
n
Cluster Killer
:不需要每个机器的紧密耦合,对机器的配置没有要求,用买一个集群的钱可以买几十台小型服务器或者上百台的
PC
机,
Google
的分布式结构已经验证了它的高性价比。
3
成功案例
3.1
某大型求职
/
招聘网站
l
项目背景:给企业方使用的一个搜索个人简历的系统,特点是数据量大,查询条件复杂,更新频繁。具体数据为:简历主表700
万,子表从1600
万到2000
万不等;每天查询12
万次,40%
的查询条件中带有关键词;个人用户每天新增/
更新简历的事务数为120
万次。
l
解决方案:使用30
台DELL 2950小
型PC
服务器搭建起分布式数据库结构。
l
性能测试数据:
n
测试模型:查询
n
查询条件:大于等于线上用户的实际条件
n
测试工具:LoadRunner8.0
n
测试时间:20
小时
n
并发数:50
n
响应时间:平均1.5
秒,90%
的响应时间在1.9
秒以下,方差:1.1
n
查询次数:成功487325
,超时:98
,没有其它类型错误
l
收益:
n
因为组件不会影响业务逻辑,所以业务程序不用重构,只用2
天就升级到新的架构上
n
查询时间从原来的10
秒缩减到不到1
秒,92%
的查询在秒以下,大大提高客户体验
n
真正的7*24
的持续提供服务
n
系统的扩展能力大大增强,使得客户有能力上原来不能上的更复杂的业务逻辑,建立更好的搜索模型,从而提升了客户在行业内的竞争实力。
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/686579
推荐阅读
article
微软
发现
一个
ChromeOS
远程
内存损坏
漏洞
...
微软方面近日公布了他们
发现
的有关
ChromeOS
漏洞
的技术细节。公告指出,该公司在
ChromeOS
组件中
发现
了一...
赞
踩
article
mysql
中
nvl
_
oracle
中
nvl
函数
在
mysql
里面怎么使用...
Oracle
中
函数
以前介绍的字符串处理,日期
函数
,数学
函数
,以及转换
函数
等等,还有一类
函数
是通用
函数
。主要有:NVL,N...
赞
踩
article
深度
学习
:
卷积
神经网络
(
CNN
)简介_
卷积
神经网络
是一种建模方法吗...
本文转自:https://blog.csdn.net/lyxleft/article/details/85954587 ...
赞
踩
article
论中国
2019
管理学
EI
会议
资源
产业化发展方略_中国
管理学
年会是ei
会议
吗...
中国是
2019
管理学
EI
会议
资源
大国,发展
2019
管理学
EI
会议
产业具有得天独厚的
资源
优势。要充分发挥
2019
管理学
EI
...
赞
踩
article
神经网络
输入
数据
预
处理
,
神经网络
自然语言
处理
_
神经网络
训练
数据
预
处理
...
因为多层
神经网络
被证明能够耦合任意非线性函数,通过一些配置能让网络去做以前需要人工参与的特征设计这些工作,然后配置合适的...
赞
踩
article
【已解决】
OSError
:
could
not
find
or
load
spatialindex
_...
【已解决】
OSError
:
could
not
find
or
load
spatialindex
_c-64.
dll
我通...
赞
踩
article
1
+x
中级
知识点_
id
:37
1
3...
当指定列的值大于返回列表的最大值时,此比较运算符与 ALL 运算符的计算结果为 TRUE。当指定列的值小于返回列表的最小...
赞
踩
article
CDGA
|
数据
治理
中
数据
如何
分类
分级
呢?_
数据
分类
分级
新增
数据
管理
方法
...
CDGA
|
数据
治理
中
数据
如何
分类
分级
呢?
数据
分类
是
数据
管理
的第一步,如果企业不对
数据
进行
分类
分级
,就谈不上
数据
治理
和
数据
...
赞
踩
article
想
学
fpga
开发
该怎么
入门
?_
fpga
如何
入门
开发
...
做过FPGA的都知道,80%左右的设计都可以通过计数器、状态机、FIFO或者RAM去实现,讲解这几种结构的设计的书有很多...
赞
踩
article
Mech
a
nisms for
Deployment
a
nd Running
a
H
a
doop
+Sp
a
...
大数据集市的蓬勃发展给企业、政府、媒体等提供海量的数据资源。随着
H
a
doop
和
Sp
a
rk
等开源工具的不断发展,越来越多的...
赞
踩
article
@
拔
赤:
前端开发
十日谈
...
一直想写这篇“
十日谈
”,聊聊我对Web
前端开发
的体会,顺便解答下周围不少人的困惑和迷惘。我不打算聊太多技术,我想,通过技...
赞
踩
article
查找
和
免费
下载
文献
的方式汇总_怎么在
engineering
village
下载
文献
...
目录1
查找
文献
的网站(1)Google Scholar(2)Semantic Scholar(3)Springer L...
赞
踩
article
大
数据
从入门到实战——
Hive
综合应用案例 ——学生
成绩
查询_第
1
关:
计算
每个
班的
语文
总
成绩
和
数学
总...
Hive
综合应用案例 — 学生
成绩
查询第
1
关
计算
每个
班的
语文
总
成绩
和
数学
总
成绩
第2关 查询选修了3门以上的课程的学生姓...
赞
踩
article
springboot
实现
发送
邮箱
验证码
_
springboot
发送
邮箱
验证码
...
在邮箱官网开放SMTP授权,获取相应密钥,才可以进行
发送
邮件。第二步、在application.yml中配置邮箱连接信息...
赞
踩
article
STM32F103
独立
按键
控制
LED
灯_
stm32f103
按键
控制
led
亮灭...
从原理图来看,KEY0、KEY1 和 KEY2 是低电平有效的,而 KEY_UP 则是高电平有 效的,并且外部都没有上下...
赞
踩
article
编写
高质量
的
Dart
程序_
dart
程序...
编写
高质量
的
Dart
正在针当前实践和
Dart
2在更新。如果你发现了一些没有被发现的问题,请提交bug。在过去的几年中,我...
赞
踩
article
【EI
会议
征稿通知】2024年
计算机
与
多媒体技术
国际
学术
会议
(ICCMT 2024)_
2024ei
国...
多媒体技术
:绘图技术,数字媒体艺术,多媒体应用艺术设计,软件工程、系统工程、控制技术、图像处理、加密技术、信息产业、服务...
赞
踩
article
发生未处理的
win32
异常_
magnet
:
?xt=urn
:
btih
:
067caf9b20aec9b6...
安装Pycharm后,运行时报“发生未处理的
win32
异常”错误。解决方法:进入Visual Studio中,选择【工具...
赞
踩
article
Python3
+
pyQt5
+
QtDesignner
实现窗口化
猜
数字
游戏
!_qt
猜
数字
游戏
代码
源文件...
描述:使用
QtDesignner
设计界面,
pyQt5
+python3实现主体方法制作的
猜
数字
游戏
。
游戏
规则:先选择
游戏
等...
赞
踩
article
数据结构
(
链表
)_
链表
数据结构
...
一:什么是
链表
?1.
链表
是以节点的方式来储存2.每个节点包含data域,next域:指向下一个节点。3.
链表
的各个节点不...
赞
踩
相关标签
microsoft
安全
网络
mysql中nvl
深度学习
卷积神经
EI会议检索期刊
EI会议论文是什么意思
EI收录会议论文查询
EI会议代发价格
EI会议EI期刊快速
自然语言处理
神经网络
机器学习
python
spyder
sql
数据库
java
CDGA
CDGP
DAMA
fpga开发
fpga
硬件工程