算法和架构是伴生的
之前在研究「逻辑的复杂性管理」时,其实已经产生了很多架构的思想:只有通过一定的结构,才能够稳定的承载复杂逻辑。过去无论如何努力,都只是尽力而为,但是有了合适的结构,那么就是一种可控的努力。
最近开始研究数据库集群时,发现实现复杂的结构也是依赖几个核心的算法的。例如RAFT选举算法,块的自动分割和聚合等。我觉得基于单机数据库自己搭建集群是一个不错的想法,不过现阶段先考虑利用成熟的产品快速应用。
本次在单机上使用docker创建一个实验性的集群。
本次的实验主要基于这篇文章,整体上写的非常好,但是文章里使用的环境和我还是略有不同。有两个地方可能要注意下,一个是使用10.0.0.1的地址,0.1一般是留给网关的,我觉得不使用比较好;另外就是第二个shard集群初始化配置似乎写错了,可能是拷贝下来的原因。

以下我就把实践的内容逐步展开
10和192,以及172.16都属于常用的私网网段,就是IPv4地址规划里默认保留,不作为公网地址使用的特殊IP地址