Maison >Java >javaDidacticiel >Analyse approfondie de la pratique Eureka de springCloud
1. Première introduction à springcloud
Les microservices sont une approche architecturale qui nécessitera à terme une architecture technique pour être mise en œuvre.
Il existe de nombreuses façons de mettre en œuvre des microservices, mais la plus populaire est Spring Cloud
Ce que Spring fait le mieux, c'est l'intégration, en prenant les meilleurs frameworks du monde et en les intégrant dans vos propres projets milieu.
Il en va de même pour Spring Cloud. Il intègre certaines des technologies les plus populaires actuellement et implémente des fonctions telles que : la gestion de la configuration, la découverte de services, le routage intelligent, l'équilibrage de charge, les fusibles, le bus de contrôle, l'état du cluster, etc. sur. Ses principaux composants comprennent :
Eureka : Centre d'inscription
Ruban : Équilibrage de charge
Feign : Appel de service
Hystix : fusible
Aujourd'hui, nous faisons principalement connaissance avec le centre d'enregistrement Eureka de springcloud
Voici un exemple concret :
Avant l'émergence du covoiturage en ligne, les gens ne pouvaient appeler un taxi qu'en sortant. Certaines voitures particulières souhaitent être louées mais ne sont pas qualifiées et sont appelées voitures noires. Beaucoup de gens souhaitent réserver un taxi, mais malheureusement, il y a trop peu de taxis et ce n'est pas pratique. Il y a beaucoup de voitures particulières mais ils n'osent pas les arrêter, et parmi les voitures dans la rue, qui sait lesquelles sont prêtes à transporter des gens. L’un veut et l’autre est prêt à donner, mais il y a un manque d’introduction et de gestion.
À cette époque, des plateformes de covoiturage en ligne comme Didi sont apparues. Toutes les voitures privées qui souhaitent transporter des passagers doivent s'inscrire auprès de Didi et enregistrer votre modèle de voiture (type de service) et vos informations d'identité (coordonnées). Des voitures privées fournissant de tels services peuvent être trouvées sur Didi et elles sont clairement visibles d'un seul coup d'œil.
Ceux qui souhaitent appeler une voiture à ce moment-là n'ont qu'à ouvrir l'application, saisir votre destination, sélectionner le modèle de voiture (type de service) et Didi organisera automatiquement une voiture qui répond à vos besoins pour vous servir. .
Retournez à Eureka de Springcloud. Eureka est comme Didi, responsable de la gestion et de l'enregistrement des informations sur les fournisseurs de services. Les appelants n'ont pas besoin de trouver les services eux-mêmes, mais d'informer Eureka de leurs besoins, et Eureka vous indiquera ensuite les services qui répondent à vos besoins. Dans le même temps, le fournisseur de services et Eureka sont surveillés via le mécanisme “心跳”
Lorsqu'un problème survient avec un fournisseur de services, Eureka le supprimera naturellement de la liste de services.
Cela réalise l'enregistrement, la découverte et la surveillance automatiques de l'état des services.
Eureka : C'est le centre d'enregistrement du service (peut être un cluster), exposant sa propre adresse au monde extérieur
Fournisseur : Enregistrez vos informations auprès Eureka après le démarrage (adresse, quels services sont fournis)
Consommateur : Abonnez-vous à Eureka pour un service, Eureka enverra une liste de toutes les adresses des fournisseurs du service correspondant au consommateur et la mettra à jour régulièrement
Heartbeat (renouvellement) : les prestataires actualisent régulièrement leur statut vers Eureka via http
Pratique :
Organigramme du centre d'enregistrement Eureka :
Complétez le fichier pom.xml et ajoutez des dépendances
Voici les principales parties du fichier pom
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.3.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> <spring-cloud.version>Finchley.RELEASE</spring-cloud.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
Modifier la classe de démarrage
@SpringBootApplication @EnableEurekaServer // 声明这个应用是一个EurekaServer public class SpringcloudEurekaServerApplication { public static void main(String[] args) { SpringApplication.run(SpringcloudEurekaServerApplication.class, args); } }
Écrire la configuration application.yml
server: port: 8081 # 端口 spring: application: name: eureka-server # 应用名称,会在Eureka中显示 eureka: client: register-with-eureka: false # 是否注册自己的信息到EurekaServer,默认是true fetch-registry: false # 是否拉取其它服务的信息,默认是true service-url: # EurekaServer的地址,现在是自己的地址,如果是集群,需要加上其它Server的地址。 defaultZone: http://127.0.0.1:${server.port}/eureka
Exécuter le projet : visitez http://127.0.0.1:8081
En ce moment, un Eureka Le centre d'enregistrement a été créé avec succès
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!