4. 分布式数据库分片
xSQL 的一项强大功能是能够管理分布在网络节点集群中的单个内存中或持久化数据库。为了演示这一点,我们将使用在 SDK 目录 samples/xsql/configs/shards 中找到的配置文件(更多关于配置文件的信息在步骤 5 中)在三个独立的命令控制台窗口中启动 xSQL。此示例展示了一个简单的分布式内存数据库,由 xSQL 服务器管理的 2 个分片协同工作;每个分片仅持有数据库的一部分。
要启动服务器,请打开 3 个控制台窗口,导航到 samples/xsql/configs/shards ,然后在控制台 1 中输入:
On Unix-Linux:
../../../../target/bin/xsql -c shard1.cfg –i
On Windows:
..\..\..\..\target\bin\xsql -c shard1.cfg –i
在控制台 2 中输入:
On Unix-Linux:
../../../../target/bin/xsql -c shard2.cfg -i
On Windows:
..\..\..\..\target\bin\xsql -c shard2.cfg –i
然后在另一个控制台窗口中通过输入以下内容启动一个 xSQL 客户端:
On Unix-Linux:
../../../../target/bin/xsql -c client.cfg -i
On Windows:
..\..\..\..\target\bin\xsql -c client.cfg –i
现在在 xSQL 客户端(控制台 3)中执行以下 3 个查询:
XSQL>1:select * from Employee;
name dept_no
-------------------------------
Han Solo 1
Luke Skywalker 1
Selected records: 2
XSQL>2:select * from Employee;
name dept_no
-------------------------------
Darth Vader 2
Selected records: 1
XSQL>select * from Employee;
name dept_no
-------------------------------
Han Solo 1
Luke Skywalker 1
Darth Vader 2
Selected records: 3
请注意,开头的“1:”告诉 xSQL 访问服务器 1 中的分片,同样,“2:”访问服务器 2 上的分片。执行未指定服务器编号的选择操作会导致 xSQL 汇总来自每个服务器上选择操作的结果——分片仅包含数据库的部分内容。显然,配置文件 shard1.cfg、shard2.cfg 和 client.cfg 在此处执行了一些隐藏操作。我们将在下一步中对配置文件进行更多的解释和演示。