Zookeeper Data 2
Чек-лист заданий
Полный список дайджестов
Задача - научиться ипользовать Apache Zookeeper для хранения настроек приложения
Какие задачи решены?
- Изменил класс для загрузки:
- Добавил метод для создания настроек по узлу.
- Добавил метод для обновления настроек по узлу.
- Добавил классы для рассмотрения случаев:
- Одновременное создание новых узлов из двух потоков.
- Одноврменное обновление новых ущлов из двух потоков.
- Созда вспомогательные классы: Case, ConcurrentOperationCase.
Что планирую сделать дальше?
- Добавить возможность обновления настроек в zookeeper.
- Добавить возможность проведения двух транзакций при их одноврменном старте.
Краткая памятка по найденному материалу
При решении изучил:
- Транзакция - набор операций, который удолетворяют
ACID(Atomicity, Consistency, Isolation, Durability). Что означает, что транзакции:- либо выполняются успешно, либо не выполняются вообще(промежуточных состояний нет);
- сохраняется целостность данных;
- независимы друг от друга;
- устойчивы (при успешном выполнении гарантируется, что результат не исчезнет);
- Методы создания транзакций в Apache Curator
CuratorOp op1 = client.transactionOp().create().forPath(path, payload); ... client.transtraction().forOperaions(op1, ...); - По итогам предыдущей подзадачи:
- Если одна из транзакци произошла, например, создание узлов, то вторая транзакция происходить не будет.
- При попытке повторно создать существующий узел с новыми данными перезапись проиходить не будет и состотяние этого узла останется прежним.