В разпределените приложения често е необходимо да се променят конфигурационните свойства, като актуализиране на низове за връзка към база данни и обновяване на кеш адреси. Ако няма много приложения, можете ръчно да ги модифицирате, след като има много приложения, разпределената конфигурация е много важна, тази статия обяснява архитектурата Key/Value storage на .net/c#, базирана на Consul, за да реализира разпределена конфигурация.
Инсталирай консул
Кратко въведение
Consul е инструмент за откриване и регистрация на услуги, който е разпределен и силно мащабируем.
Consul основно включва следните характеристики:
- Откриване на услуги: Поддръжка за регистрация и откриване на услуги както за HTTP, така и за DNS протоколи.
- Мониторинг на проверките: Поддържа множество здравни проверки.
- Съхранение на ключове/стойности: Поддържа разпределено съхранение на KV данни чрез HTTP API.
- Поддръжка на мулти-центрове за данни: Поддържат се различни центрове за данни.
Инсталация
Адрес за изтегляне:
Входът към хиперлинк е видим.
Тази статия използва Windows 10 x64 като тестова среда.
След изтегляне и разархивиране, стартирайте с командата cmd, кодът е следният:
Dev означава работа в режим на разработка, а параметърът -client може да се използва, за да се определи кой IP адрес е позволено да бъде достъпен от клиента, например -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 е броят пъти, в които ключът в ключалката е бил успешно придобит. Ако заключването е задържано, ключът за сесия ще предостави сесията, която притежава ключалката.
- Ключът е просто пълният път на входа.
- Флаговете са непрозрачни беззнакови цели числа, които могат да бъдат прикрепени към всеки запис. Клиентите могат да изберат да използват тази опция, но тя има смисъл за тяхното приложение.
- Стойността е кодирана в base64 blob от данни.
.NET/C# Ключ/Стойност за четене и записване
Първо, създайте .NET проект 4.6.1 и използвайте nuget, за да инсталирате необходимите пакети, както следва:
Кодът е следният:
Визуализациите са както следва:
- Ключовият ключ е чувствителен към регистри
- Дублиращите се стойности на ключ и стойности ще бъдат презаписани
(Край) |