Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 55716|Відповідь: 3

[Джерело] 【Архітектура】ASP.NET Core дуже доступний на основі послуг Consul

[Копіювати посилання]
Опубліковано 2020-10-16 18:33:07 | | | |
У розробці інтернет-проєктів необхідно взаємодіяти з різними сервісами, а користувачі отримують дані з сервера, а висока доступність інтерфейсів сервісів особливо важлива, особливо в електронній комерції та платіжних системах, де висока доступність також вимірює надійність системи. У випадку кластерів багато сервісів також важко підтримувати.

Огляд консула

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

[Архітектура]. net/c# реалізує розподілену конфігурацію Key/Value store на основі 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-сегмент": ""
        },
        "ServiceKind": "",
        "ServiceID": "507338bf-a5a6-4013-9675-c43a40a2c1a0",
        "ServiceName": "test.itsvse",
        "ServiceTags": [
            «тест»,
            "itsvse"
        ],
        "ServiceAddress": "127.0.0.1",
        "ServiceWeights": {
            "Пас": 1,
            "Увага": 1
        },
        "ServiceMeta": {},
        "ServicePort": 8083,
        "ServiceEnableTagOverride": неправда,
        "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-сегмент": ""
        },
        "ServiceKind": "",
        "ServiceID": "bb21f150-7219-4eda-bc91-54686a750228",
        "ServiceName": "test.itsvse",
        "ServiceTags": [
            «тест»,
            "itsvse"
        ],
        "ServiceAddress": "127.0.0.1",
        "ServiceWeights": {
            "Пас": 1,
            "Увага": 1
        },
        "ServiceMeta": {},
        "ServicePort": 8082,
        "ServiceEnableTagOverride": неправда,
        "ServiceProxy": {
            "MeshGateway": {},
            "Expose": {}
        },
        "ServiceConnect": {},
        "CreateIndex": 1314,
        "ModifyIndex": 1314
    }
]


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

Створіть новий проєкт консолі .NET Core з таким кодом:



Я випадково дзвоню до зареєстрованого сервісу test.itsvse, і результат такий:



Нарешті, завантажити вихідний код:

Туристи, якщо ви хочете побачити прихований контент цього допису, будь ласкаВідповідь




Попередній:Архітектура: ASP.NET Core динамічно налаштовує гарячі оновлення на основі Consul
Наступний:Імпорт DMP-файлів є винятковим
Опубліковано 2020-11-30 19:57:38 |
w174w174w174
Опубліковано 2021-7-23 09:31:37 |
Дякую, що поділилися
Опубліковано 2021-9-3 09:05:16 |
програмне забезпечення, імпортувати десятки тисяч листів, не імітувати смерть, не зависати!!
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com