1. Introduction à Spring Cloud
Spring Cloud est un outil de développement d'architecture microservice basé sur la mise en œuvre de Springboot. Il fournit une méthode de développement simple pour les opérations impliquées dans l'architecture de microservice telles que la gestion de la configuration, la gouvernance des services, les disjoncteurs, le routage intelligent, les micro-agents, le bus de contrôle, les verrous mondiaux, les campagnes décisionnelles, les séances distribuées et la gestion de l'État de cluster.
Spring Cloud comprend plusieurs sous-projets (pour plusieurs produits open source différents impliqués dans des systèmes distribués, et peut également être ajouté), comme décrit ci-dessous.
Spring Cloud Config: Configuration Management Tools, Spring Cloud Netflix: Core Composants, Spring Cloud Bus: événements, Bus de message, etc.
2. Cloud de printemps Eureka
Spring Cloud Eureka fait partie de la suite microservice Spring Cloud Netflix. Il est encapsulé secondaire basé sur Netflixeureka, qui est principalement responsable de l'exécution des fonctions de gouvernance des services dans l'architecture de microservice. Spring Cloud ajoute des configurations automatisées de style Spring Boot à Eureka, nous pouvons facilement intégrer les applications de microservice construites par Spring Boot avec le système de gouvernance de service Eureka en introduisant simplement les dépendances et les configurations d'annotation.
La gouvernance des services peut être considérée comme le module le plus central et le plus de base de l'architecture de microservice. Il est principalement utilisé pour réaliser l'enregistrement automatisé et la découverte de diverses instances de microservice.
Iii. Exemple
(1) Outil: Intellij Idea
(2) Créer un nouveau projet vide
(3) Créer un nouveau serveur Eureka, module, nommé: Eurekaserver
Cliquez avec le bouton droit sur le projet -> Créer un module -> Sélectionnez SpringInitiAr -> Remplissez le nom du projet, et étape suivante ->, sélectionnez Eureka Server comme indiqué sur la figure:
(3-1) pom.xml
<dependency> <proupId> org.springframework.boot </proupId> <Artifactid> printemps-boot-starter-web </ artifactid> </pedigency> <dependency> <proupId> org.springframework.cloud </proupId> <Ertifactid> Spring-Cloud-starter-eurek <GroupId> org.springframework.boot </prôdId> <ArtefactId> Spring-boot-starter-test </refactive> <ccope> test </ccope> </dependency>
(3-2) application.yml
Server: port: 5555 eureka: instance: hostname: localhost client: registerwitheureka: false fetchRegistry: false serviceUrl: defaultZone: http: // $ {eureka.instance.hostname}: $ {server.port} / eureka / Remarque: eureka.client.register-with-eureka: Étant donné que cette application est un registre, il est défini sur False, ce qui signifie que vous ne vous inscrivez pas dans le registre.
eureka.client.fetch-Registry: Étant donné que la responsabilité du registre est de maintenir les instances de service, il n'a pas besoin de récupérer des services, il est également défini sur False.
(3-3) classe d'entrée
import org.springframework.boot.springApplication; import org.springframework.boot.autoconfigure.springbootapplication; import org.springframework.cloud.netflix.eureka.server.enableeurekaserver; @Enableeurekaserver @springbootapplication public class eurekaserverApplication {public static void main (string [] args) {springApplication.run (eurekaserverApplication.class, args); }}(3-4) Démarrez le test
Après avoir terminé la configuration ci-dessus, démarrez l'application et visitez http: // localhost: 5555 /. Vous pouvez voir le panneau d'information Eureka illustré dans la figure ci-dessous. Les instances actuellement enregistrées auprès de la colonne Eureka sont vides, indiquant que le centre d'enregistrement n'a enregistré aucun service.
(4) Une fois que le fournisseur de services d'enregistrement a terminé la création du centre d'enregistrement des services, nous essaierons d'ajouter une demande de démarrage de printemps existante au système de gouvernance des services d'Emeka.
(5) Créez un nouveau client Eureka, module, nommé: Helloserver, cet HellOserver est utilisé comme modèle enfant d'Eurekaserver
(6) Réformer la configuration POM du modèle parent et du modèle enfant (6-1) Configuration POM.xml d'Eurekaserver:
<Packaging> pom </packaging> <modules> <module> ../ HellOserver </odule> </odules>
(6-2) Tous pom.xml d'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"> <modelVersion>4.0.0</modelVersion> <groupId>com.example</groupId> <artifactId>demoeurekaserver</artifactId> <version> 0.0.1-snapshot </ version> <packaging> pom </packaging> <odules> <odule> ../ HellServer </ module> </nodules> <name> eurekaserver </name> <description> DEMO PROJET pour Spring Boot </ Description> <parentre <ArtefactId> Spring-Boot-Starter-Parent </ ArfactId> <Dersion> 1.5.9.Release </ Version> <RelativePath /> <! - Recherche Parent du référentiel -> </parent> </ Properties> <Project.Build.Sourceencoding> UTF-8 </project.build.sourceencoding> <project.reportting.outputencoding> utf-8 </project.reportting.outputencoding> <java.version> 1.8 </java.version> <printemps-cloud.version> edgware.release </sspring-cloud.version> </ / Properties> <Dependance> <Dependance> <ArtefactId> printemp-boot-starter-web </ artifactid> </dependency> <dependency> <proupId> org.springframework.cloud </proupId> <Artifactid> Spring-Cloud-starter-eureka-server </ artifactid> </Dependency> <Dedency> <proupId> Org.spring <ArtefactId> Spring-Boot-Starter-Test </ ArtifactId> <Cope> Test </cope> </Dependency> </Dependance> <DependencyManagement> <Dependces> <Dendency> <ProupId> org.SpringFramework.Cloud </proncId> <ArtifActid> Spring-Cloud-Dependency </RetifActid> <version> <ype> POM </ Type> <ccope> Import </ Scope> </Dependency> </Dependces> </Dependency> </Dependency> </DependencyManagement> <Duild> <Grouns> <Glugin> <ProupID> org.springFramework.boot </prandId> <Artifactid> Spring-Boot-Maven-Plugin </pritifatid> </rand
(6-3) Configuration pom.xml de Helloserver:
<s parent> <proupId> com.example </prôdId> <ArtefactId> Deemoeurekaserver </lefactId> <DERVIÈRE> 0.0.1-snapshot </DERNIER> <LelAlpath> ../ eurekaserver / pom.xml </lativepath> </parent>
(6-4) Toutes les configurations pom.xml de 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"> <modelversion> 4.0.0 </ ModelVersion> <parepred> <proupId> com.example </prandid> <ArtefactId> Deemoeurekaserver </ artifactId> <Dersion> 0.0.1-Snapshot </ Version> <LelativePath> ../ eurekaserver / pom.xml </palatepath> </parent> <eurekaserver> HellOserver </ Artifactid> <packaging> JAR </packaging> <nom Boot </, description> <properties> <start-class> com.example.helloserver.helloserverApplication </Dart-Class> </Properties> <Dendences> <Dendency> <ProupID> org.springframework.boot </proupId> <Artifactid> Spring-Boot-starter-web </ artifactid> <GroupId> org.springframework.boot </prôdId> <Artifactive> Spring-Boot-starter-test </ artifactive> <ccope> test </cope> </dependency> </dependency> </dependency> </pedidency> <dependency> <proupId> org.springframework.cloud </preendency> <ArtefactId> Spring-Cloud-Dependuces </ Artifactid> <Sease> $ {Spring-Cloud.Version} </DERNIFRIENT> <TYPE> POM </ TYPE> <COPE> IMPORT </cope> </ Dependency> </ Dependency> </Dependencymanagement> <uild> <fluegins> </ Plugin> <proupId> ORG.SPRINGFRAMEWRAWNWORGE <ArtefactId> Spring-Boot-Maven-Plugin </ ArfactId> </Glugin> </Glugins> </Duild> </randing>(6-5) Configuration Application.yml de HellOserver:
Serveur: Port: 5556 Spring: Application: Nom: Helloserver Eureka: Client: ServiceUrl: DefaultZone: http: // localhost: 5555 / eureka /
(6-6) Classe de démarrage de Helloserver:
@Enableeurekaserver @springbootapplication @RestController public class helloServerApplication {private final logger log = (logger) loggerfactory.getLogger (helloServerApplication.class); @Autowired Private DiscoveryClient Client; @RequestMapping (name = "/ hello", méthode = requestMethod.get) public chaîne index () {ServiceInstance instance = client.getLocalServiceInstance (); log.info ("/ bonjour, hôte:" + instance.Gethost () + ", service_id:" + instance.getServiceId ()); Retour "Bonjour SpringCloud ~"; } public static void main (String [] args) {SpringApplication.run (HellOserverApplication.class, args); }}(7) Démarrer respectivement Eurekaserver et Helloserver et tester:
(7-1) Visitez Eurekaserver: (vous pouvez clairement voir les informations Helloserver)
(7-2) Visitez Helloserver:
(7-3) Vérifiez les informations sur la console Helloserver:
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.