Используйте Eureka для достижения управления обслуживанием
Функция: реализовать управление услугами (регистрация и обнаружение услуг)
Введение: Spring Cloud Eureka - это модуль управления услугами в рамках проекта Spring Cloud Netflix. Проект Spring Cloud Netflix является одним из субпроектов Spring Cloud. Его основной контент - упаковать серию продуктов с открытым исходным кодом Netflix. Он обеспечивает самоотверженную интеграцию Netflix OSS для приложений Spring Boot. Благодаря некоторым простым аннотациям разработчики могут быстро настраивать общепринятые модули в своих приложениях и создавать огромную распределенную систему. Его основные модули включают: Discovery Service Discovery (Eureka), автоматический выключатель (Hystrix), интеллектуальная маршрутизация (Zuul), балансировка нагрузки клиента (лента) и т. Д.
Практическая практика проекта:
Центр регистрации услуг: Eureka-Server
Функция: Центр регистрации услуг предоставляет функцию регистрации обслуживания
Поставщик услуг: Eureka-Client
Функция: зарегистрируйте службу в центр регистрации услуг
Центр регистрации услуг: Eureka-Server
Создайте новый проект Springboot: Eureka-Server, и его конфигурация Pom.xml выглядит следующим образом:
<properties> <project.build.sourceencoding> utf-8 </project.build.sourceEncoding> <project.Report.OutputEncoding> UTF-8 </project.Report.OutputEncoding> <java.version> 1.8 </java.version> </properties> <egependency> <leabletindy> <groupId> org.springframework.cloud </GroupId> <ArtifactId> Spring-Cloud-Starter-eureka-server </artifactid> </depervice> </depertive> <deyedencymanage> <depertive> <deyedudence> <groupid> <sersion> dalston.sr1 </version> <type> pom </type> <clape> import </scope> </dependency> </depertive> </deperencymanagement>
Очень просто реализовать функцию центра регистрации услуг. Вам нужно использовать аннотацию @enableteurekaserver в классе стартапа проекта EurekaserverApplication.
@Enableeurekaserver @springbootapplication public class eurekaserverapplication {public static void main (string [] args) {new SpringApplicationBuilder (eurekaserverApplication.class) .web (true) .run (args); }}По умолчанию Центр регистрации служб также попытается зарегистрироваться в качестве клиента, поэтому нам необходимо отключить его поведение регистрации клиента и просто добавить следующую информацию в файл приложения.
spring.application.name = eureka-serverserver.port = 1001eureka.instance.hostname = localhosteureka.client.register-with-eureka = falseeureka.client.fetch-registry = false
Начните EurekaserverApplication, посетите http: // localhost: 9001/чтобы увидеть страницу Эврики. В районе красного ящика вы можете видеть, что нет экземпляра службы задач, зарегистрированного в текущем центре регистрации службы.
Поставщик услуг: Eureka-Client
После того, как каждый экземпляр зарегистрирован, сердцебиение необходимо для отправки сердцебиения в центр регистрации. Когда клиент регистрируется с сервером, он предоставит некоторые метаданные, такие как хост и порт, URL, домашняя страница и т. Д. Eureka Server получает сообщения о сердцебиении от каждого экземпляра клиента. Если сердцебиение времени выходит, экземпляр обычно удаляется с зарегистрированного сервера.
Создайте новый проект Springboot: Eureka-Client, а его конфигурация Pom.xml заключается в следующем:
<properties> <project.build.sourceencoding> utf-8 </project.build.sourceEncoding> <project.Report.OutputEncoding> UTF-8 </project.Report.OutputEncoding> <java.version> 1.8 </java.version> </properties> <egependency> <leabletindy> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependency> </dependency> </dependency> <Devingedmangemange> <dependency> <dependency> <groupid> org.springframework.cloud </groupid> <artifactid> spring-cloud-lependencies </artifactid> <sersion> dalston.sr1 </version> <Тип> pom </type> <crappope> import </scope> </vehyse> </зависимости> </зависимость> </зависимость> </зависимость> </зависимость> </зависимость> </зависимость> </зависимость> </зависимость> </зависимость> </зависимость> </зависимость> </зависимость> </зависимость> </зависимость> <зависимости> </зависимость> </зависимость> </зависимость> </зависимость> </зависимость> </зависимость> </type>.
Также очень просто реализовать поставщика услуг. Просто используйте аннотацию @enableeurekaclient в классе запуска проекта EurekaclientApplication.
@Enableeurekaclient @springbootapplication public class eurekaclientapplication {public static void main (string [] args) {new SpringApplicationBuilder (eurekaclientApplication.class) .Web (true) .Run (args); }}Настройте следующее в Application.properties
Spring.application.name = eureka-clientserver.port = 9002eureka.client.serviceurl.defaultzone = http: // localhost: 9001/eureka/
Через свойство Spring.Application.Name мы можем указать имя микросервиса при его вызове, чтобы можно было получить доступ к службе.
Свойство eureka.client.serviceurl.defaultzone соответствует содержанию конфигурации Центра регистрации службы и определяет местоположение центра регистрации услуг.
Используйте свойство Server.port для установки разных портов.
Начните класс EurekaclientApplication
Обновить http: // localhost: 9001/, и вы можете видеть, что наш поставщик услуг зарегистрировался в центре регистрации услуг
Создайте новый DiscoveryController
Используйте DiscoveryClient.getServices (), чтобы получить зарегистрированное имя службы, и используйте @Value, чтобы назначить информацию в файле конфигурации в IP
@RestControllerPublic Class DiscoveryController {@Autowired Private DiscoveryClient DiscoveryClient; @Value ("$ {server.port}") private String ip; @Getmapping ("/client") public String client () {String Services = "Services:"+DiscoveryClient.getServices ()+"IP:"+ip; System.out.println (Services); возврат услуг; }}Посетите: http: // localhost: 9002/client
Наконец, позвольте мне объяснить две аннотации @enableteurekaclient и @enablediscoveryclient
Прежде всего, обе аннотации могут реализовать функцию обнаружения услуг. В Spring Cloud есть много реализаций Spence Cloud (Eureka, Consul, Zookeeper и т. Д.)
@EnableEurekaclient основан на пружине-клуб-нетфликс. Служба использует Eureka в качестве регистрационного центра, а сценарии использования относительно одиноки.
@Enablediscoveryclient основан на весенних клубах. Служба принимает другие регистрационные центры.
Github: https://github.com/mingyuhub/springcloud
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.