Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 55716|Resposta: 3

[Fonte] 【Arquitetura】ASP.NET O Core está altamente disponível com base nos serviços do Consul

[Copiar link]
Postado em 16-10-2020 18:33:07 | | | |
No desenvolvimento de projetos na Internet, é necessário interagir com vários serviços, e os usuários obtêm dados do servidor, e a alta disponibilidade de interfaces de serviço é particularmente importante, especialmente em sistemas de comércio eletrônico e pagamento, onde a alta disponibilidade também mede se o sistema é robusto. No caso dos clusters, muitos serviços também são difíceis de manter.

Revisão do consul

Consul é uma ferramenta de código aberto desenvolvida na linguagem Go lançada pela HashiCorp, utilizada para realizar a descoberta e configuração de serviços de sistemas distribuídos, com estrutura de registro e descoberta de serviços integrada, implementação de protocolo de consistência de distribuição, verificação de saúde, armazenamento de chaves/valor e soluções multi-data center, o que é relativamente simples de usar.

[Arquitetura]. net/c# implementa configuração distribuída do armazenamento de chaves/valores baseado no Consul
https://www.itsvse.com/thread-9420-1-1.html

Arquitetura: ASP.NET Core configura dinamicamente as atualizações quentes com base no Consul
https://www.itsvse.com/thread-9421-1-1.html


Descoberta do serviço cônsul

Como usar o Consul Service Discovery:

  • Execute um agente Consul no Modo Cliente em cada computador, que é responsável apenas por trocar eficientemente as informações de registro mais recentes com o Cluster Consul (não participando da eleição de líder).
  • O serviço de serviço em cada computador registra o nome do serviço e a URL do serviço junto ao agente do cônsul local
  • Quando um programa implantado no Computador1 precisa chamar o ServiceB, o programa ServiceA obtém diretamente o endereço de acesso do ServiçoB do Agente Cônsul local através do nome do serviço, e então faz uma solicitação diretamente para a URL do ServiçoB.




O código é o seguinte:



Na classe Startup, chame da seguinte forma:



Exame de saúde

A interface de verificação de saúde só precisa devolver um código de status 200 ao consul, e o código é o seguinte:



Comece o projeto, inscreva-se no serviço

O controlador pode definir um método de teste da seguinte forma:



Vamos ao diretório bin do projeto e iniciá-lo pela linha de comando, o código é o seguinte:





Veja o link pelo seu navegador:

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



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

Os dados json são os seguintes:

[
    {
        "ID": "bb644359-6b2a-a27e-7a0a-a1950b8e515f",
        "Nó": "DESKTOP-EB7B69D",
        "Endereço": "127.0.0.1",
        "Centro de dados": "dc1",
        "EndereçosDeMarcados": {
            "lan": "127.0.0.1",
            "wan": "127.0.0.1"
        },
        "NodeMeta": {
            "Segmento-Rede-Cônsul": ""
        },
        "ServiceKind": "",
        "ServiceID": "507338bf-a5a6-4013-9675-c43a40a2c1a0",
        "ServiceName": "test.itsvse",
        "ServiceTags": [
            "teste",
            "itsvse"
        ],
        "EndereçoDeServiço": "127.0.0.1",
        "PesosDeServiço": {
            "Passando": 1,
            "Aviso": 1
        },
        "ServiceMeta": {},
        "Porto de Serviço": 8083,
        "ServiceEnableTagOverride": falso,
        "ServiceProoxy": {
            "MeshGateway": {},
            "Expor": {}
        },
        "ServiceConnect": {},
        "CreateIndex": 1317,
        "ModifyIndex": 1317
    },
    {
        "ID": "bb644359-6b2a-a27e-7a0a-a1950b8e515f",
        "Nó": "DESKTOP-EB7B69D",
        "Endereço": "127.0.0.1",
        "Centro de dados": "dc1",
        "EndereçosDeMarcados": {
            "lan": "127.0.0.1",
            "wan": "127.0.0.1"
        },
        "NodeMeta": {
            "Segmento-Rede-Cônsul": ""
        },
        "ServiceKind": "",
        "ServiceID": "bb21f150-7219-4eda-bc91-54686a750228",
        "ServiceName": "test.itsvse",
        "ServiceTags": [
            "teste",
            "itsvse"
        ],
        "EndereçoDeServiço": "127.0.0.1",
        "PesosDeServiço": {
            "Passando": 1,
            "Aviso": 1
        },
        "ServiceMeta": {},
        "Porto de Serviço": 8082,
        "ServiceEnableTagOverride": falso,
        "ServiceProoxy": {
            "MeshGateway": {},
            "Expor": {}
        },
        "ServiceConnect": {},
        "CreateIndex": 1314,
        "ModifyIndex": 1314
    }
]


Chamada de serviço consulal

Crie um novo projeto de console .NET Core com o seguinte código:



Estou ligando aleatoriamente para o serviço registrado test.itsvse e o resultado é o seguinte:



Por fim, download do código-fonte:

Turistas, se quiserem ver o conteúdo oculto deste post, por favorResposta




Anterior:Arquitetura: ASP.NET Core configura dinamicamente as atualizações quentes com base no Consul
Próximo:A importação de arquivos DMP é excepcional
Postado em 30-11-2020 19:57:38 |
w174w174w174
Postado em 23-07-2021 09:31:37 |
Obrigado por compartilhar
Postado em 2021-9-3 09:05:16 |
software, importar dezenas de milhares de e-mails, não fingir morte, não congelar!!
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com