Рубрики
Без рубрики

Простая реализация схемы автоматического выключателя в пружинной загрузке

В этой статье предполагается, что вы уже знаете основы Spring Boot:) Схема автоматического выключателя – это способ… С тегами spring boot, hystrix, java.

В этой статье предполагается, что вы уже знаете основы Spring Boot:)

Схема автоматического выключателя – это способ предотвращения сбоев в программной системе, вызванных неудачными удаленными вызовами другой службы. В этой статье мы рассмотрим, как реализовать Spring Cloud Netflix Hystrix библиотеку в Spring Boot, чтобы продемонстрировать этот шаблон.

Прежде всего, нам нужно настроить службу, которая будет вызываться клиентом. Мы можем пойти в start.spring.io для начальной загрузки проекта Spring Boot с Spring Web в качестве зависимости.

Теперь давайте загрузим проект и создадим Информационный контроллер класс, у которого будет конечная точка, которую вызовет наша клиентская служба.

После этого давайте создадим Информационная служба класс, который имеет метод для возврата строки, обозначающей, что это сообщение с сервера.

На данный момент мы в основном закончили с реализацией сервера. Если мы запустим эту услугу и нажмем http://localhost:8080/info в браузере мы видим “Привет, это сообщение от службы загрузки Spring. “в качестве ответа.

Хорошо, теперь нам нужно создать клиентскую службу, чтобы использовать ответ конечной точки от вышеуказанной службы. Так же, как и выше, давайте загрузим другую службу загрузки Spring, но с дополнительной зависимостью, Весеннее облако Netflix Hystrix .

Давайте также создадим класс Info Controller здесь, как показано ниже:

Кроме того, давайте создадим Информационный сервис класс, как показано ниже.

Как мы видим выше, мы добавили вызов сервера в метод ” getServerInfo() “. Это вернет “Привет, это сообщение от службы загрузки Spring. “ответьте, если служба работает нормально. Однако, в случае, если служба не отвечает по разным причинам, мы определили резервный метод ” getFallBackInfo() “. Этот метод упоминается в методе ” getserverinfo() ” с помощью аннотации ” @HystrixCommand “. Эта аннотация является ключом, который сработает, если ваше серверное приложение выйдет из строя.

Еще одна вещь, которую нам нужно сделать, это изменить порт по умолчанию для этого клиентского приложения в файле application.properties , как показано ниже.

Причина, по которой мы делаем это, заключается в том, что серверное приложение, которое мы создаем сначала, уже запущено на порту 8080.

Еще одна важная вещь, которую нужно добавить, – это ” @enablehystrix ” в основном классе клиентского приложения, который, как следует из названия, включит резервный вариант hystrix в нашем приложении.

Чтобы увидеть нормальный поток нашей клиент-серверной системы, давайте запустим оба приложения и нажмем http://localhost:8081/info конечная точка в браузере. В этом сценарии мы увидим “Привет, это сообщение от службы загрузки Spring”. в качестве ответа. Теперь, чтобы увидеть автоматический выключатель в действии, нам нужно остановить серверное приложение. Как только мы сделаем это и вызовем указанную выше конечную точку с клиента, мы увидим “Привет, это резервная информация с сервера”. в качестве ответа, который определен в нашем резервном методе в клиентском приложении.

Вот и все! Предполагается, что это наивное приложение библиотеки hystrix от Netflix, поэтому я сохранил всю структуру проекта простой. Я надеюсь, что эта статья будет полезной!

Оригинал: “https://dev.to/mannik01/a-simple-implementation-of-circuit-breaker-pattern-in-spring-boot-140c”