Обзор
- Мы настроим сервер Eureka (реестр служб, используемый для регистрации нескольких служб/микросервисов).
- Мы настроим несколько клиентов Eureka (REST-сервисы, которые регистрируются на сервере Eureka).
- Мы будем выполнять балансировку нагрузки на стороне клиента и обнаружение сервисов с помощью Eureka.
Вот видеоурок. Пожалуйста, проявите немного любви и подпишитесь на мой канал Подписаться .
Настройка Эврики Семь
Зависимость, необходимая для настройки сервера eureka, – это “spring-cloud-starter-netflix-eureka-client” вместе с spring-boot-starter-parent. вы можете сгенерировать код, перейдя по ссылке https://start.spring.io/ , и укажите идентификатор группы, идентификатор артефакта и укажите необходимые зависимости, как показано ниже, и нажмите кнопку сгенерировать, которая сгенерирует образец кода с зависимостью, добавленной в ваш вы можете сгенерировать код, перейдя по ссылке
Соответствующий pom.xml должно выглядеть следующим образом
4.0.0 org.springframework.boot spring-boot-starter-parent 2.2.3.RELEASE com.example eurekaserver 0.0.1-SNAPSHOT eurekaserver Demo project for Spring Boot 1.8 Hoxton.SR1 org.springframework.cloud spring-cloud-starter-netflix-eureka-server org.springframework.boot spring-boot-starter-test test org.junit.vintage junit-vintage-engine org.springframework.cloud spring-cloud-dependencies ${spring-cloud.version} pom import org.springframework.boot spring-boot-maven-plugin
Как только у вас есть проект, откройте основной класс Spring boot с аннотацией @SpringBootApplication и добавьте аннотацию @EnableEurekaServer , класс должен выглядеть следующим образом.
package com.example.eurekaserver; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; @SpringBootApplication @EnableEurekaServer public class EurekaserverApplication { public static void main(String[] args) { SpringApplication.run(EurekaserverApplication.class, args); } }
Последним шагом в настройке сервера является добавление файла application.yml , который будет иметь свойства, связанные с eureka, когда вы запускаете приложение с помощью @EnableEurekaServer аннотации, он будет искать файл bootstrap.yml , если он не найден, он будет искать файл application.yml для свойств файл yml должен выглядеть примерно так.
server: port: 9090 eureka: client: register-with-eureka: false fetch-registry: false serviceUrl: defaultZone: http://localhost:9090/eureka/
Вышеупомянутый файл свойств yaml определяет эврику зона по умолчанию URL-адрес службы , где предполагается запустить eureka. register-with-eureka свойство имеет значение false, так как мы не хотим регистрировать сервер Eureka для самого себя. Как только все будет готово, структура проекта должна выглядеть так, как показано на рисунке ниже
Продолжайте и запустите приложение spring boot, сервер eureka должен быть подключен к любому порту, который вы указали в application.yml файл в этом случае сервер eureka будет работать по адресу localhost:9090 и будет выглядеть так, как показано ниже.
Ола, мы настроили сервер eureka.
Теперь мы продолжим и создадим два клиента с именами client1 и client2 из инициализатора spring, подобного приведенному выше, с добавлением еще одной зависимости Eureka Discovery Client, как показано ниже
Как только мы создадим оба проекта, мы продолжим и добавим аннотацию @EnableDiscoveryClient в корне Springbootapplication класс, как показано ниже для обоих клиентов Клиент1 и Клиент2
package com.example.client2; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; @SpringBootApplication @EnableDiscoveryClient public class Client2Application { public static void main(String[] args) { SpringApplication.run(Client2Application.class, args); } }
Аналогичным образом, нам необходимо обновить приложение.файл yml, как показано ниже, содержащий необходимые сведения о конфигурации eureka.
spring: application: name: 'client1' server: port: 8081 eureka: instance: hostname: ${vcap.application.uris[0]:localhost} prefer-ip-address: true lease-renewal-interval-in-seconds: 10 lease-expiration-duration-in-seconds: 20 client: service-url: defaultZone: http://localhost:9090/eureka
В приведенном выше коде мы указали имя приложения spring и URL-адрес клиентской службы eureka, где находится сервер eureka, поэтому, как только вы запустите клиент, он просмотрит URL-адрес службы и попытается зарегистрироваться. Свойство * интервал продления аренды в секундах: 10 и срок действия аренды в секундах: 20 * позволяет серверу Eureka проверять работоспособность клиента. Как только вы внесете эти изменения, продолжайте и запустите оба клиента.
Если вы вернетесь на сервер Eureka, теперь вы сможете увидеть двух клиентов, зарегистрированных с именами КЛИЕНТ1 и КЛИЕНТ 2 , как показано ниже.
Теперь, когда настройка завершена, два клиента могут общаться друг с другом с помощью обнаружения службы.
Вот видеоурок. Пожалуйста, проявите немного любви и подпишитесь на мой канал Подписаться .
Оригинал: “https://dev.to/nagarajendra/netflix-eureka-server-and-client-setup-with-spring-boot-3j9n”