Feign ist ein deklarativer REST-Aufruf-Client, der von Netflix entwickelt wurde; Ribbon Load Balancing und Hystrⅸ Service Circuit Breaker sind sehr grundlegende Komponenten für die Microservice-Entwicklung in unserer Spring Cloud. Ich hoffe, dass sie für alle hilfreich sind.
Empfohlenes Lernen: „Java-Video-Tutorial“
Feign ist ein deklarativer Webdienst-Client, der das Aufrufen zwischen Microservices vereinfacht, ähnlich wie ein Controller, der einen Dienst anruft. SpringCloud integriert Ribbon und Eureka und kann Feigin verwenden, um einen HTTP-Client mit Lastenausgleich bereitzustellen. Feign implementiert den Lastausgleich über Schnittstellen und Anmerkungen.
(Auszug aus Crazy God Talks JAVA)
Was kann Feign tun?
Feign zielt darauf ab, das Schreiben von Java-HTTP-Clients zu vereinfachen.
Bei der früheren Verwendung von Ribbon + RestTemplate wurde RestTemplate verwendet, um HTTP-Anfragen zu kapseln und einen Satz vorlagenbasierter Aufrufmethoden zu bilden. Da jedoch in der tatsächlichen Entwicklung Dienstabhängigkeiten an mehr als einer Stelle aufgerufen werden können und eine Schnittstelle häufig an mehreren Stellen aufgerufen wird, wird normalerweise für jeden Mikrodienst eine Client-Klasse gekapselt, um die Aufrufe dieser abhängigen Dienste zu bündeln. Daher hat Feign auf dieser Grundlage eine weitere Kapselung vorgenommen und wird uns dabei helfen, die Definition der abhängigen Serviceschnittstelle zu definieren und zu implementieren. Bei der Implementierung von Feign müssen wir lediglich eine Schnittstelle erstellen und diese mithilfe von Anmerkungen konfigurieren (ähnlich der vorherigen Anmerkung „The Mapper“) ist auf der Dao-Schnittstelle markiert, und jetzt ist eine Feign-Annotation auf der Microservice-Schnittstelle markiert), um die Schnittstellenbindung an den Dienstanbieter abzuschließen, wodurch der Entwicklungsaufwand für die automatische Kapselung des Serviceaufruf-Clients bei Verwendung von Spring Cloud Ribbon vereinfacht wird.
Feign integriert Ribbon standardmäßig
Verwenden Sie Ribbon, um die Servicelisteninformationen von MicroServiceCloud-Dept zu verwalten und einen Client-Lastausgleich durch Abfragen zu erreichen. Im Gegensatz zu Ribbon muss Feign nur die Service-Bindungsschnittstelle definieren und die deklarative Methode implementiert Serviceaufrufe elegant und einfach.
2. Registrieren Sie sich bei eureka:
defaultZone: http://localhost:7001/eureka/4. Konfigurieren Sie die Controller-Klasse
7. Ändern Sie die API<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>springcloud-demo2</artifactId> <groupId>com.you</groupId> <version>1.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>springcloud-eureka-7001</artifactId> <dependencies> <!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-eureka-server --> <!--Eureka Server--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-server</artifactId> <version>1.4.6.RELEASE</version> </dependency> <!--热部署--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> </dependency> </dependencies> </project>Nach dem Login kopieren
1) Feign-Abhängigkeit einführenpackage com.you.config; import org.springframework.cloud.client.loadbalancer.LoadBalanced; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.client.RestTemplate; @Configuration public class ConfigBean { @Bean @LoadBalanced //ribbon /*配置负载均衡实现RestTemplate*/ /*IRule*/ /*RoundRobinRule 轮询 */ /*RandomRule 随机*/ /*AvailabilityFilteringRule 优先过滤掉跳闸、访问故障的服务,对剩下的进行轮询 */ public RestTemplate getRestTemplate() { return new RestTemplate(); } }Nach dem Login kopierenNach dem Login kopieren
2) Dienst konfigurieren
package com.you.config; import org.springframework.cloud.client.loadbalancer.LoadBalanced; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.client.RestTemplate; @Configuration public class ConfigBean { @Bean @LoadBalanced //ribbon /*配置负载均衡实现RestTemplate*/ /*IRule*/ /*RoundRobinRule 轮询 */ /*RandomRule 随机*/ /*AvailabilityFilteringRule 优先过滤掉跳闸、访问故障的服务,对剩下的进行轮询 */ public RestTemplate getRestTemplate() { return new RestTemplate(); } }
Empfohlenes Lernen: „
Java-Video-TutorialDas obige ist der detaillierte Inhalt vonSpringCloud Feign ausführlich erklärt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!