Heim  >  Artikel  >  Java  >  SpringCloud Feign ausführlich erklärt

SpringCloud Feign ausführlich erklärt

WBOY
WBOYnach vorne
2022-11-01 17:22:561621Durchsuche

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>

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();
    }
}

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();
    }
}

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:jb51.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen