Это многостраничная версия текущего раздела для печати. .
Задачи разработчика
1 - Чтение из etcd
Предварительные требования
- Установите
etcdctl
Процедура
Используйте подкоманду get для чтения из etcd:
где:
foo— запрашиваемый ключHello World!— полученное значение
Или для форматированного вывода:
где write-out="json" заставляет выводить значение в формате JSON (обратите внимание, ключ не возвращается).
2 - Запись в etcd
Предварительные условия
- Установите
etcdctl
Процедура
Используйте подкоманду put для записи пары «ключ — значение»:
где:
foo— имя ключа"Hello World!"— значение, заключённое в кавычки
3 - Как получить ключи по префиксу
Предварительные требования
Получить ключи по префиксу
Глобальные параметры
Параметры
Пример

4 - Как удалить ключи
Предварительные требования
- Установите
etcdиetcdctl
Добавление или удаление ключей
del для удаления указанного ключа или диапазона ключей:
Параметры
Параметры, унаследованные от родительских команд
Примеры

5 - Как выполнить несколько записей в транзакции
Предварительные условия
- Установите
etcdиetcdctl. - Работающий кластер
etcd.
Терминология
Ниже определены ключевые термины, используемые в примере .
| Термин | Определение |
|---|---|
| etcdctl | Инструмент командной строки для взаимодействия с сервером etcd. |
Команда txn | Название команды txn сокращает слово «transaction». Она читает несколько запросов etcd из стандартного ввода и применяет их как одну атомарную транзакцию. Транзакция состоит из списка условий, списка запросов, выполняемых при истинности всех условий, и списка запросов, выполняемых при ложности любого условия. Дополнительные сведения приведены в разделе команд etcdctl для ключей и значений
. |
compare | Секция compare в транзакции (txn) выполняет условную проверку и определяет, следует ли выполнять операции транзакции. Изменения применяются только тогда, когда текущее состояние хранилища ключей и значений соответствует ожидаемым условиям. Это сохраняет согласованность данных и предотвращает конфликты при параллельной работе. Структура команды показана ниже в разделе Выполнение транзакции
. |
Транзакции
Команда txn обрабатывает все запросы в одной транзакции:
Транзакции etcd позволяют атомарно выполнить несколько операций: либо применяются все операции, либо не применяется ни одна. Это необходимо для сохранения согласованности данных при связанных обновлениях. Подробнее см. в документации API .
Пример
Рассмотрим обновление адреса электронной почты и номера телефона пользователя в одной транзакции. Оба изменения будут применены совместно.

0. Используемые переменные и флаги
| Переменные |
|---|
/users/{<user_id>/email : ключ etcd, представляющий адрес электронной почты пользователя. |
/users/<user_id>/phone : ключ etcd, представляющий номер телефона пользователя. |
| Флаги |
--interactive
: флаг, разрешающий вводить данные транзакции вручную |
1. Создание исходных данных
Сначала создайте пользователя с исходными данными.
2. Выполнение транзакции
Обновите адрес электронной почты и номер телефона пользователя в одной транзакции.
- Сравнение: проверьте, что текущий адрес равен «old.address@johndoe.com ». Транзакция продолжится только при ожидаемом состоянии данных.
- Успех: если сравнение истинно, обновите и адрес электронной почты, и номер телефона.
- Неудача: если сравнение ложно, получите текущий адрес, чтобы выяснить, почему транзакция не была выполнена.
Важные соображения
- Атомарность: транзакция гарантирует совместное обновление адреса электронной почты и номера телефона. Если исходное условие сравнения не выполнено, ни одно обновление не применяется.
- Согласованность: транзакции сохраняют согласованность данных, особенно при нескольких связанных обновлениях.
- Не записывайте один ключ несколько раз: не присваивайте одному ключу несколько значений в одной транзакции, поскольку это может привести к неожиданным результатам. Каждый ключ следует обновлять только один раз за транзакцию.
6 - Как наблюдать за ключами
Предварительные требования
- Установите
etcdиetcdctl
Наблюдение за ключами
watch для получения уведомлений о будущих изменениях:
Параметры
Параметры, унаследованные от родительских команд
Примеры

7 - Как создать аренду
lease записывать с TTL:

8 - Как создавать блокировки
LOCK приобретает распределённый мьютекс с указанным именем. Как только блокировка будет получена, она будет удерживаться до завершения работы etcdctl.
Предварительные требования
- Установите
etcdиetcdctl
Создание блокировки
lock для распределённой блокировки:

Параметры
- endpoints — определяет список адресов машин в кластере, разделённых запятыми.
- ttl — время ожидания в секундах сессии блокировки.