Введение в Эврику
Eureka предоставляет услуги на основе REST, которые в основном используются в управлении услугами в кластере. Eureka предоставляет клиентские компоненты на основе Java Language, который реализует функции балансировки нагрузки, создавая условия для развертывания компонентов бизнеса. Используя эту структуру, бизнес -компоненты могут быть зарегистрированы в контейнерах Eureka, которые могут быть развернуты в кластерах, и Eureka в основном поддерживает список этих услуг и автоматически проверяет их статус.
Структура программы
Создать сервер Eureka
зависимость Maven
<DegencyManagement> <depertiencies> <dependency> <groupid> org.springframework.cloud </groupid> <artifactid> spring-cloud-зависимости </artifactid> <sersion> dalston.sr1 </version> <pember> pom </type> <cerpope> Import> </reperty> </зависимость> <зависимость> <зависимость> <зависимость> <Delect> <Segy> <зависимость> <Deginency> </зависимость> <Deginency> </зависимость> <DegySemency> </зависимость> <зависимость> </зависимость> </зависимость> </зависимость> </зависимость>. <groupId> org.springframework.cloud </GroupId> <artifactId> Spring-Cloud-Starter-eureka-server </artifactid> </gethyederies> </depertive>
Измените порт запуска Spring Boot в Application.yml
Сервер: порт: 8761
Включить аннотацию Eureka Service @enableeurekaserver
@Enableteurekaserver@springbootapplicationpublic class ekserverapplication {public static void main (string [] args) {new SpressApplicationBuilder (ekserverApplication.class) .run (args); }}Начать Springboot
[Thread-11] oscneserver.eurekaserverbootstrap: инициализированный контекст сервера [Main] sbcettomcatembeddedservletcontainer: Tomcat начал с порта (S): 8761 (http) [main]. EkserverApplication за 8,594 секунды (JVM работает на 9,523)
Исключение, которое не может быть подключено к серверу, будет отображаться во время запуска. Это связано с тем, что Эврика относится к клиенту, чтобы получить регистрационную информацию при запуске.
Кода -копия выглядит следующим образом:
com.netflix.discovery.shared.transport.transportException: не может выполнить запрос на любом известном сервере
Добавьте следующую конфигурацию и не появится снова при запуске
Eureka: Client: Registerwitheureka: False Fetchregistry: False
Registerwitheureka объявляет, следует ли зарегистрировать свою собственную информацию на сервере Eureka, значение по умолчанию верно.
FetchRegistry заявляет, следует ли заполнить информацию о регистрации на сервере Eureka, значение по умолчанию верно.
Посетите http: // localhost: 8761 в вашем браузере, чтобы просмотреть описание изображения консоли Eureka
Создать поставщика услуг
полагаться
<dependency> <groupid> org.springframework.cloud </groupid> <artifactid> spring-cloud-starter-config </artifactid> </depervice> <dehyedency> <groupid> org.springframework.cloud </GroupD> <ratifactid> Spring-starter-eureka </artifactid> </artifactid> spring-starter-eureka </artifactid> </GroupD> <strifactid> spring-cloud-starter-eureka </artifactid> </GroupD> <Artifactid> Spring-Cloud-starter-eure <groupId> org.springframework.cloud </GroupId> <ratifactid> Spring-Cloud-Starter-Ribbon </artifactid> </depervice>
Настройка имени экземпляра Eureka и адрес службы Eureka и адрес службы Eureka в Application.yml
Сервер: порт: 8080spring: Приложение: Имя: EK-ProvidereReureka: экземпляр: hostname: localhost client: serviceUrl: defaultzone: http: // localhost: 8761/eureka/
Создать службу отдыха
@Restcontrollerpublic class hellocontroller {@requestmapping ("/hello") public String hello (httpservletrequest) {return "hello:" + request.getRequesturl (); }}Включить аннотацию клиента eureka @enableeurekaserver
@Enableteurekaclient@springbootapplicationpublic class ekproviderapplication {public static void main (string [] args) {new SpressApplicationBuilder (ekProviderApplication.class) .run (args); }}После запуска вы можете увидеть в консоли Eureka, что поставщик услуг зарегистрировался в Eureka
Создать абонента службы
полагаться
<dependency> <groupid> org.springframework.cloud </groupid> <artifactid> spring-cloud-starter-config </artifactid> </depervice> <dehyedency> <groupid> org.springframework.cloud </GroupD> <ratifactid> Spring-starter-eureka </artifactid> </artifactid> spring-starter-eureka </artifactid> </GroupD> <strifactid> spring-cloud-starter-eureka </artifactid> </GroupD> <Artifactid> Spring-Cloud-starter-eure <groupId> org.springframework.cloud </GroupId> <ratifactid> Spring-Cloud-Starter-Ribbon </artifactid> </depervice>
Настройка имени экземпляра Eureka и адрес службы Eureka и адрес службы Eureka в Application.yml
Сервер: Порт: 9000Spring: Приложение: Имя: EK-InvokeEureka: экземпляр: hostname: localhost client: serviceUrl: defaultzone: http: // localhost: 8761/eureka/
Напишите службу отдыха, чтобы позвонить поставщику услуг "/Hello"
@RestController @configurationPublic Class InvokeController {@bean @loadbalanced public resttemplate getResttemplate () {return new RestTemplate (); } @RequestMapping ("/invoke") public String invoke () {restTemplate resttemplate = getRestTemplate (); return resttemplate.getForObject ("http: // ek-provider/hello", string.class); }}В традиционном режиме мы обычно используем httpclient в Apache, чтобы вызвать службу REST. Здесь мы используем Spring, чтобы предоставить компонент Resttemplate, который вызывает службу остального. Сам Resttemplate не имеет возможности вызывать распределенные сервисы, но после того, как боб Resttemplate изменяется аннотацией @LoadBalanced, этот экземпляр Resttemplate имеет возможность получить доступ к распределенным услугам благодаря различным перехватчикам, предоставленным весной.
Включить аннотацию клиента eureka @enableeurekaserver
@Enableteurekaclient@springbootapplicationpublic class ekinvokeapplication {public static void main (string [] args) {new SpressApplicationBuilder (ekinvokeapplication.class) .run (args); }}После запуска вы можете увидеть в консоли Eureka, что абонент службы был зарегистрирован в Eureka
Затем обратитесь к интерфейсу «Anloke» сервисного абонента в браузере. Вернуться следующим образом
Суммировать
Сервер Eureka поддерживает последнюю регистрационную информацию через ссылку Heartbeat, которая хранится в памяти.
Поставщики услуг Eureka в основном проводят:
Абоненты Eureka в основном проводят:
Адрес исходного кода: https://github.com/xc564864894/springcloud/tree/master/eureka(%E4%B8%80)
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.