由于业务本身的需求,有时需要构建分布式数据库。一个具有较好设计的分布式数据库,对于用户(调用者)来说透明,跟使用本地数据库一样。

本文准备使用中间件的架构,实现分布式数据库的构建。简单点说,调用者与中间件通信,有中间件与各个数据库通讯,完成基本数据操作,将结果返回给调用者。

注意:本文篇幅看似短小,文字间引用的文章链接都是需要各位读者详细阅读的。

本文中Amoeba+Mysql架构示意图

1,在虚拟机上构建Mysql server

本文使用的VM虚拟机,系统为ubuntu 14.04,安装好系统之后,通过apt安装mysql server,比较方便。安装完成之后,记得打开3306端口。

参考下面两个教程步骤,完成第一步的安装要求。

mysql安装     (安装完mysql即可,Apache等不需要装)

2,链接数据库

通过上一步可以构建若干(你开心就好)Mysql数据库,本文建了两个仅做实验验证。完成后在本地安装Navicat,验证数据连接无误。

点击【连接】按钮,输入上一步建立的sever的ip,用户名和密码。顺利连接会跟下图一样,显示链接成功。

3,配置Amoeba

安装Amoeba 直接执行以下命令即可:

wget https://jaist.dl.sourceforge.net/project/amoeba/Amoeba%20for%20mysql/2.x/amoeba-mysql-binary-2.0.1-BETA.tar.gz

mkdir /usr/local/amoeba-2.0.1tar xf amoeba-mysql-binary-2.0.1-BETA.tar.gz -C /usr/local/amoeba-2.0.1/

配置链接 (配置参考链接中第三步之后对amoeba配置方式),连接两个数据库。

然后可以执行下列代码运行Amoeba中间件:

/usr/local/amoeba-2.0.1/bin/amoeba start

权限问题出现的话,可能需要在代码前加 sudo

顺利的话可以直接连上数据库(怎么可能这么顺利呐?!),如果发生错误很大的可能性为常见的两种错误。

参考下面链接的解决办法: Amoeba报错解决方案

ubuntu 14.04默认java的安装在/usr/lib/jvm/java-7-openjdk-amd64下

设置JAVA_HOME环境变量,在bashrc文件最后加上:

export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64

export JRE_HOME=${JAVA_HOME}/jre

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

export PATH=${JAVA_HOME}/bin:$PATH

重启命令行窗口,再次运行Amoeba

如果正确配置的话,执行启动amoeba命令后,会有如下面的输出。此时amoeba对外提供MYSQL的服务可以看做是一个虚拟的MySQL数据库。

该数据库的地址为amoeba的ip,端口在配置过程中会有设置,默认为8066(从下图也能看出来)。

4,设置分片

上一步中笔者默认忽略了对数据库分片的设置。然而实际上分布式数据库最终要的就是对水平分片和竖直分片的设置。在amoeba中,是通过对conf文件夹中rule.xml文件进行配置实现的。

默认的rule.xml文件如下图。

所谓水平切分就是按照一定规则将记录存储在不同的服务器上,官方文档有详细的 示例解释

而垂直区分则是将一条记录的不同列按照约定存储在不同服务器上,可以对敏感重要资料起到一定的保护作用。官方示例

---------------------------------------------------------------------------------------

完成以上的步骤之后,你就可以的得到一个自己的分布式数据库,之后调用完全跟普通MYSQL数据库一样。笔者使用写了一个简单点JAVA小界面连接测试了搭建的数据库,over。

mysql分布式数据库_分布式数据库搭建详细教程相关推荐

  1. oracle网络加载错误怎么解决,Oracle加载数据库错误解决的方法详细教程

    今天小编给大家分享一篇关于Oracle加载数据库错误解决的方法详细教程,感兴趣的朋友跟小编一起来了解一下吧! 注意:安装时要保证Oracle安装目录不能带有中文字符 (如果第一次安装出现"加 ...

  2. visual studio2019连接SQL Server数据库,增删改查详细教程(C#代码)

    visual studio2019连接SQL Server数据库,增删改查详细教程(C#代码) 工具: 1.Visual Studio 2019 2.SQL Server数据库(我使用的2008) 操 ...

  3. mysql 8.0.22_最新版MySQL 8.0.22下载安装超详细教程(Windows 64位)

    前言 前几天下载安装了最新版的MySQL 8.0.22,遇到了不少问题,参考了一些方法,最终得以解决.今天将自己的安装过程记录下来,希望对各位有所帮助. 一.MySQL 8.0.22官网下载 点击进入 ...

  4. Win10 Anaconda下TensorFlow-GPU环境搭建详细教程(包含CUDA+cuDNN安装过程)(转载)...

    win7(win10也适用)系统安装GPU/CPU版tensorflow Win10 Anaconda下TensorFlow-GPU环境搭建详细教程(包含CUDA+cuDNN安装过程) 目录 2.配置 ...

  5. 2021最新微信影视小程序源码无限代开+搭建详细教程

    源码简介: 小程序可开通流量主,达到开通条件可以选择开通流量主 即可躺着赚钱(流量主可以刷上去,但不推荐,有被封风险) 该程序后端为苹果CMS,绝非网传泛滥源码! 花钱买的某团队自运营版本,百分百的完 ...

  6. mysql5.6.23winx64,mysql 5.6.23 winx64.zip安装详细教程

    windows上安装压缩包版的MySQL详细文档请参考 1.解压mysql-5.6.23-winx64.zip到任意目录 解压到d盘根目录下,D:\mysql-5.6.23-winx64 2.设置环境 ...

  7. Kurento-6.7.1 媒体服务器搭建详细教程(Kurento-Media-Server)

    < Kurento-6.7.1 媒体服务器搭建详细教程 > 关于 Kurento 媒体服务器 Kurento 架构的核心是媒体服务器,它被命名为Kurento媒体服务器,即 KMS.Kur ...

  8. 查题公众号搭建详细教程,提供永久免费接口

    查题公众号搭建详细教程,提供永久免费接口 本平台优点:免费查题接口搭建 多题库查题.独立后台.响应速度快.全网平台可查.功能最全! 1.想要给自己的公众号获得查题接口,只需要两步! 2.题库:题库后台 ...

  9. 海尔微型计算机一键还原怎么操作,电脑的一键还原在哪_电脑一键还原详细教程_电脑一键还原怎么操作...

    电脑的一键还原在哪_电脑一键还原详细教程_电脑一键还原怎么操作 电脑的一键还原在哪?这个问题是很多小伙伴都想知道的,电脑是可以自己一键还原的,但是很多小伙伴都不太清楚,那么小编来告诉大家吧. (1)一 ...

  10. Kubernetes集群环境搭建详细教程(一主两从)

    Kubernetes集群环境搭建详细教程(一主两从) 1.1 安装要求 在开始之前,部署Kubernetes 集群机器需要满足以下几个条件: 一台或多台机器,操作系统CentOS7.x-86_x64 ...

最新文章

  1. python爬虫正则表达式实例-Python爬虫(十一)_案例:使用正则表达式的爬虫
  2. python list的一个面试题
  3. 多线程-单生产单消费模型
  4. 【转】RabbitMQ六种队列模式-5.主题模式
  5. vlan划分_基于MAC地址划分VLAN配置示例
  6. 取消XP/Windows 2003系统自带文件解压缩功能
  7. Go语言strings和strconv包
  8. 软件中反跟踪技术和软件调试
  9. 什么是脚本,脚本语言?
  10. vivo android 刷机教程,vivo刷机步骤盘点【图文教程】
  11. RTL8187B无线网卡不能上网的解决办法
  12. 故宫回应灯会票秒光:3500人约成功 没票别信黄牛
  13. 【安装Oracle 12.2.0.1补丁】Oracle Database SAP Bundle Patch 12.2.0.1.220118 - 202202
  14. 15. 三数之和 (已经解决超时问题,但是依旧时间依旧不乐观)
  15. DEDE标签调用说明
  16. Vertica中的projections
  17. AIX 上总有一种压缩方式适合你
  18. win 10 把秘钥清掉之后查不到秘钥怎么办
  19. Mysql数据库分表实现
  20. 通过位运算来进行2的幂运算

热门文章

  1. 29 顺时针打印矩阵(四-画图让抽象问题形象化)
  2. 实验二 20145237 20155226 2015234 实验报告 固件程序设计
  3. 【个人笔记】OpenCV4 C++ 快速入门 05课
  4. 线程 pthread_create Linux函数 线程创建
  5. lamda表达式修改数据_正则表达式学习教程
  6. 移植gettimeofday
  7. webRTC之[chromium-style] virtual methods with non-empty bodies shouldnt be declared inline(二十一)
  8. Android/Linux性能分析工具推荐
  9. LD_PRELOAD用法总结
  10. Android音量设置流程干货版