Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 55716|Ответ: 3

[Источник] 【Архитектура】ASP.NET Core широко доступен на базе услуг Consul

[Скопировать ссылку]
Опубликовано 2020-10-16 18:33:07 | | | |
При разработке интернет-проектов необходимо взаимодействовать с различными сервисами, и пользователи получают данные с сервера, а высокая доступность интерфейсов сервисов особенно важна, особенно в электронной коммерции и платежных системах, где высокая доступность также измеряет надёжность системы. В случае кластеров многие сервисы также сложно поддерживать.

Обзор консула

Consul — это инструмент с открытым исходным кодом, разработанный на языке Go, запущенный компанией HashiCorp, который используется для обнаружения сервисов и настройки распределённых систем с встроенной системой регистрации и поиска сервисов, реализацией протокола согласованности распределения, проверкой состояния, хранением ключей/значений и решениями для мультидата-центров, которые относительно просты в использовании.

[Архитектура]. net/c# реализует распределённую конфигурацию хранилища ключ/значение на основе Consul
https://www.itsvse.com/thread-9420-1-1.html

Архитектура: ASP.NET Core динамически настраивает горячие обновления на основе Consul
https://www.itsvse.com/thread-9421-1-1.html


Обнаружение консульской службы

Как использовать Consul Service Discovery:

  • Запускайте агент Consul в клиентском режиме на каждом компьютере, который отвечает только за эффективный обмен последней регистрационной информацией с Consul Cluster (не участвуя в выборах лидера).
  • Сервис на каждом компьютере регистрирует имя сервиса и URL сервиса у местного консульского агента
  • Когда программе, развернутой на Computer1, необходимо вызвать ServiceB, программа ServiceA напрямую получает адрес доступа ServiceB от местного агента консула через имя сервиса, а затем напрямую отправляет запрос на URL ServiceB.




Код таков:



В классе «Стартап» звоните следующим образом:



Медицинский осмотр

Интерфейс проверки здоровья должен вернуть только статус 200 в консул, и этот код выглядит следующим образом:



Начинай проект, запишись на сервис

Контроллер может определить метод тестирования следующим образом:



Давайте перейдём в каталог bin проекта и начнём через командную строку, код выглядит следующим образом:





Просмотрите ссылку через ваш браузер:

http://127.0.0.1:8500/ui/dc1/services/test.itsvse



http://127.0.0.1:8500/v1/catalog/service/test.itsvse

Данные json следующие:

[
    {
        "ID": "bb644359-6b2a-a27e-7a0a-a1950b8e515f",
        "Node": "DESKTOP-EB7B69D",
        "Адрес": "127.0.0.1",
        "Дата-центр": "dc1",
        "TaggedAddresses": {
            "lan": "127.0.0.1",
            "WAN": "127.0.0.1"
        },
        "NodeMeta": {
            "consul-network-segment": ""
        },
        "ServiceKind": "",
        "ServiceID": "507338bf-a5a6-4013-9675-c43a40a2c1a0",
        "ServiceName": "test.itsvse",
        "ServiceTags": [
            «тест»,
            "itsvse"
        ],
        "ServiceAddress": "127.0.0.1",
        "ServiceWeights": {
            «Проходимо»: 1,
            «Предупреждение»: 1
        },
        "ServiceMeta": {},
        "ServicePort": 8083,
        "ServiceEnableTagOverride": false,
        "ServiceProxy": {
            "MeshGateway": {},
            «Expose»: {}
        },
        "ServiceConnect": {},
        «CreateIndex»: 1317,
        "ModifyIndex": 1317
    },
    {
        "ID": "bb644359-6b2a-a27e-7a0a-a1950b8e515f",
        "Node": "DESKTOP-EB7B69D",
        "Адрес": "127.0.0.1",
        "Дата-центр": "dc1",
        "TaggedAddresses": {
            "lan": "127.0.0.1",
            "WAN": "127.0.0.1"
        },
        "NodeMeta": {
            "consul-network-segment": ""
        },
        "ServiceKind": "",
        "ServiceID": "bb21f150-7219-4eda-bc91-54686a750228",
        "ServiceName": "test.itsvse",
        "ServiceTags": [
            «тест»,
            "itsvse"
        ],
        "ServiceAddress": "127.0.0.1",
        "ServiceWeights": {
            «Проходимо»: 1,
            «Предупреждение»: 1
        },
        "ServiceMeta": {},
        "ServicePort": 8082,
        "ServiceEnableTagOverride": false,
        "ServiceProxy": {
            "MeshGateway": {},
            «Expose»: {}
        },
        "ServiceConnect": {},
        «CreateIndex»: 1314,
        "ModifyIndex": 1314
    }
]


Консульский сервисный вызов

Создайте новый консольный проект для .NET Core с следующим кодом:



Я случайно звоню в зарегистрированный сервис test.itsvse, и результат такой:



Наконец, скачайте исходный код:

Туристы, если вы хотите увидеть скрытое содержание этого поста, пожалуйстаОтвет




Предыдущий:Архитектура: ASP.NET Core динамически настраивает горячие обновления на основе Consul
Следующий:Импорт DMP-файлов исключительн
Опубликовано 2020-11-30 19:57:38 |
w174w174w174
Опубликовано 23.07.2021 09:31:37 |
Спасибо, что поделились
Опубликовано 2021-9-3 09:05:16 |
Импортируйте десятки тысяч писем, не инсценируйте смерть, не замораживайте!!
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com