Мы завершили два основных компонента регистрационного центра и поставщика услуг. Эта статья представляет службу вызовов с использованием Spring Cloud ленты для загрузки балансировки на стороне клиента.
Балансировка нагрузки (LB: балансировка нагрузки) является первой проблемой, которая будет решена. Перед микросервисами решение LB было в основном централизованным решением балансировки нагрузки и другим независимым LB между потребителями услуг и поставщиками услуг. LB обычно представляет собой специальное оборудование, такое как F5 или программное обеспечение, например, VS, Haproxy и т. Д. Существует таблица отображения адресов для всех услуг на LB. Когда потребитель сервиса вызывает целевой сервис, он сначала инициирует запрос в LB. LB использует определенную политику (такую как круглый робин) для загрузки балансировки запроса в целевую службу.
Появление микросервисов дает еще одну идею для реализации LB: интеграция функций LB в процесс обслуживания потребителей в виде библиотек, а не предоставленного централизованным устройством или сервером. Это решение называется балансировкой мягкой нагрузки или балансировкой нагрузки клиента. В Spring Cloud, в сочетании с функцией регистрации услуг Eureka, подпроект ленты реализует балансировку нагрузки для отдыха.
Подавайте потребителям с весенней облачной лентой
Создать новый проект с весенней облаком-кувшиной-потребителем
Создать новый подпроект с пружинной облаком-клод-образец-потребитель
Добавить зависимости ленты и эврики
<dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-ribbon</artifactId> </dependency> <dependency> <groupId> org.springframework.boot </GroupId> <artifactid> Spring-boot-starter-web </artifactid> </dependency> </dependencies>
Configure ApplicationIn.properties, Адрес центра регистрации
Spring.application.name = ConsumerServer.port = 30001eureka.client.service-url.defaultzone = http: // localhost: 10001/eureka/, http: // localhost: 10002/eureka/
Напишите usercontroller, добавьте аннотацию @loadbalanced, включите балансировку ленточной нагрузки
@Controller @requestmapping ("user") открытый класс usercontroller {@bean @loadbalanced resttemplate initresttemplate () {return new Resttemplate (); } @Autowired private resttemplate resttemplate; @Requestmapping ("Add") @Responsebody public String add (String username, String Age) {return resttemplate.getForentity ("http: // Производитель/user/add", string.class, username, age) .getbody (); }}Напишите ConsumerApplication, добавьте @enableeurekaclient, включите регистрацию услуг
@Enableteurekaclient@SpringbootApplicationPublic Class ConsumerApplication {public static void main (string [] args) {SpringApplication.run (ConsumerApplication.class, args); }}Производитель развертывания кластера
Чтобы моделировать производителя кластера, новое приложение-Profile1.properties и Application-profile2.properties создаются в проекте производителя.
Приложение-profile1.properties
Spring.Application.name = ProducterServer.port = 20001eureka.client.service-url.defaultzone = http: // localhost: 10001/eureka/, http: // localhost: 10002/eureka/
Приложение-profile2.properties
Spring.Application.name = ProducterServer.port = 20002eureka.client.service-url.defaultzone = http: // localhost: 10001/eureka/, http: // localhost: 10002/eureka/
Чтобы проверить эффект нагрузки, мы напечатали порт призванного сервиса
@Controller@requestmapping ("user") открытый класс usercontroller {private logger logger = loggerfactory.getLogger (getClass ()); @Autowired Private DiscoveryClient Client; @Requestmapping ("добавить") @Responsebody public String adduser (String username, String Age) {return "Успех из" + client.getLocalServiceInstance (). Gethost () + ":" + client.getLocalServiceInstance (). GetPort (); }}Начните тест
Начните регистрационный центр
Настройте активные профили для профиля1 и профиля2 соответственно, запустите дважды и заполните запуск сервиса кластера реестра.
Начните поставщика услуг
Начните поставщика услуг так же, как и выше.
Начните служить потребителям
Поставщик услуг может быть выполнен на отдельной основе, и потребительское применение может быть начато нормально.
проверять
Введите http: // localhost: 30001/user/добавить из браузера
Посетите еще раз:
Видно, что наша служба вызовов с балансировкой нагрузки была успешной, а по умолчанию балансируют нагрузку в соответствии с обучением ротации.
Суммировать
Эта статья представляет и завершает вызов для использования Spring Cloud ленты для балансировки нагрузки клиента.
Далее мы продолжим представлять, как использовать Spring Cloud для мониторинга услуг.
Скачать исходный код
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.