Les services d'appel entre les microservices Spring Cloud et les microservices Spring Cloud utilisent Feign pour appeler un autre service et l'utilisation de Feign

Introduction à Feign

Il existe de nombreuses instances de service de l'architecture des microservices. Comment appeler entre les services et les services, Spring Cloud fournit une solution: Feignez le prétendant.

Feign est un composant de Spring Cloud et un client WebService, utilisé pour le transfert entre les services.
Pour en savoir plus sur Feign, veuillez consulter: https://blog.csdn.net/wo18237095579/article/details/83343915

Créer deux services

Créez deux projets et deux services, configurez le registre, puis démarrez les deux services, vous pouvez voir deux noms de service dans le registre que vous avez configuré: mes deux services, Daily-server et Task-Server. comme suit:
Insérez la description de l'image ici

Méthodes d'appel entre microservices Feign

Je suis ici pour appeler le serveur de tâches via le serveur quotidien. Tout d'abord, configurez le serveur quotidien. Les détails sont les suivants:

  1. Ajouter une dépendance

1.1: Ajouter la dépendance de Feign

		<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
            <scope>provided</scope>
        </dependency>

1.2 Ici, si le projet spring boot intègre spring cloud, c'est-à-dire lorsqu'il y a une dépendance spring boot dans votre projet, vous devez ajouter la dépendance spring cloud comme:

			<dependency>
				<groupId>org.springframework.cloud</groupId>
				<artifactId>spring-cloud-dependencies</artifactId>
				<version>Hoxton.SR1</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>

1.3 Lorsque vous créez directement un projet Spring Cloud, vous n'avez pas besoin des étapes de 1.2 ci-dessus, et ajoutez directement des dépendances Spring Cloud:


		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-hystrix</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-hystrix-dashboard</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-feign</artifactId>
		</dependency>
  1. Ajouter des annotations à la classe de démarrage du service
@EnableFeignClients

Comme suit: Insérez la description de l'image ici
3. Créez une interface pour référencer l'interface TaskServer

package ...app.feign;

import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;

@FeignClient("task-server")
public interface TaskServerFeign {
    
    
    @GetMapping("/task/test")
    String getTest();
}

Ici @FeignClient ("task-server") où task-server est le nom de votre autre service
@GetMapping ("/ task / test") L'adresse de l'interface dans un autre service
String getTest (); L'interface d'un autre nom de service .

4. Créez une interface de test et appelez l'interface d'un autre service

import 。。。.feign.TaskServerFeign;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@Api(tags = {
    
    "Feign测试"})
public class FeignTest {
    
    
    @Autowired
    private TaskServerFeign taskServerFeign;

    @GetMapping("/task/test1")
    public void getTest() {
    
    
        String test = taskServerFeign.getTest();
        System.out.println(test);
        System.out.println("----------this is daily_Server_test");
    }
}

@Api (tags = {"Feign test"}) Cette annotation n'est utilisée que localement pour les tests swagger. Vous pouvez également utiliser d'autres méthodes pour appeler cette interface à des fins de test, comme postman

@Autowired
private TaskServerFeign taskServerFeign; Injectez l'interface qui appelle le serveur de tâches à la troisième étape.

5. Créez l'interface appelée dans le serveur de tâches

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class FeignTest {
    
    
    @GetMapping("/task/test")
    public String getTest() {
    
    
        System.out.println("----------this is task_Server_test");
        return "this is task_Server_test";
    }
}

La prochaine étape consiste à exécuter et à tester. Le test local est le suivant:
voici l'outil de test pour tester,
Insérez la description de l'image ici
voici le Daily-server , voici
Insérez la description de l'image ici
le Task-servrer.Le
Insérez la description de l'image ici
résultat est évident, et le novice Xiaobai accueille vos commentaires à tout moment. 0. 0

Je suppose que tu aimes

Origine blog.csdn.net/Mou_O/article/details/104650209
conseillé
Classement