Introduction à Eureka
Eureka fournit des services basés sur REST, qui sont principalement utilisés dans la gestion des services dans le cluster. Eureka fournit des composants clients basés sur le langage Java, qui met en œuvre des fonctions d'équilibrage de charge, créant des conditions pour le déploiement du cluster des composants commerciaux. En utilisant ce cadre, les composants commerciaux peuvent être enregistrés dans des conteneurs Eureka, qui peuvent être déployés en grappes, et Eureka conserve principalement une liste de ces services et vérifie automatiquement leur statut.
Structure du programme
Créer un serveur Eureka
Dépendance Maven
<dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Dalston.SR1</version> <type>pom</type> <scope>import</scope> </dependency> </dependency> </dependencyManagement> <dependencies> <dependency> <GroupId> org.springframework.cloud </prouprid> <ErtifactId> Spring-Cloud-starter-eureka-server </ artifactid> </peidency> </dpendance>
Modifier le port de démarrage de démarrage Spring dans Application.yml
Serveur: Port: 8761
Activer l'annotation du service Eureka @enableeurekaserver
@ ENABLEEUREKASERVER @ SpringbootApplicationPublic class ekserverApplication {public static void main (String [] args) {new SpringApplicationBuilder (ekserverApplication.class) .run (args); }}Démarrer le Springboot
[Thread-11] OscceServer.Eurekaserverbootstrap: Contexte de serveur initialisé [Main] SBCETTOMCATEMEDDEDSERVletContainer: Tomcat Démarré sur le port (s): 8761 (HTTP) [Main] .ScNeSeureKAutoServiceErverver: Updat Port to 8761 [Main] CBFirStekserver.Eksher EkserverApplication en 8,594 secondes (JVM fonctionne pour 9,523)
Une exception qui ne peut pas être connectée au serveur apparaîtra pendant le démarrage. En effet, Eureka se traite comme un client pour récupérer les informations d'enregistrement au début.
La copie de code est la suivante:
com.netflix.discovery.shared.transport.transportException: Impossible d'exécuter une demande sur un serveur connu
Ajouter la configuration suivante et n'apparaîtra plus au démarrage
Eureka: Client: registrewitheureka: False FetchRegistry: False
Registerwitheureka déclare s'il faut enregistrer ses propres informations sur le serveur Eureka, la valeur par défaut est vraie.
FetchRegistry déclare s'il faut ramper les informations d'enregistrement dans le serveur Eureka, la valeur par défaut est vraie.
Visitez http: // localhost: 8761 dans votre navigateur pour afficher la description de l'image de l'entrée de la console Eureka
Créer un fournisseur de services
compter sur
<dependency> <proupId> org.springframework.cloud </proupId> <ArtifActid> Spring-Cloud-Starter-Config </ ArtifactId> </Dependency> <Dedency> <ProupID> org.springFramework.cloud </proupActid> <ratifactid> Spring-Cloud-Starter-Eurek <GroupId> org.springframework.cloud </prouprid> <ErtifactId> Spring-Cloud-Starter-Ribbon </ ArfactId> </Dependency>
Configurez le port, le nom de l'instance Eureka et l'adresse de service Eureka dans Application.yml
Serveur: Port: 8080SPRING: Application: Nom: EK-Providereureka: Instance: Hostname: LocalHost Client: ServiceUrl: DefaultZone: http: // localhost: 8761 / eureka /
Créer un service de repos
@RestControllerPublic classe HelloController {@RequestMapping ("/ Hello") String public hello (httpServleRequest request) {return "hello:" + request.getRequestUrl (); }}Activer l'annotation du client eureka @enableeurekaserver
@ Activer ekproviderApplication {Public Static Void Main (String [] Args) {New SpringApplicationBuilder (EkProviderApplication.Class). }}Après le démarrage, vous pouvez voir dans la console Eureka que le fournisseur de services s'est inscrit à Eureka
Créer un appelant de service
compter sur
<dependency> <proupId> org.springframework.cloud </proupId> <ArtifActid> Spring-Cloud-Starter-Config </ ArtifactId> </Dependency> <Dedency> <ProupID> org.springFramework.cloud </proupActid> <ratifactid> Spring-Cloud-Starter-Eurek <GroupId> org.springframework.cloud </prouprid> <ErtifactId> Spring-Cloud-Starter-Ribbon </ ArfactId> </Dependency>
Configurez le port, le nom de l'instance Eureka et l'adresse de service Eureka dans Application.yml
Serveur: Port: 9000SPring: Application: Nom: Ek-InvokeEureka: Instance: Hostname: LocalHost Client: ServiceUrl: DefaultZone: http: // localhost: 8761 / eureka /
Écrivez un service de repos pour appeler le "/ bonjour" du fournisseur de services
@ RestController @ ConfigurationPublic classe invAcoController {@bean @loadBalanced public restTEmplate getRestTemplate () {return new RestTemplate (); } @RequestMapping ("/ invoke") public String invoke () {restTemplate restTemplate = getRestTemplate (); return restTemplate.getForObject ("http: // ek-provider / hello", string.class); }}Dans le mode traditionnel, nous utilisons généralement HttpClient dans Apache pour appeler le service de repos. Ici, nous utilisons Spring pour fournir le composant RestTemplate qui appelle le service de repos. RestTemplate lui-même n'a pas la possibilité d'appeler des services distribués, mais après que le bean RestTemplate a été modifié par l'annotation @loadBalanced, cette instance Restemplate a la possibilité d'accéder aux services distribués, grâce aux divers intercepteurs fournis par Spring.
Activer l'annotation du client eureka @enableeurekaserver
@ ENABLEEUREKACLIENT @ SpringbootApplicationPublic class ekinvokeApplication {public static void main (String [] args) {new SpringApplicationBuilder (ekinvokeApplication.class) .run (args); }}Après le démarrage, vous pouvez voir dans la console Eureka que l'appelant de service a été enregistré à Eureka
Ensuite, accédez à l'interface "Invoquer" de l'appelant de service dans le navigateur. Retour comme suit
Résumer
Le serveur Eureka maintient les dernières informations d'enregistrement via le lien Heartbeat, qui est stocké en mémoire.
Les fournisseurs de services Eureka conduisent principalement:
Les appelants de service Eureka conduisent principalement:
Adresse du code source: https://github.com/xc564864894/springcloud/tree/master/eureka(%e4%B8%80)
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.