В распределённых приложениях часто необходимо изменять конфигурационные свойства, например, обновлять строки подключения базы данных и обновлять адреса кэша. Если приложений немного, вы можете изменить их вручную; когда их много, распределённая конфигурация очень важна. В этой статье объясняется архитектура хранения ключ/значение в .net/c# на основе Consul для реализации распределённой конфигурации.
Установить консула
Краткое введение
Consul — это инструмент обнаружения и регистрации сервисов, который распределён и высоко масштабируем.
Consul в основном включает следующие функции:
- Обнаружение сервисов: поддержка регистрации и обнаружения сервисов как для протоколов HTTP, так и DNS.
- Мониторинг проверок: поддерживает многократные медицинские проверки.
- Хранилище ключей/значений: поддерживает распределённое хранение данных KV через HTTP API.
- Поддержка множества дата-центров: поддерживается любое количество дата-центров.
Установка
Адрес для скачивания:
Вход по гиперссылке виден.
В этой статье используется Windows 10 x64 в качестве тестовой среды.
После загрузки и распаковки запустите его с помощью команды cmd, код выглядит следующим образом:
Dev означает работу в режиме разработки, и параметр -client может использоваться для указания, к которому клиенту разрешен доступ, например, -client 127.0.0.1 означает, что он может использоваться, и в режиме разработки данные не сохраняются.
(режим разработки, режим кластера рекомендуется для производственных сред)
Доступ:http://127.0.0.1:8500/ui/dc1/servicesСм. ниже:
Интерфейс KV
Адрес документации API:
Вход по гиперссылке виден.
Сначала я использую онлайн-страницу и создаю новую пару ключ/значение.
Получите значение через GET запрос /v1/kv/:key.
http://127.0.0.1:8500/v1/kv/test
[ { "LockIndex": 0, «Ключ»: «тест», «Флаги»: 0, "Value": "aXRzdnNlLmNvbQ==", «CreateIndex»: 194, «ModifyIndex»: 194 }
]
- CreateIndex — это внутреннее значение индекса, отражающее момент создания записи.
- ModifyIndex — последний индекс, изменяющий этот ключ. Этот индекс соответствует значению заголовка, возвращаемому X-Consul-Index в ответе, и может быть задан как ? Параметр индексного запроса используется для установления блокирующих запросов. Можно даже выполнять блокирующие запросы ко всему поддереву магазина KV: а что если? recurse предоставляет запрос, и возвращаемое значение X-Consul-Index соответствует последнему значению ModifyIndex в префиксе; с помощью блокирующего запроса ?index будет ждать обновления любого ключа в этом префиксе.
- LockIndex — это количество раз, когда ключ в замке был успешно получен. Если замок удерживается, ключ сессии предоставит сессию, которой принадлежит замок.
- Главное — это полный путь входа.
- Флаги — это непрозрачные беззнаковые целые числа, которые можно прикрепить к каждому элементу. Клиенты могут выбрать эту опцию, но она имеет смысл для их применения.
- Значение — это скопление данных, закодированное в базе 64.
.NET/C# Ключ/Значение для чтения и записи
Сначала создайте проект .NET 4.6.1 и используйте nuget для установки необходимых пакетов, следующим образом:
Код таков:
Визуализации следующие:
- Ключевой ключ чувствителен к регистру
- Дублирующиеся значения ключа и значения будут перезаписаны
(Конец) |