Я немного подумал о создании несколько облегченной 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.