forked from course/hse-2026
Add week 8 materials
This commit is contained in:
1 parent
a987b82834
commit
0bf71ed374
38 files changed
+2908
No files matched your search
@@ -0,0 +1,21 @@
|
||||
# Пример шардирования
|
||||
|
||||
Обычно под шардированием понимают "распределение чего-либо по множеству узлов (*шардов*) детерминированно и постоянно для указанного ключа". Например, шардирование данных в key-value хранилище обычно происходит на основе ключа. Шардирование запросов между http серверами может происходить на основе имени пользователя или его id. Такое свойство обычно называют *ключом шардирования*.
|
||||
|
||||
В этом примере написан самый простой пример шардирования запросов: в словаре указываются url куда слать запрос и имена серверов. Ниже указан список ключей для проверки алгоритма шардирования. Для каждого ключа скрипт выбирает сервер и отправляет на него get запрос, после чего печатает результат в *stdout*.
|
||||
|
||||
Запуск:
|
||||
|
||||
```bash
|
||||
|
||||
# 1. Запустить какие-то сервера, которые будут принимать запрос. Например, [hello-world](../nginx-balancing/README.md) из примера с nginx или [key-value](../kv/README.md) из примера с шардированием ключей.
|
||||
cd ../nginx-balancing
|
||||
docker compose up
|
||||
|
||||
# 2. Поправить словарь shards, добавить туда свои url (если они отличны от уже указанных)
|
||||
|
||||
# 3. Запустить скрипт, выполняющий запросы
|
||||
python3 client.py
|
||||
|
||||
# 4. Посмотреть на результаты, что для указанного списка ключей запросы были сделаны на разные сервера
|
||||
```
|
||||
Reference in new issue
Block a user