最新文章:看我如何快速学习.Net(高可用数据采集平台)高并发数据采集的架构应用(Redis的应用)

问题点:

随着项目的增长,数据和数据表也成倍的增长,普通的单点数据库已经无法满足日常的增长的需要。为了能够给开发者提供透明化的数据库应用,也为了有益于项目的扩展、维护和应用,迫切需要分布式数据库的解决方案。

解决方案:

1.  Mysql Cluster :Mysql官方提供分布式集群的解决方案之一、具有较强的权威性。

2. Cobar: Taobao提供的分布式数据库的解决方案,经过一定的实践证明、简单易用,并且可以自定义分割算法。

3. 爱可生: MySQL分布式集群服务框架, 国内领先的开源数据库软件、数据平台整体解决方案和服务提供商。

4. Percona XtraDB Cluster 5.6: Percona提供,基于Mysql的另一分支优化过的数据库集群的解决方案。

5. 以及其它分布式数据库解决方案: 新浪、MySQL federated 引擎、Amoeba等。

基于以上较多的分布式解决方案,还是选择了淘宝的Cobar、开源而且经过实践证明已经足够满足日常的需要。

配置和应用:

     1.下载 :https://github.com/alibaba/cobar/wiki

2. 安装:1). Cobar是基于Java开发的分布式数据库应用,所以安装Cobar首先要安装JAVA JRE。

2).  解压,拷贝过去,运行startup.sh即可。

3.配置:

1)Server.xml 服务器配置

<user name="mysql">
<property name="password">mysql</property>
<property name="schemas">data_acquisition_server</property>
</user>

连接用户名、密码配置,客户端连接登入验证。schemas 主要对应schema.xml的定义。

2) Schema.xml 数据节点、数据表拆分配置

<!-- schema定义 -->
<schema name="data_acquisition_server" dataNode="dnDataAcquisitionMaster">
<table name="task" dataNode="dnDataAcquisitionChunk1,dnDataAcquisitionChunk2" rule="rule1" />
<table name="task_upload" dataNode="dnDataAcquisitionChunk1,dnDataAcquisitionChunk2" rule="rule1" />
<table name="task_source" dataNode="dnDataAcquisitionChunk1,dnDataAcquisitionChunk2" rule="rule1" />
</schema> <!-- 数据节点定义,数据节点由数据源和其他一些参数组织而成。-->
<dataNode name="dnDataAcquisitionMaster">
<property name="dataSource">
<dataSourceRef>dsServer[0]</dataSourceRef>
</property>
</dataNode>
<dataNode name="dnDataAcquisitionChunk1">
<property name="dataSource">
<dataSourceRef>dsServer[1]</dataSourceRef>
</property>
</dataNode>
<dataNode name="dnDataAcquisitionChunk2">
<property name="dataSource">
<dataSourceRef>dsServer[2]</dataSourceRef>
</property>
</dataNode> <!-- 数据源定义,数据源是一个具体的后端数据连接的表示。-->
<dataSource name="dsServer" type="mysql">
<property name="location">
<location>127.0.0.1:3306/db_data_acquisition_master</location>
<location>127.0.0.1:3306/db_data_acquisition_chunk1</location>
<location>127.0.0.1:3306/db_data_acquisition_chunk2</location>
</property>
<property name="user">root</property>
<property name="password">123456</property>
<property name="sqlMode">STRICT_TRANS_TABLES</property>
</dataSource>

3) Rule.xml 数据拆分算法配置

<!-- 路由规则定义,定义什么表,什么字段,采用什么路由算法 -->
<tableRule name="rule1">
<rule>
<columns>id</columns>
<algorithm><![CDATA[ func1(${id}) ]]></algorithm>
</rule>
</tableRule> <!-- 路由函数定义 -->
<function name="func1" class="com.alibaba.cobar.route.function.PartitionByLong">
<property name="partitionCount">2</property>
<property name="partitionLength">512</property>
</function>

4) 数据表创建

数据库:db_data_acquisition_master、db_data_acquisition_chunk1、db_data_acquisition_chunk2

数据表:1)db_data_acquisition_chunk1:task、task_source、task_upload

2)db_data_acquisition_chunk2:task、task_source、task_upload

当前的拆分规则、所有的表必需要有id但不能是自增长的。

4 客户端连接

可以使用任一Mysql连接工具进行连接,端口号为:8066

总结:

    现在的技术感觉越做越薄,多关注开源的解决方案,却成为必要的一项工作技能了。

Cobar分布式数据库的应用与实践的更多相关文章

  1. 数据库–Cobar分布式数据库集群MySQL中间件

    运行环境: 主机1:Ubuntu14.04 Desktop + MySQL5.5 + JDK 1.7(HP Z400)  内网IP地址:192.168.137.8 NODE1:Ubuntu 13.04 ...

  2. 【巨杉数据库SequoiaDB】巨杉Tech | 分布式数据库Sysbench测试最佳实践

    引言 作为一名DBA,时常需要对某些数据库进行一些基准测试,进而掌握数据库的性能情况.本文就针对sysbench展开介绍,帮助大家了解sysbench的一般使用方法. ​ sysbench简介 什么是 ...

  3. Mycat分布式数据库架构解决方案--Mycat的介绍

    echo编辑整理,欢迎转载,转载请声明文章来源.欢迎添加echo微信(微信号:t2421499075)交流学习. 百战不败,依不自称常胜,百败不颓,依能奋力前行.--这才是真正的堪称强大!!! 如果我 ...

  4. 分布式数据库中间件TDDL、Amoeba、Cobar、MyCAT架构比较分

    比较了业界流行的MySQL分布式数据库中间件,关于每个产品的介绍,网上的资料比较多,本文只是对几款产品的架构进行比较,从中可以看出中间件发展和演进路线 框架比较 TDDL Amoeba Cobar M ...

  5. 分布式数据库中间件–(3) Cobar对简单select命令的处理过程

    友情提示:非原文链接可能会影响您的阅读体验,欢迎查看原文.(http://blog.geekcome.com) 原文地址:http://blog.geekcome.com/archives/284 在 ...

  6. 基于Sql Server 2008的分布式数据库的实践(五)

    原文 基于Sql Server 2008的分布式数据库的实践(五) 程序设计 ------------------------------------------------------------- ...

  7. 基于Sql Server 2008的分布式数据库的实践(四)

    原文 基于Sql Server 2008的分布式数据库的实践(四) 数据库设计 1.E-R图 2.数据库创建 Win 7 1 create database V3 Win 2003 1 create  ...

  8. 基于Sql Server 2008的分布式数据库的实践(三)

    原文 基于Sql Server 2008的分布式数据库的实践(三) 配置PHP 1.打开PHP配置文件,找到extension=php_mssql.dll,将前面的注释符号去掉 2.找到mssql.s ...

  9. 基于Sql Server 2008的分布式数据库的实践(二)

    原文 基于Sql Server 2008的分布式数据库的实践(二) 从Win7连接Win2003的Sql Server 2008 1.新建链接服务器链接到Win2003的Sql Server 2008 ...

随机推荐

  1. Django开发网站(四)

    模型: 配置数据库 首先保证数据库已经安装,默认在Ubuntu下已经安装了sqlite3数据库,然后在项目名下的配置文件settings.py修改如下代码: 安装sqlite3 DATABASES = ...

  2. C语言多线程编程

    HANDLE CreateThread(LPSECURITY_ATTRIBUTES lpThreadAttributes, DWORD dwStackSize, LPTHREAD_START_ROUT ...

  3. C# Winform程序请求管理员权限

    如果你的Winform程序需要管理员权限才能正常执行,请加入如下代码: static class Program { /// <summary> /// 应用程序的主入口点. /// &l ...

  4. EXTJS 4.2 资料 控件之checkboxgroup的用法(动态数据)

    在开发中遇到两种情况:第一在新增窗体时,要动态加载CheckBox项:第二在修改时不但需要加载所有CheckBox项,还要并且选中之前新增时的选项 如图这是在修改页面的效果: 1.在新增窗体中动态加载 ...

  5. 用上新的电脑装上了VS2013了

    今天老魏终于把配置好的电脑拿回来了,16G的内存,I7 4770CPU.这回啊,老魏终于可以舍弃我的本本了,装上了SQL Server,虚拟机等等运行高内存的程序,感觉就是爽.明天老魏就可以用VS20 ...

  6. 获取不变的UDID-b

    iOS唯一标识的历史历程 iOS 6.0 在iOS6.0以前,是使用uniqueIdentifier来获取手机的唯一标识,后来苹果感觉这样会泄露用户隐藏,就封掉了这个方法: iOS 6.0系统新增了两 ...

  7. Java程序员的发展前景

    不知道什么时候开始,IT业初级程序员的工作性质与进城打工的"农民工"变得如此惊人的相似.很多IT公司的高管认为"人便宜,就是要用到坏掉,然后再找更便宜.更年轻的" ...

  8. 自定义Angular指令与jQuery实现的Bootstrap风格数据双向绑定的单选&多选下拉框

    先说点闲话,熟悉Angular的猿们会喜欢这个插件的. 00.本末倒置 不得不承认我是一个喜欢本末倒置的人,学生时代就喜欢先把晚交的作业先做,留着马上就要交的作业不做,然后慢悠悠做完不重要的作业,卧槽 ...

  9. 1509 -- Glass Beads POJ

    题意:求一个字符串的最小表示的开始下标 就当模板题写了 把字符串重复一遍,再建后缀自动机,贪心的选最小字典序在上面走len步 因为走出来的一定是子串,长度又是len,所以一定是原来的字符串旋转得到的, ...

  10. 团体程序设计天梯赛-练习集L2-002. 链表去重

    L2-002. 链表去重 时间限制 300 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 给定一个带整数键值的单链表L,本题要求你编写程序,删除 ...