Introdução a Eureka
O Eureka fornece serviços baseados em REST, que são usados principalmente no gerenciamento de serviços no cluster. O Eureka fornece componentes do cliente com base no idioma Java, que implementa funções de balanceamento de carga, criando condições para a implantação de cluster de componentes de negócios. Usando essa estrutura, os componentes de negócios podem ser registrados em contêineres Eureka, que podem ser implantados em clusters, e Eureka mantém principalmente uma lista desses serviços e verifica automaticamente seu status.
Estrutura do programa
Crie servidor Eureka
Dependência do Maven
<EpendencyManagement> <Dependences> <pendency> <puperid> org.springframework.cloud </groupiD> <TRAFACTID> Spring-cloud-dependências </ArtifactId> <versão> Dalston.sr1 </version> <Type> pom </type> <cope> Import </dependência> </dependência> </version> </type> pom <GrupidId> org.springframework.cloud </frupiD> <TRATIFACTID> Spring-cloud-starter-eureka-server </stutifactId> </dependency> </dependências>
Altere a porta de inicialização de inicialização da primavera em application.yml
Servidor: Porta: 8761
Ativar anotação de serviço eureka @enableeurekaserver
@Enableeurekaserver@springbootApplicationPublic Classe ekserverApplication {public static void main (string [] args) {new springapplicationbuilder (ekserverappplication.class) .run (args); }}Inicie o Springboot
[Thread-11] Oscneserver.eurekaserverBootStrap: Contexto do servidor inicializado [Main] sbcettomcatembeddedservletContainer: Tomcat Iniciado em portas (s): 8761 (http) [main] .ScneseureSticSistration: Atualizando a porto para 8761 [main]. EkServerApplication em 8,594 segundos (JVM em execução por 9.523)
Uma exceção que não pode ser conectada ao servidor aparecerá durante a inicialização. Isso ocorre porque Eureka se trata como um cliente para obter informações de registro ao iniciar.
A cópia do código é a seguinte:
com.netflix.discovery.shared.transport.TransportException: Não é possível executar a solicitação em nenhum servidor conhecido
Adicione a seguinte configuração e não aparecerá novamente ao iniciar
Eureka: Cliente: RegisterWitheureka: False Fetchregistry: False
O Registerwitheureka declara se deve registrar suas próprias informações no servidor Eureka, o valor padrão é verdadeiro.
O Fetchregistry declara se deve rastejar as informações de registro no servidor Eureka, o valor padrão é verdadeiro.
Visite http: // localhost: 8761 no seu navegador para ver a descrição da imagem da entrada do console Eureka
Crie um provedor de serviços
confiar
<Depencency> <PuerpId> org.springframework.cloud </frupiid> <TRATIFACTID> Spring-cloud-starter-config </artifactId> </dependency> <pendesency> </Groupid> org.springframework.cloud </groupid> <Artifactid> Spring-Starter-Ereureky <GrupidId> org.springframework.cloud </frupiD> <TRATIFACTID> Spring-Cloud-Starter-Ribbon </ArtifactId> </Dependency>
Configurar o nome da porta, eureka e endereço de serviço Eureka no Application.yml
Servidor: Porta: 8080Spring: Aplicação: Nome: EK-Providerureureka: Instância: HostName: LocalHost Cliente: ServiceUrl: DefaultZone: http: // localhost: 8761/eureka/
Crie um serviço de descanso
@RestControllerPublic Classe Hellocontroller {@RequestMapping ("/hello") public String Hello (httpServletRequest Request) {return "hello:" + request.getRequesturl (); }}Ativar anotação do cliente Eureka @enableeurekaserver
@Enableeurekaclient@springbootApplicationPublic Classe ekproviderApplication {public static void main (string [] args) {new springapplicationbuilder (ekproviderApplication.class) .run (args); }}Após a startup, você pode ver no console Eureka que o provedor de serviços se registrou em Eureka
Crie um chamador de serviço
confiar
<Depencency> <PuerpId> org.springframework.cloud </frupiid> <TRATIFACTID> Spring-cloud-starter-config </artifactId> </dependency> <pendesency> </Groupid> org.springframework.cloud </groupid> <Artifactid> Spring-Starter-Ereureky <GrupidId> org.springframework.cloud </frupiD> <TRATIFACTID> Spring-Cloud-Starter-Ribbon </ArtifactId> </Dependency>
Configurar o nome da porta, eureka e endereço de serviço Eureka no Application.yml
Servidor: Porta: 9000Spring: Aplicação: Nome: EK-Invokeeureka: Instância: HostNome: LocalHost Cliente: ServiceUrl: DefaultZone: http: // localhost: 8761/eureka/
Escreva um serviço de descanso para ligar para o "/hello" do provedor de serviços
@RestController @ConfigurationPublic Classe InvoKECOntroller {@Bean @loadBalanced public RestTemplate getRestTemplate () {return RestTemplate (); } @RequestMapping ("/Invoke") public String Invoke () {RestTemplate RestTemplate = getRestTemplate (); Return RestTemplate.getForObject ("http: // ek-provider/hello", string.class); }}No modo tradicional, geralmente usamos o HTTPClient no Apache para chamar o serviço REST. Aqui usamos o Spring para fornecer o componente RestTemplate que chama o serviço REST. O próprio Resttemplate não tem a capacidade de chamar serviços distribuídos, mas depois que o feijão restante é modificado pela anotação @loadbalanced, esta instância de Resttemplate tem a capacidade de acessar serviços distribuídos, graças aos vários interceptores fornecidos pela primavera.
Ativar anotação do cliente Eureka @enableeurekaserver
@Enableeurekaclient@springbootApplicationPublic Classe ekinvoKeApplication {public static void main (string [] args) {new springapplicationbuilder (ekinvoKeApplication.class) .run (args); }}Após a startup, você pode ver no console Eureka que o chamador de serviço foi registrado em Eureka
Em seguida, acesse a interface "Invoke" do chamador de serviço no navegador. Retornar como segue
Resumir
O servidor Eureka mantém as informações mais recentes de registro através do link de batimentos cardíacos, que é armazenado na memória.
Os provedores de serviços Eureka conduzem principalmente:
Os chamadores de serviço eureka conduzem principalmente:
Endereço do código -fonte: https://github.com/xc564864894/springcloud/tree/master/eureka(%e4%B8%80)
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.