Aperçu
Utilisez un exemple simple pour démontrer l'utilisation de base de Eureka et du ruban dans Spring Cloud.
Version et environnement
Créer un serveur Eureka
Dans Spring Cloud, vous pouvez utiliser Eureka pour gérer les microservices et les microservices peuvent être enregistrés auprès d'Eureka.
Tout d'abord, vous pouvez utiliser Spring Initialzr Idea Idea pour créer le centre d'enregistrement du serveur Eureka.
Modifiez le fichier application.properties et ajoutez le contenu suivant
Spring.Application.name = eureka-server eureka.instance.hostname = localhost eureka.client.register-with-eureka = false eureka.client.fetch-registry = false server.port = 8881
Ajouter une annotation @EnableEurekaServer à la classe de démarrage ServerApplication générée par Spring Boot pour nous
package com.springcloud.eureka; import org.springframework.boot.springApplication; import org.springframework.boot.autoconfigure.springbootapplication; org.springframework.cloud.netflix.eureka.server.enableeurekaserver; @ enableeUrekaserver @ SpringbootApplicationPublic class ServerApplication {public static void main (String [] args) {SpringApplication.Run (serverapplication.class, args); }}Entrez http: // localhost: 8881 / dans votre navigateur
Vous pouvez voir l'interface suivante:
Vous pouvez voir que le service n'a pas encore été enregistré. À ce stade, un simple centre d'enregistrement de microservice a été construit.
Écriture d'un service d'utilisateur microservice
Ensuite, utilisez le repos pour construire une interface microservice et enregistrez-la dans le centre d'enregistrement. Toujours en utilisant Spring Initialzr pour construire un nouveau projet. L'utilisation est la même que ci-dessus.
Notez que cette fois, vous devez vérifier le composant Eureka Discovery . Au lieu du Eureka Server .
Modifiez le fichier application.properties et ajoutez le contenu suivant:
Spring.Application.Name = User Server.port = 8882 eureka.client.service-url.defaultZone = http: // localhost: 8881 / eureka /
Utilisez l'annotation @EnableDiscoveryClient dans la classe UserApplication que Spring Boot génère pour nous.
Package com.springCloud; import org.springframework.boot.springapplication; import org.springframework.boot.autoconfigure.springbootapplication; import org.springframework.cloud.client.discovery.enablediscoveryclient; @ implowediscoveryclient @ springbootapplication awerpublic towerappination userAPPLICATION USEAPPLICATION @ ardent usination userAPPLICATIV static void main (String [] args) {springApplication.run (userApplication.class, args); }}Créez une interface de microservice complète de repos.
package com.springCloud; import org.springframework.web.bind.annotation.getmapping; import org.springframework.web.bind.annotation.restController; @restControllerPublic Class userController {@getMapping ("/ getUser") public String GetUser () {return " }}Après avoir exécuté UserApplication, visitez http: // localhost: 8881 / à nouveau
Vous constaterez que le service utilisateur a été enregistré.
Rédaction d'une commande de microservice
Ensuite, nous créons un microservice de commande et accédons à l'interface dans le microservice utilisateur.
Utilisez toujours Spring Initialzr pour construire un nouveau projet. Le microservice utilisateur peut être déployé sur plusieurs machines. Lorsque le client accède à ce service, la demande peut être acheminée vers n'importe quelle machine avec le service utilisateur déployé. Par conséquent, le client doit utiliser un algorithme de routage pour planifier le service utilisateur. Dans Spring Cloud, vous pouvez utiliser des composants du ruban pour effectuer le routage client. Le ruban ira au centre d'enregistrement des services pour obtenir la liste des services afin d'appeler le service correspondant.
Cette fois, en plus de vérifier le composant Eureka Discovery . Vous devez également vérifier Ribbon .
Modifiez le fichier application.properties et ajoutez le contenu suivant:
Spring.Application.Name = Order Server.port = 8883 eureka.client.service-url.defaultZone = http: // localhost: 8881 / eureka /
Ajoutez la configuration suivante à la classe OrderApplication générée par Spring Boot .
package com.springboot; import org.springframework.boot.springApplication; import org.springframework.boot.autoconfigure.springbootapplication; import org.springframework.cloud.client.discovery.clientCoverBalfedal org.springframework.context.annotation.bean; import org.springframework.web.client.resttremplate; @veablediscoveryclient @ springbootapplicationpublic class OrderApplication {@Bean @loadBalanced restTemplate restTemplate () {return new restTemplate (); } public static void main (String [] args) {SpringApplication.Run (OrderApplication.Class, Args); }} Étant donné que le ruban est utilisé, l'annotation @LoadBalanced doit être utilisée ici.
Écrivez OrderController .
package com.springboot; import org.springframework.beans.factory.annotation.autowired; import org.springframework.web.bind.annotation.getmapping; import org.springframework.web.bind.annotation.restController; import; org.springframework.web.client.restTemplate; @RestControllerPublic Class OrderController {@Autowired Private RestTemplate Reststallate; @Getmapping ("/ getOrderUser") public String getOrderUser () {return restTemplate.getForentity ("http: // utilisateur / getuser", string.class) .getBody (); }} Après avoir fonctionné OrderApplication , visitez http: // localhost: 8881 /
Vous constaterez que le service de commande a également été enregistré dans le centre d'inscription.
Ensuite, nous accédons à la méthode getOrderUser dans OrderController et déclenchons l'appel à getUser du UserController .
Entrez: http: // localhost: 8883 / getOrderUser
Vous pouvez voir qu'il revient: je suis une liste d'utilisateurs.
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.