Upload
mysqlops
View
3.271
Download
0
Embed Size (px)
DESCRIPTION
mysql,伪分布式,数据库,架构
Citation preview
主要内容MySQL的复制应用架构;
何为分布式/伪分布式数据库架构;
分布式/伪分布式数据库架构的优缺点;
伪分布式数据库架构的应用场景;
2类具有通用性伪分布式数据库架构的设计思路:
适用于电子商务、大型论坛、SNS网站、即时通信等领域;
适用于SNS游戏、统计分析等领域;
DTCC2011DTCC2011
MYSQL的复制应用架构
db_1a db_2a
VIP/DNS/mysql_proxy等
程序服务器_1 程序服务器_2 程序服务器_N
Write/Read
DTCC2011DTCC2011
何为分布式数据库架构定义由一组存储在网络中不同服务器上的数据组成,网络中每个节点具有独
立执行局部应用的能力,也可以通过网络通信系统执行全局应用的能力。
DTCC2011DTCC2011
何为分布式数据库架构LDBMS
建立和管理局部数据库,提供场地自治能力,执行局部应用及全局查询的
子查询;GDBMS
提供分布透明性,协调全局事务执行,协调各局部DBMS完成全局应用,保
证数据库全局一致性、执行并发控制、实现更新同步和提供全局恢复等功能;
全局数据字典
存放全局概念模式、分片模式、分布模式的定义以及各模式之间映像的定
义,存放有关用户存取权限的定义,保证全局用户的权限和数据库的安全,
存放数据完整性约束条件定义;
通信管理
实现分布式数据库各场地之间消息和数据传递;
DTCC2011DTCC2011
分布式数据库架构优缺点分布式数据库的特征1>.数据独立性:数据逻辑独立性、物理独立性、分布独立性;
2>.适当数据的冗余,实现高可用性;
3>.集中和自治相结合的控制结构;
4>.全局的一致性、可串行性、可恢复性;
分布式数据库缺点1>.部署复杂,对硬件、网络等环境要求更高;
2>.事务处理、数据查询的性能相比较存在下降;
3>.商业产品费用较贵,开源产品暂时存在瑕疵;
4>.技术实现复杂,开发成本极高;
DTCC2011DTCC2011
伪分布式数据库架构优缺点伪分布式数据库的优点
1>.提供类似分布式数据库的数据存取透明性;
2>.解决集中式数据库的扩展局限性;
3>.提高数据库服务的性能、可用性、可靠性;
4>.实现技术不难,开发、维护成本可控;
伪分布式数据库缺点
1>.不支持分布式事务;
2>.数据拆分之后出现数据合并难度与部分功能限制;
3>.数据库设计技巧难度加大;
DTCC2011DTCC2011
伪分布式数据库架构的应用场景电子商务平台(C2C、B2B、B2C)
SNS平台;
IM即时通信软件;
电子邮件系统;
日志分析系统;
SNS游戏;
其他平台型网站;
应用场景总结:大数据容量,且垂直升级扩展受限的;
高并发事务型的;
数据更新量远大于数据读取,且数据更新量非常大、频繁;
DTCC2011DTCC2011
伪分布式数据库架构的基本功能前端通信协议:MySQL通信协议、JSON协议;
后端通信协议:MySQL通信协议;
存取路由算法控制器:HASH值法、数据库路由表法;
连接池:数据库连接池、应用程序连接池(可选);
负载均衡:客户端调用API函数接口;
解析器:SQL解析器、JSON字符串解析器;
查询记录集合并缓冲区;
序列生成器;
JSON字符串操作合并队列模块;
中间件之间的数据同步队列模块;
MemCache管理模块;
第三方平台ID转换器;
数据库可用性探测模块;
命令行管理接口;
DTCC2011DTCC2011
伪分布式数据库的路由规则第一类通用领域的伪分布式数据库架构的路由规则:HASH值法例如:
水平拆分:对UID进行HASH运算得到一个值域:0~1023,再划分成N份;
垂直拆分:根据数据中间件缓存数据库名称、表名称的数组值,判断是否是某垂直拆分库的对象;
DTCC2011DTCC2011
序列生成器的设计功能
实现MySQL自带的字段值自动增长等效的功能;
同一应用集群中数据库表的自增类型字段值具有全局唯一性;
支持数据库级别的水平拆分表,同时还需要支持数据库内部的表二次水平
拆分,其ID值都来源于同一条配置记录;
数据库表结构
DTCC2011DTCC2011
伪分布式数据库架构__电子商务等领域DTCC2011DTCC2011
伪分布式数据库架构__电子商务等领域DTCC2011DTCC2011
伪分布式数据库架构__SNS游戏等领域DTCC2011DTCC2011
伪分布式数据库架构__SNS游戏等领域DTCC2011DTCC2011
总结1. 多从业务、开发成本和维护成本等角度分析、思考,解决当
下难题,着眼未来可预见的一至三年面临的核心问题;
2.采用可行的、成熟的、稳定的开发技术和架构;
3.业务支持底线要远远大于80%,上线可无限接近且不超过99%;
4.合理规避架构中的单点故障;
5.合理利用数据存取设计技巧,规避架构带来的弊端;
6.充分权衡开发成本、伪分布式程序服务器和数据库等维护成本;
7.力争做到原应用程序不需要修改任何代码;
DTCC2011DTCC2011
结束
问答 & 感谢
会后网络交流联系方式MSN:[email protected] ID:jinguanding新浪微博:http://weibo.com/mysqlops
DTCC2011DTCC2011