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:
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:
- 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>
- Ajouter des annotations à la classe de démarrage du service
@EnableFeignClients
Comme suit:
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,
voici le Daily-server , voici
le Task-servrer.Le
résultat est évident, et le novice Xiaobai accueille vos commentaires à tout moment. 0. 0