Visão geral
Use um exemplo simples para demonstrar o uso básico de Eureka e Ribbon em Spring Cloud.
Versão e ambiente
Construir servidor Eureka
Na Spring Cloud, você pode usar o Eureka para gerenciar microsserviços, e os microsserviços podem ser registrados no Eureka.
Primeiro, você pode usar Spring Initialzr da Idea para criar o Centro de Registro do Servidor Eureka.
Modifique o arquivo Application.Properties e adicione o seguinte conteúdo
spring.application.name = eureka-server eureka.instance.hostname = localhost eureka.client.register-with-eureka = false eureka.client.fetch-registry = false Server.port = 8881
Adicione @EnableEurekaServer anotação à classe de inicialização ServerApplication Gerated by Spring Boot para nós
pacote com.springcloud.eureka; importar org.springframework.boot.springApplication; importar org.springframework.boot.autoconfigure.springbootApplication; importar; org.springframework.cloud.netflix.eureka.server.enableeurekaserver;@enableeurekaserver@springbootapplicationpublic class ServerApplication {public static void main (string [] args) {springApplication.run (servidorApplication.class.class); }}Digite http: // localhost: 8881/no seu navegador
Você pode ver a seguinte interface:
Você pode ver que o serviço ainda não foi registrado. Neste ponto, um centro de registro de microsserviço simples foi construído.
Escrevendo um MicrosService UserService
Em seguida, use REST para criar uma interface de microsserviço e registrá -la no Centro de Registro. Ainda usando Spring Initialzr para construir um novo projeto. O uso é o mesmo que acima.
Observe que desta vez você precisa verificar o componente Eureka Discovery . Em vez do Eureka Server .
Modifique o arquivo Application.Properties e adicione o seguinte conteúdo:
spring.application.name = user server.port = 8882 eureka.client.service-url.defaultzone = http: // localhost: 8881/eureka/
Use a anotação @EnableDiscoveryClient na classe de UserApplication que Spring Boot gera para nós.
pacote com.springcloud; importar org.springframework.boot.springApplication; importar org.springframework.boot.autoconfigure.springbooTApplication; importPlitical.springFramework.cloud.cloud.discovery.enablAcliplientPlientSClientScriCliMyc.cloud.Cloud.Discovery.EnablediscSlient; estático void main (string [] args) {springapplication.run (userApplication.class, args); }}Crie uma interface de microsserviço completa de repouso.
pacote com.springcloud; importar org.springframework.web.bind.annotation.getMapping; importar org.springframework.web.bind.annotation.restcontroller; @restcontrollerpublic class. }}
Depois de executar o UserApplication, visite http: // localhost: 8881/novamente
Você descobrirá que o serviço do usuário foi registrado.
Escrevendo uma ordem de microsserviço
Em seguida, criamos um microsserviço de ordem e acessamos a interface no microsserviço do usuário.
Ainda use Spring Initialzr para construir um novo projeto. O microsserviço do usuário pode ser implantado em várias máquinas. Quando o cliente acessa esse serviço, a solicitação pode ser roteada para qualquer máquina com o Serviço de Usuário implantado. Portanto, o cliente precisa usar um algoritmo de roteamento para agendar o serviço do usuário. Na Spring Cloud, você pode usar componentes da faixa de opções para fazer o roteamento do cliente. O Ribbon irá para o Centro de Registro de Serviço para obter a lista de serviços para ligar para o serviço correspondente.
Desta vez, além de verificar o componente Eureka Discovery . Você também precisa verificar Ribbon .
Modifique o arquivo Application.Properties e adicione o seguinte conteúdo:
spring.application.name = order server.port = 8883 eureka.client.service-url.defaultzone = http: // localhost: 8881/eureka/
Adicione a seguinte configuração à classe OrderApplication gerada pela Spring Boot .
pacote com.springboot; importar org.springframework.boot.springApplication; importar org.springframework.boot.autoconfigure.springbooTapplication; importient.cringframework.cloud.client.discovery.enablediscoverclient; importient; org.springframework.context.annotation.bean; importar org.springframework.web.client.resttemplate; @Enablediscoveryclient @SpringBoOTApplicationPublic Classe OrderApplication {@Bean @loadBalanced RestTemplate RestTemplate () {ReturnEngMplics {) } public static void main (string [] args) {springApplication.run (orderApplication.class, args); }} Como a fita é usada, a anotação @LoadBalanced precisa ser usada aqui.
Escreva OrderController .
pacote com.springboot; importar org.springframework.beans.factory.annotation.autowired; importar org.springframework.web.bind.annotation.getMapping; importação org.springframework.web.bind.annotation.restcontroller; org.springframework.web.client.resttemplate; @restcontrollerpublic class OrderController {@aUTowired Private Resttemplate Resttemplate; @GetMapping ("/getorderUser") public String getOrderUser () {return Resttemplate.getForentity ("http: // user/getUser", string.class) .getbody (); }} Depois de executar OrderApplication , visite http: // localhost: 8881/
Você descobrirá que o serviço de pedidos também foi registrado no Centro de Registro.
Em seguida, acessamos o método getOrderUser no OrderController e acionamos a chamada para getUser do UserController .
Digite: http: // localhost: 8883/getOrderUser
Você pode ver que ele retorna: estou na lista de usuários.
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.