mysql 数据库的分片逻辑

Sharding logic for mysql Database

分片逻辑通常放在appserver中。查询将通过查询元传递到特定的分片。除了appserver,sharding logic还能放在什么地方,这样可以减少appserver的负载。

一个相当流行的解决方案是使用 Ambassador 模式。

据了解,将在主应用程序旁边启动一个附加应用程序。分片分配逻辑将放在大使中。因此,将卸载主要服务。

  1. 第一步,客户端发送带有适当负载的请求。
  2. 在第二步中,appserver 决定必须将此有效负载保存在数据库中,并将带有数据的请求发送到 ambassador app。
  3. 反过来,大使有一个在碎片之间分配数据的算法(通过元信息或哈希函数)。
  4. 在最后一步中,信息被发送到所需的分片。

通过这种方法,分发服务和不必要的负载从主要服务中移除。

值得注意的是,将大使置于一台物理主机中以减少网络延迟非常重要。

这可能不是最好的方法,但只是一种选择。