Обзор
Используйте простой пример, чтобы продемонстрировать основное использование Eureka и ленты в Spring Cloud.
Версия и среда
Построить сервер Eureka
В Spring Cloud вы можете использовать Eureka для управления микросервисами, а микросервисы могут быть зарегистрированы в Eureka.
Во -первых, вы можете использовать Spring Initialzr Idea для создания центра регистрации сервера Eureka.
Измените файл Application.properties и добавьте следующее содержимое
Spring.application.name = eureka-server eureka.instance.hostname = localhost eureka.client.register-with-eureka = false eureka.client.fetch-registry = false Server.port = 8881
Добавить аннотацию @EnableEurekaServer в класс запуска ServerApplication , сгенерированный Spring Boot для нас
пакет com.springcloud.eureka; import org.springframework.boot.springapplication; импорт org.springframework.boot.autoconfigure.springbootapplication; импорт org.springframework.cloud.netflix.eureka.server.enableeurekaserver;@enableteurekaserver@springbootapplication public class serverapplication {public static void main (string [] args) {springApplication.run (serverapplication.class, args); }}Введите http: // localhost: 8881/в вашем браузере
Вы можете увидеть следующий интерфейс:
Вы можете видеть, что служба еще не была зарегистрирована. На этом этапе был построен простой центр регистрации микросервиса.
Написание микросервиса пользователя Service
Затем используйте REST, чтобы построить интерфейс микросервиса и зарегистрировать его в регистрационном центре. Все еще используя Spring Initialzr для создания нового проекта. Использование такое же, как и выше.
Обратите внимание, что на этот раз вам нужно проверить компонент Eureka Discovery . Вместо Eureka Server .
Измените файл Application.properties и добавьте следующий контент:
spring.application.name = user server.port = 8882 eureka.client.service-url.defaultzone = http: // localhost: 8881/eureka/
Используйте аннотацию @EnableDiscoveryClient в классе UserApplication , который для нас генерирует Spring Boot .
пакет com.springcloud; import org.springframework.boot.springapplication; import org.springframework.boot.autoconfigure.springbootApplication; импорт org.springframework.cloud.client.discovery.ansablediscyclient;@[email protected] static void main (string [] args) {springapplication.run (userapplication.class, args); }}
Создайте REST Full Microservice Interface.
package com.springcloud;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class UserController { @GetMapping("/getUser") public String getUser() { return "I am user list."; }}После запуска пользователя Application посетите http: // localhost: 8881/снова
Вы обнаружите, что пользовательская служба была зарегистрирована.
Написание заказа микросервиса
Затем мы создаем микросервис заказа и получаем доступ к интерфейсу в пользовательском микросервисе.
Все еще используйте Spring Initialzr , чтобы создать новый проект. Пользовательский микросервис может быть развернут на нескольких машинах. Когда клиент обращается к этой службе, запрос может быть направлен на любую машину с развернутой службой пользователя. Поэтому клиенту необходимо использовать алгоритм маршрутизации для планирования пользовательской службы. В Spring Cloud вы можете использовать компоненты ленты для выполнения маршрутизации клиента. Лента перейдет в центр регистрации услуг, чтобы получить список услуг, чтобы вызвать соответствующую службу.
На этот раз, в дополнение к проверке компонента Eureka Discovery . Вам также нужно проверить Ribbon .
Измените файл Application.properties и добавьте следующий контент:
Spring.application.name = Order Server.port = 8883 Eureka.client.service-url.defaultzone = http: // localhost: 8881/eureka/
Добавьте следующую конфигурацию в класс OrderApplication , сгенерированный Spring Boot .
пакет com.springboot; импорт org.springframework.boot.springapplication; импорт org.springframework.boot.autoconfigure.springbootapplication; импорт org.springframework.cloud.client.discovery.ansablediscovericlient; importframe.cloudslound.cloudslound.cloudslound.cloudslound.cloudslound.cloudslound.cloudslound.cloudslound.liploundanclainclaindancelanceblancebalance. org.springframework.context.annotation.bean; import org.springframework.web.client.resttemplate; @enablediscoveryclient @springbootapplicationpublic class orderapplication {@bean @loadbalanced resttemplate resttemptate () {return new Resttemplate (); } public static void main (string [] args) {springApplication.run (orderapplication.class, args); }} Поскольку используется лента, здесь необходимо использовать аннотацию @LoadBalanced .
Напишите OrderController .
пакет com.springboot; импорт org.springframework.beans.factory.annotation.autowired; импорт org.springframework.web.bindation.getmaping; import org.springframework.web.bindtation.restcontroler; import.springframe.web.bindtatation.restcontroler; 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 (); }} После запуска OrderApplication посетите http: // localhost: 8881/
Вы обнаружите, что служба заказов также была зарегистрирована в регистрационном центре.
Затем мы получаем доступ к методу getOrderUser в OrderController и запускаем вызов методу getUser UserController .
Введите: http: // localhost: 8883/getorderuser
Вы можете видеть, что он возвращается: я являюсь списком пользователей.
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.