иллюстрировать:
лента является ролью в Spring-Cloud в качестве потребителя услуг, через которую клиент может потреблять услуги поставщика услуг.
Например, в этом примере поставщик услуг регистрируется в регистрационном центре. Поставщик услуг предоставляет интерфейс услуг, возвращая строку Hello. Мы называем этот интерфейс через ленту, а затем получаем услугу поставщика услуг, не разоблачая адрес реального поставщика услуг.
Предпосылка:
Следуйте предыдущим учебным пособиям, чтобы построить регистрационный центр и поставщик услуг. Вы можете использовать зарегистрированный регистрационный центр здесь, или вы не можете его использовать. Это временно установлено, чтобы быть зарегистрированным регистрационным центром, который был установлен перед использованием, и поставщик услуг может предоставить только один.
Подготовка:
1. Начните регистрационный центр
Согласно предыдущему уроку, используйте Peer1 и Peer2, чтобы начать регистрационный центр двух осколков. Если это один узел, вы можете напрямую запустить проект.
После запуска вы можете проверить Localhost: 1111 или Localhost: 1112, как показано на рисунке
2. Начните поставщика услуг
Чтобы увидеть ситуацию с балансировкой нагрузки, необходимо запустить двух поставщиков услуг
Согласно предыдущему учебному пособию, двое терминала включены для запуска указанных портов (две идентичные службы также могут настраивать различные порты в своих соответствующих файлах конфигурации). Две инструкции терминала следующие:
CD TargetJava -Jar SpringClouddemo-0.0.1-Snapshot.jar-server.port = 8080
CD TargetJava -jar SpringClouddemo-0.0.1-Snapshot.jar-server.port = 8081
Результаты стартапа:
На этом этапе подготовка была завершена
текст:
1. Справочник ленточной ленты
Создайте новый проект Maven без использования шаблона. Проект называется Robbin-Customer, а зависимости импорта ссылаются следующим образом:
<? xml version = "1.0" Encoding = "utf-8"?> <project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xsi: schemalocation = "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <dolidyversion> 4.0.0 </modelversion> <groupid> com.hellxz </GroupId> <tratbactid> <tratbactid> <tratbactid> <britbactid> <pryfactid> <britefactid> </artbactide> </modelversion> <groupD> com.hellxz <sersion> 1.0-snapshot </version> <parent> <groupid> org.springframework.boot </GroupId> <ArtifactId> Spring-Boot-Starter-parent </artifactid> <sersion> 1.5.9.reeleas <ArtifactId> Spring-Boot-Starter-web </artifactId> </deperency> <Dependency> <groupId> org.springframework.cloud </GroupId> <strifactid> Spring-Cloud-starter-eureka </artifactid> <serview> release </version> </dependency> <Deviliter> <groupd> org.springfringfringfringFringFringFringFringFringFringFringFringFringFringFringFr <ArtifactId> Spring-Cloud-Starter-Ribbon </artifactId> <sersive> выпуск </version> </deploardency> </degy Devility> </degy Devility> <deyedencyManagement> <Dependencies> <dependency> <groupid> org.springphramework.cloud </GroupD> <ratifactid> spring-cloud-dependentes <Тип> POM </type> </dependency> </deperiancess> </depertive> </dependencymanagement> </project>
Создайте новый класс стартапов Springboot и передайте Resttemplate The Spring Container для управления
Пакет com.cnblogs.hellxz; import org.springframework.boot.springapplication; импорт org.springframework.boot.autoconfigure.springbootapplication; импорт org.springframe.cloud.client.discovery.enablediscoveryclient; org.springframework.cloud.client.loadbalancer.loadbalanced; импорт org.springframework.context.annotation.bean; import org.springframework.web.client.resttemplate;/*** @author: Hellxz* @description: Приложение потребителя* @date: 2018/4/16 15:45 15:45 */ @EnabledIscoveryClient @SpringBootApplicationPublic Class CustomerApplication {@bean // Поддержка этого боба в пружинный контейнер @loadbalanced // Включить балансировку нагрузки через эту аннотацию Resttemplate Resttemplate () {return new RestTemplate (); } public static void main (string [] args) {springApplication.run (customerApplication.class, args); }}Создайте Application.yml в каталоге SRC/Resources для информации о регистрации конфигурации. В этой статье используется регистрационный центр Sharded. Пожалуйста, настройте Defaltzone для одного узла.
Сервер: порт: 9000 #определить сервисный порт для ленточной пружины.
Создайте CustomerController в каталоге класса стартапов, введите RestTemplate, чтобы вызвать интерфейс службы
пакет com.cnblogs.hellxz; import org.springframework.beans.factory.annotation.autowired; import org.springframework.web.bind.annotation.requestmapping; импорт org.springframework.web.bindtation.requestmethod; org.springframework.web.bind.annotation.restcontroller; import org.springframework.web.client.resttemplate;/** * @author: hellxz * @description: Consumer Application * @date: 2018/4/16 15:54 */ @ @ @ @ @ @ @ @ @@descrollerpubl Resttemplate Private Resttemplate Resttemplate; @Requestmapping (value = "/лент-Customer", method = requestMethod.get) public String hellocustomer () {// прокомментировано здесь, потому что я вытащил его из интерфейса услуг по доступе по цепочке, поэтому результат не будет возвращен, и будет сообщена ошибка // return resttemplate.getForentity ("http: // localhost: 8080/hello", string.class) .getbody (); // Использование RestTemplate, чтобы вызвать интерфейс MicroService return resttemplate.getForentity ("http: // hello-service/hello", string.class) .getbody (); }}Примечание. Строка 24 вышеуказанного кода дает демонстрацию ошибки. Если возникает ошибка при доступе к интерфейсу ленты и появляется белая страница ошибки, пожалуйста, проверьте здесь
На этом этапе строится приложение для потребителей ленты, и тест запускается
тест:
Посетите http: // localhost: 1111/Мы обнаружили, что это заявление на потребитель ленты было зарегистрировано в регистрационном центре
Посетите http: // localhost: 9000/ленточный Customer
Помните, что если в проекте поставщика услуг есть доступ, информация будет напечатана, поскольку были запущены два поставщика услуг, здесь вы можете проверить балансировку нагрузки ленты.
Просмотреть выход услуг поставщика
Второй терминал нет, и он все еще отображается в разрешении конечных точек Eureka через строку конфигурации
Обновить страницу, чтобы просмотреть терминал. Поскольку реализация балансировки нагрузки по умолчанию Ribbon является опросом, может возникнуть доступ к одной и той же сервисе несколько раз. Обновите страницу несколько раз, и она определенно будет отображаться в другом термине!
Заключение:
Как потребитель услуги, лента не может подвергать адресе интерфейса пользователю при получении услуг, предоставляемых поставщиком услуг. Видно, что при вызове интерфейса услуг здесь используется имя услуги поставщика услуг вместо имени хоста. Эта функция очень важна в рамках управления обслуживанием.
С тех пор, как я сначала изучил генератор Jhipster, я хотел бы предсказать его заранее, а затем будет технология, называемая Failign, которая может заменить ленту. Эта серия блогов - все учебные заметки. В фактической работе может быть ситуация, когда приложение является как поставщиком услуг, так и потребителем услуг.
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.