Sob .NET CORE2.2 Ocelot + Cônsul entrou registros de descoberta de serviço pit

Depois de razões históricas, o autor do projeto da empresa ainda está em uso .NET NÚCLEO versão 2.2, preencha o serviço de registo em todas as atualizações de aplicativos de negócios encontrados os últimos remanescentes atualizações de serviço Ocelot gateway. Durante o processo de atualização, encontramos algum texto problemas, documento, para que os alunos têm a mesma situação de referência.

1. Ocelot descoberta do serviço de atualização

De acordo com documentos oficiais , adicionando uma configuração simples, altere a descoberta de serviços configuração original:

  1. Ligue
    Instale-Package Ocelot.Provider.Consul 13.5.2, a versão final do 2.x .Net Núcleo

  2. Serviço de configuração

s.AddOcelot()
    .AddConsul();
  1. Adicionando um perfil global
"ServiceDiscoveryProvider": {
    "Host": "localhost",
    "Port": 8500,
    "Type": "Consul"
}
  1. Configurando o roteamento
{
    "DownstreamPathTemplate": "/api/values}",
    "DownstreamScheme": "https",
    "UpstreamPathTemplate": "/spider/api/values",
    "UpstreamHttpMethod": [ "Get" ],
    "ServiceName": "spider",
    "LoadBalancerOptions": {
        "Type": "LeastConnection"
    },
}

2. problemas

A alguns passos simples, atualização Ocelot está completa, mas depois de testar, mas não foi encontrado para Ocelot que esperávamos, encaminhado para os serviços de back-end, mas relatou o seguinte erro:

No começo pensei que era um problema de configuração, até que o nível de registro elevado para Debug, uma visão mais detalhada do log foi encontrado, pedido de URL dos problemas de emenda a jusante.

Especificamente, ele está usando o nó de serviço Ocelot Nome do nó Consul, em vez do endereço IP do nó correspondente do serviço.

Desde que o problema localizado, em seguida, ler o código fonte deve ser capaz de encontrar a causa, de acordo com as primeiras informações de pacotes NuGet navegação https://github.com/ThreeMammals/Ocelot.Provider.Consul endereço de código-fonte do check Provider, após o teste de carga, descobri que, na verdade, é normal, mas não há dúvida, este repositório de origem, somente a primeira das várias versões da marca, as versões posteriores não são, através da pesquisa, foram incorporados em versões subsequentes do principal biblioteca originais Ocelot, eo projeto pacote URL Nuget não é atualizado, Khan!

Desde que o problema com a versão do que ler uma lista Issue pouco, realmente encontrou o problema, mas também olhar para a questão em discussão, entrou no pit deve ser muito. Por favor, consulte o link a seguir diretamente para razões específicas:

https://github.com/ThreeMammals/Ocelot/issues/954

resumo

  1. Nas versões 2.x .NET núcleo deve ser usado 13.5.1 e anteriores, nome do nó ou causará problemas.
  2. código-fonte Ocelot.Provider.Consul foi incorporada pela biblioteca principal Ocelot Portal

Acho que você gosta

Origin www.cnblogs.com/xboo/p/12659842.html
Recomendado
Clasificación