Springcloud de zéro pour construire un micro service (sept) ---- au lieu d'utiliser la Sentinelle Hystrix

Tout d'abord, au lieu d'utiliser la Sentinelle Hystrix

1. Modifier le fichier POM
(1) plus les dépendances-openfeign printemps-nuage comptent module sur les dépendances-cloud
Note: Ajouter ici le but est de résoudre le démarreur-openfeign2.2.0.RELEASE ressort nuage dans le nom de la méthode d'interface mal orthographié problème.
se référer spécifiquement à l'article https://www.cnblogs.com/cdfive2018/p/12537412.html
<dependency>
<groupId> org.springframework.cloud </ groupId>
<artifactId> Printemps-Cloud-openfeign-dépendances </ artifactId>
<version> $ {printemps-cloud-alibaba.version} </ version>
<type> POM </ type>
<scope> Importer </ scope>
</ dependency>
(2) Consumer cloud Module , plus ressort cloud dépendant démarreur alibaba-sentinelle
<dependency>
<groupId> com.alibaba.cloud </ groupId>
<artifactId> printemps-cloud-démarreur-alibaba-sentinelle </ artifactId>


Utilisez feign.sentinel.enabled = true = true Vous pouvez également feign.hystrix.enabled
après les modifications
# feign.hystrix.enabled = true
feign.sentinel.enabled = true
3. Modifier module de code nuage consommateur
modifications classe CloudConsumerApplication
en public RestTemplate restTemplate ( ) {
return new nouveau RestTemplate ();
}
augmenter @SentinelRestTemplate la méthode
effet modifié devient
@LoadBalanced
@Bean
@SentinelRestTemplate
publique RestTemplate RestTemplate () {
return new nouveau RestTemplate ();
}

En second lieu , en utilisant la Sentinel
1. Examen nuage consommateur de code de module
(1) nouvelle classe SentinelGlobalDefaultUtil, et traité comme un bloc unifié Fallback, la valeur de retour de l'interface est à noter ici doit être unifiée
paquet com.plkd.consumer.sentinel;

importation com.alibaba.csp.sentinel.slots.block.BlockException;

public class SentinelGlobalDefaultUtil {
public static final int BLOCK_FLAG = 88888;
public static finale chaîne FALLBACK_DEFAULT_RESULT = "fallback";

int public static globalBlockHandler (BlockException ex) {
System.out.println: ( "bloqué par" + ex.getClass () getSimpleName ().)
retourner BLOCK_FLAG;
}

statique public String globalDefaultFallback (Throwable t) {
System.out.println ( "Fallback pris:" + t.getClass () getSimpleName ().);
retourner FALLBACK_DEFAULT_RESULT;
}
}

(2)修改OrderController类增加使用SentinelResource注解
修改后结果:
@RequestMapping (value = "/ getUserByOrderId / {id}", méthode = RequestMethod.GET)
@SentinelResource (blockHandler = "globalBlockHandler", blockHandlerClass = SentinelGlobalDefaultUtil.class,
defaultFallback = "globalDefaultFallback", fallbackClass = {} SentinelGlobalDefaultUtil.class)
public String getUserByOrderId (@PathVariable ( "id") int id) {
retour userRemoteClient.findUserByUserName ( "michael") toString ().
}

2. Modifier le code de module API ouvert par l'utilisateur
(1) nouvelle classe UserFeignClientFallbackFactory
paquet com.plkd.usercenter.client.sentinel;

importation com.plkd.usercenter.client.UserRemoteClient;
importation com.plkd.usercenter.dto.UseDto;
importation feign.hystrix.FallbackFactory;
importation org.springframework.stereotype.Component;

/ *
Recommandé d'utiliser ce mode de réalisation, fallback fallbackFactory attributs basés sur les informations d'anomalie peut obtenir
* /
@component
public class UserFeignClientFallbackFactory les outils FallbackFactory <UserRemoteClient> {
@Override
UserRemoteClient public Créer (Throwable Throwable) {
return new nouveau UserRemoteClient () {
@Override
usedto findUserByUserName publique (String userName) {
System.out.println ( "appels à distance à limiter ou déclassés, Throwable:" Throwable +);
return null;
}
};
}
}
(2) modifier la classe UserRemoteClient
l'annotation modifiée FeignClient @FeignClient (name = "nuage fournisseur ", fallbackFactory = UserFeignClientFallbackFactory.class)

En troisième lieu , le déploiement Tableau de bord Sentinel
1. Télécharger la console Sentinel: https: //github.com/alibaba/Sentinel/releases
exécuter la commande pour démarrer Dashboard:
Java -Dserver.port = 8081 jar Sentinel-Dashboard 1.7.1.jar
tel défaut 8081 est le port, entrez dans votre navigateur: http: // localhost: 8081. Le mot de passe de compte par défaut: sentinelle: sentinelle, voir l'interface de la console pour le déploiement de succès

configuration du module 2.cloud consommateur intégré:
# Sentinel Dashboard
spring.cloud.sentinel.transport.dashboard = localhost: 8081

3. Redémarrez le module cloud consommateurs
pour accéder à votre navigateur à l' adresse http: 8080 / commande / getUserByOrderId / 1 : // localhost: 8080 / echo / 2018, ainsi que http: // localhost
demande cette fois -ci se cloud apparaît dans la console Sentinel consommateur

 

 

 4. Définissez les règles de contrôle de flux

 

 

 L'accès continu http: // localhost: 8080 / commande / getUserByOrderId / 1 résultats limitent

 

 

Je suppose que tu aimes

Origine www.cnblogs.com/michael-qi/p/12621350.html
conseillé
Classement