本例给出实现3等分的代码和运行结果。在保证,每一个部分都不会宕机的情况下,这种算法是最简单的。否则就用一致性哈希算法。
公式原理:求余算法: hash(object)%N
for($i = 1;$i<=100;$i++){
$result = crc32($i) % 3;
echo "i:".$i . " result:".$result ."\r\n";
}
//运行结果如下
i:1 result:2
i:2 result:1
i:3 result:1
i:4 result:1
i:5 result:1
i:6 result:1
i:7 result:0
i:8 result:2
i:9 result:0
i:10 result:0
i:11 result:0
i:12 result:0
i:13 result:2
i:14 result:0
i:15 result:1
i:16 result:0
i:17 result:2
i:18 result:0
i:19 result:1
i:20 result:0
i:21 result:1
i:22 result:2
i:23 result:1
i:24 result:2
i:25 result:0
i:26 result:1
i:27 result:0
i:28 result:0
i:29 result:2
i:30 result:1
i:31 result:1
i:32 result:1
i:33 result:2
i:34 result:2
i:35 result:1
i:36 result:1
i:37 result:1
i:38 result:0
i:39 result:1
i:40 result:2
i:41 result:2
i:42 result:2
i:43 result:1
i:44 result:2
i:45 result:1
i:46 result:0
i:47 result:0
i:48 result:0
i:49 result:0
i:50 result:0
i:51 result:0
i:52 result:1
i:53 result:0
i:54 result:1
i:55 result:2
i:56 result:1
i:57 result:0
i:58 result:0
i:59 result:2
i:60 result:0
i:61 result:1
i:62 result:1
i:63 result:0
i:64 result:0
i:65 result:0
i:66 result:1
i:67 result:1
i:68 result:1
i:69 result:1
i:70 result:1
i:71 result:1
i:72 result:0
i:73 result:1
i:74 result:2
i:75 result:0
i:76 result:2
i:77 result:0
i:78 result:0
i:79 result:2
i:80 result:0
i:81 result:2
i:82 result:0
i:83 result:2
i:84 result:1
i:85 result:0
i:86 result:0
i:87 result:1
i:88 result:1
i:89 result:0
i:90 result:0
i:91 result:0
i:92 result:1
i:93 result:1
i:94 result:0
i:95 result:0
i:96 result:1
i:97 result:0
i:98 result:0
i:99 result:0
i:100 result:0
大家可以看到完全符合预期。