本文需读者掌握 ZooKeeper 和 DBLE 基本原理。
想要学习 DBLE 相关知识的小伙伴可以查看文章末尾的 DBLE 公开课。
环境架构
目的
部署依赖
安装DBLE (3台)
部署 ZooKeeper 集群
部署 DBLE 集群
简单测试
其他
环境架构
wget https://github.com/actiontech/dble/releases/download/2.19.05.0%2Ftag/actiontech-dble-2.19.05.0.tar.gz
tar zxvf actiontech-dble-2.19.05.0.tar.gz
schema.xml
文件,配置 writeHost, readHost 为自己的 MySQL 实例,如下:
<writeHost host="hostM1" url="ip1:3306" user="your_user" password="your_psw">
<readHost host="hostS1" url="ip2:3306" user="your_user" password="your_psw"/>
</writeHost>
1. 下载并解压安装包,官网链接:
http://archive.apache.org/dist/zookeeper/
zoo.cfg
将 zookeeper-3.4.12/conf 目录下的 zoo_sample.cfg
重命名为 zoo.cfg
,修改 zoo.cfg
,如下:
tickTime=2000
initLimit=10
syncLimit=5
#zookeeper客户端的端口
clientPort=2181
#zookeeper的data目录路径
dataDir=/opt/zookeeper/data
#zookeeper的日志目录的路径
dataLoginDir=/opt/zookeeper/logs
#id为ServerID,用来标识服务器在集群中的序号,server_ip为服务器所在的ip地址
server.id=zk1_server_ip:2888:3888
server.id=zk2_server_ip:2888:3888
server.id=zk3_server_ip:2888:3888
myid
文件,在 zookeeper-3.4.12/data 目录下创建文件 myid
,该文件只有一行内容,即对应于每台服务器的 Server ID
cd zookeeper-3.4.12/bin && ./zkServer.sh start
cd zookeeper-3.4.12/bin && ./zkServer.sh status
//如计划显示
myid.properties
如下:
cluster=zk
#clinet info
ipAddress=zk_server_ip:zk_port
#cluster namespace, please use the same one in one cluster
clusterId=cluster-1
#it must be different for every node in cluster
myid=1
说明:ipAddress 可以配置集群中 1 个或多个或所有 ZK 的ip 和 port,配置多个 ip 时需要用 “,” 隔开 例:Address=172.100.9.1:2181,172.100.9.2:2181 详情可参考文档:https://github.com/actiontech/dble-docs-cn/blob/master/1.config_file/1.08_myid.properties.md
cd dble/bin && ./dble start
cd zookeeper-3.4.12/bin && ./zkCli.sh
[zk: localhost:2181(CONNECTED) 0] ls /dble/cluster-1/online
[001, 3, server_2]
步骤一:修改 DBLE-A 的
schema.xml
,添加一个全局表,如下:
<table name="test_global" dataNode="dn1,dn2" type="global"/>
步骤二:连接 DBLE-A 管理端口,执行管理命令:reload @@config_all;
步骤三:查看 DBLE-B 和 DBLE-C 的
schema.xml
,观察到 test_global 已经更新到集群中其他节点
步骤一:连接 DBLE-A 业务端口,创建视图,如下:
mysql> create view view_test as select * from test_global;
Query OK, 0 rows affected (0.10 sec)
mysql> show tables;
+-------------------+
| Tables in schema1 |
+-------------------+
| test_global |
| view_test |
+-------------------+
2 rows in set (0.00 sec)
步骤二:登陆 ZK 客户端查看,创建的视图已存在 ZK view 目录下
[zk: localhost:2181(CONNECTED) 5] ls /dble/cluster-1/view
[schema1:view_test]
步骤三:连接 DBLE-B 业务端口,观察到视图存在于该节点
mysql> show tables;
+-------------------+
| Tables in schema1 |
+-------------------+
| test_global |
| view_test |
+-------------------+
2 rows in set (0.00 sec)
步骤四:直连MySQL,观察到创建的视图并没有存在 MySQL 中
mysql> show tables;
+-------------------+
| Tables in schema1 |
+-------------------+
| test_global |
+-------------------+
1 rows in set (0.00 sec)
步骤一:手动停掉 DBLE-A
步骤二:连接 DBLE-C 业务端口,修改 test_global 表结构
mysql> alter table test_global add column name varchar(20);
Query OK, 0 rows affected (0.15 sec)
步骤三:连接 DBLE-B 业务端口,查看 test_global 表结构
mysql> desc test_global;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | varchar(20) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.01 sec)
第一章 DBLE的基本使用
第二章 DBLE的高级特性
第三章 DBLE的进阶使用
近期社区动态