Heim > Java > javaLernprogramm > Hauptteil

SpringCloud Feign ausführlich erklärt

WBOY
Freigeben: 2022-11-01 17:22:56
nach vorne
1647 Leute haben es durchsucht

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

1. Was ist Feign?

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.

2. Was kann Feign tun

(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.

3. Schritte zur Verwendung von Feign

2. Registrieren Sie sich bei eureka:

defaultZone: http://localhost:7001/eureka/

ribbon:

eureka:

aktiviert: true

4. Konfigurieren Sie die Controller-Klasse

<?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

7. Ändern Sie die API


1) Feign-Abhängigkeit einführen



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();
    }
}
Nach dem Login kopieren
Nach 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();
    }
}
Nach dem Login kopieren
Nach dem Login kopieren
3) Hinweis

Der Dienstname muss korrekt geschrieben sein. Andernfalls wird ein Fehler gemeldet (ich habe einen Nachmittag damit verbracht, danach zu suchen). Der Lastausgleich fragt immer noch ab!

Empfohlenes Lernen: „

Java-Video-Tutorial

Das 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!

Verwandte Etiketten:
Quelle:jb51.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!