gpt4 book ai didi

php - 分片/分发(一致散列)的功能?

转载 作者:行者123 更新时间:2023-12-04 06:49:10 24 4
gpt4 key购买 nike

我想过一些轻量级的一致性散列式 PHP 函数来在不同服务器之间对上传的文件进行分片。

显然, rand() 可以在服务器之间均匀分布文件,但是在请求文件时,没有人知道哪个文件位于哪个服务器上......

我知道有一些广泛的库可以创建一致的散列,但我想知道这些是如何工作的,以及如何推出我自己的、非常轻量级的库?

注意:我不考虑服务器将被删除,而是将更多的服务器添加到池中。

更新:

这是一个快速的伪代码行:

$config['shards'] = array('192.168.1.1, 192.168.1.2');

function shard ($filename) {

$servers = $config['shards'];

// do lookup in some magic way to decide which server to return.

return $appropriateserver;
}


echo shard('filename.jpg'); // returns the appropriate server to distribute the file.

最佳答案

好吧,您可以做的一件事是使用 crc32 ...

$crc = crc32($mykey);
$serverNo = $crc % count($servers);

它应该相当一致(意味着均匀平衡),并且 100% 可重现......

关于php - 分片/分发(一致散列)的功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3370346/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com