1. Введение в Spring Cloud
Spring Cloud - это инструмент разработки архитектуры микросервиса, основанный на реализации Springboot. Он обеспечивает простой метод разработки для операций, связанных с архитектурой микросервиса, такой как управление конфигурацией, управление услугами, автоматические выключатели, интеллектуальная маршрутизация, микроагенты, шины управления, глобальные замки, кампании принятия решений, распределенные сеансы и управление государством кластера.
Spring Cloud включает в себя несколько подпроектов (для нескольких различных продуктов с открытым исходным кодом, участвующих в распределенных системах, и также может быть добавлено), как описано ниже.
Cloud Config: Инструменты управления конфигурацией, Spring Cloud Netflix: Core Components, Spring Cloud Bus: события, шина сообщения и многое другое.
2. Spring Cloud Eureka
Spring Cloud Eureka является частью Spring Cloud Netflix Microservice Suite. Он является вторичным инкапсулированным на основе Netflixeureka, который в основном отвечает за выполнение функций управления услугами в архитектуре микросервиса. Spring Cloud добавляет автоматические конфигурации в стиле Spring к Eureka, мы можем легко интегрировать приложения микросервисных приложений, созданные Spring Boot с системой управления сервисом Eureka, просто введя зависимости и конфигурации аннотаций.
Можно сказать, что управление услугами является самым основным и основным модулем в архитектуре микросервиса. В основном он используется для реализации автоматической регистрации и обнаружения различных экземпляров микросервиса.
Iii. Пример
(1) Инструмент: INTELLIJ IDEA
(2) Создать новый пустой проект
(3) Создать новый сервер Eureka, модуль, именем: Eurekaserver
Щелкните правой кнопкой мыши на проекте -> Создать модуль -> Выберите Springinitialir -> Заполните имя проекта, и следующий шаг ->, выберите сервер Eureka, как показано на рисунке:
(3-1) pom.xml
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-server</artifactId> </dependency> <dependency> <groupId> org.springframework.boot </GroupId> <artifactid> spring-boot-starter-test </artifactid> <cerpope> test </scope> </depervice>
(3-2) Application.yml
Сервер: порт: 5555 Eureka: экземпляр: hostname: localhost client: registerwitheureka: false fetchregistry: false serviceUrl: defaultzone: http: // $ {eureka.instance.hostname}: $ {server.port}/eureka/ Примечание: Eureka.client.register-with-eureka: Поскольку это приложение является реестром, оно установлено false, что означает, что вы не регистрируете себя в реестре.
eureka.client.fetch-registry: Поскольку обязанность Реестра состоит в том, чтобы поддерживать экземпляры обслуживания, ему не нужно получать услуги, поэтому он также установлен на False.
(3-3) входной класс
Импорт org.springframework.boot.springapplication; Импорт org.springframework.boot.autoconfigure.springbootapplication; Import org.springframework.cloud.netflix.eureka.server.enableteurekaserver; @Enableeurekaserver @springbootapplication public class eurekaserverapplication {public static void main (string [] args) {springapplication.run (eurekaserverApplication.class, args); }}(3-4) Начните тест
После завершения вышеуказанной конфигурации запустите приложение и посетите http: // localhost: 5555/. Вы можете увидеть информационную панель Eureka, показанную на рисунке ниже. Экземпляры, в настоящее время зарегистрированные в столбце Eureka, пусты, указывая на то, что регистрационный центр не зарегистрировал никаких услуг.
(4) После того, как поставщик услуг регистрации завершил создание Центра регистрации услуг, мы постараемся добавить существующее приложение Spring Boot в систему управления услугами Emeka.
(5) Создайте новый клиент Eureka, модуль, названный: Helloserver, этот Helloserver используется в качестве дочерней модели Eurekaserver
(6) Реформировать конфигурацию POM модели родительской модели и дочерней модели (6-1) Конфигурация Eurekaserver's Pom.xml:
<CACKEDGE> POM </упаковка> <Модули> <DODULE> ../ HelloServer </module> </modules>
(6-2) Все pom.xml of Eurekaserver:
<? 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"> <dolidayversion> 4.0.0 </modelversion> <groupid> com.example </GroupId> <ArtFactId> DEMOEKASERVIDERVERVERVERVERVERVERVERVERVERVERVERVERGURER> <GroupId> com.Example> <TratifActId> </modelVerion> <groupid> com.Exampt <serse> 0.0.1-snapshot </version> <badagaging> pom </packaging> <Модули> <Dodule> ../ Hellserver </module> </modules> <mame> eurekaserver </name> <distrame> demo project для spring boot> <parent> <groupid> org.spramework.boot </Group Boot> <parent> <groupid> org.spramework.boot </Group> </parent> <groupid> org.spramework.boot </Group> <ratfactid> Spring-Boot-Starter-parent </artifactid> <sersion> 1.5.9.reelease </version> <venterativePath/> <!-Поиск родителя от репозитория-> </parent> <properties> <project.build.sourceencoding> utf-8 </project.build.sourceencoding> <project.reporting.outputencoding> UTF-8 </Project.Report.OutputEncoding> <java.version> 1.8 </java.version> <Spring-cloud.version> edgware.release </spring-cloud.version> </properties> <depertion> <Deviliew> <groupid> org.spramefringfring form. <TrifactId> Spring-boot-starter-web </artifactid> </deperency> <depervice> <groupid> org.springframework.cloud </groupid> <stracactid> spring-cloud-starter-eureka-server </artifactid> </jeply> <dependency> <groupid> org.springframe.boot.boot.boot.boot.boot.boot.boot. <artifactid> spring-boot-starter-test </artifactid> <crapope> test </scope> </depertive> </degy Dependencies> <DegependencyManagement> <DepeCope> <Depective> <groupid> org.springframework.cloud </GroupId> <artifactid> spring-cloud-dependences </artifactid> <версии> $ {spring-croud. <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencies> </dependencies> </dependencyManagement> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>(6-3) Конфигурация Helloserver's Pom.xml:
<parent> <groupid> com.example </groupid> <artifactid> demoeurekaserver </artifactid> <sersion> 0.0.1-snapshot </version> <enterbitypath> ../ eurekaserver/pom.xml </verivativePath> </parent>
(6-4) Все конфигурации helloserver of HelloServer:
<? 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> <parent> <groupid> com.example </Groupid>. <artifactId>demoeurekaserver</artifactId> <version>0.0.1-SNAPSHOT</version> <relativePath>../eurekaserver/pom.xml</relativePath> </parent> <artifactId>helloserver</artifactId> <packaging>jar</packaging> <name>helloserver</name> <description>Demo project for Spring Boot</description> <properties> <start-class>com.example.helloserver.HelloserverApplication</start-class> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId> org.springframework.boot </GroupID> <ArtifactId> Spring-boot-starter-test </artifactid> <crappope> тест </scope> </depertive> </repertive> </depertive> </artifactidence> <groupd> org.spramework.cloud. <serse> $ {Spring-cloud.version} </version> <sype> pom </type> <cracpe> import </scope> </depertion> </depervice> </degencymanagement> <buld> <blicins> <bricin> <groupid> org.springframework.boot </GroupId> <ratifactid> spring-maven-plugin </build> </project>(6-5) Приложение HelloServer.yml Конфигурация:
Сервер: Порт: 5556 Spring: Приложение: Имя: HelloServer Eureka: Client: ServiceUrl: Defaultzone: http: // localhost: 5555/eureka/
(6-6) Класс стартапов HelloServer:
@Enableeurekaserver @springbootapplication @restcontroller public class helloserverapplication {private final logger log = (logger) loggerfactory.getlogger (helloserverApplication.class); @Autowired Private DiscoveryClient Client; @RequestMapping (name = "/hello", method = requestMethod.get) public String index () {serviceInsing ancess = client.getLocalServiceInstance (); log.info ("/hello, host:" + exaction.gethost () + ", service_id:" + exante.getserviceid ()); вернуть "Привет, Springcloud ~"; } public static void main (string [] args) {springApplication.run (helloserverApplication.class, args); }}(7) Начните Eurekaserver и Helloserver соответственно и тестируйте:
(7-1) Посетите Eurekaserver: (Вы можете ясно увидеть информацию о HelloServer)
(7-2) Посетите Helloserver:
(7-3) Проверьте информацию о консоли HelloServer:
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.