Ceci est un mémo lorsque j'ai étudié le contenu écrit sur le site suivant.
Eureka Client
Fondamentalement, presque aucun paramètre n'est requis.
Si spring-cloud-starter-netflix-eureka-client
est inclus dans la dépendance dans gradle etc.
AutoConfigure fonctionne et le configure
build.gradle(Extrait de dépendances uniquement)
dependencies {
implementation('org.springframework.boot:spring-boot-starter-web')
implementation('org.springframework.cloud:spring-cloud-starter-netflix-eureka-client')
testImplementation('org.springframework.boot:spring-boot-starter-test')
}
Spécifiez le serveur Eureka
application.yml
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/
De plus, le nom de l'application est «spring.application.name». Autre que ce qui précède, la valeur par défaut est OK Si vous souhaitez la modifier, la valeur par défaut est définie ci-dessous, donc une personnalisation est requise (spécifiez dans ʻeureka.instance. * `Lors de la définition dans application.yml)
Eureka Server
Ajout de spring-cloud-starter-netflix-eureka-server
aux dépendances
AutoConfigure fonctionne en spécifiant @EnableEurekaServer
@SpringBootApplication
@EnableEurekaServer
public class Application {
public static void main(String[] args) {
new SpringApplicationBuilder(Application.class).web(true).run(args);
}
}
application.yml
server:
port: 8761
Au démarrage, la console de gestion s'ouvre en accédant à http: // localhost: 8761
.
Il existe un client qui spécifie ce serveur dans ʻeureka.client.serviceUrl.defaultZone` dans application.yml
S'affiche sur la console si elle est en cours d'exécution
Ribbon
Équilibreur de charge client fonctionnant sur HTTP et TCP
Utilisé lorsque le client appelle le client, etc.
Chaque ruban a un nom et est défini dans RibbonClientConfiguration
Le ruban vous permet de spécifier le nom du service directement dans l'URL, tel que http: // hoge-service / api.
En introduisant Ribbon, il est possible de décrire l'URL du nom du service dans RestTemplate, qui est l'API REST de Spring.
ʻOrg.springframework.cloud: spring-cloud-starter-netflix-ribbon` ajouté à la dépendance
Si vous souhaitez définir RibbonClient, procédez comme suit
@Configuration
@RibbonClient(name = "custom", configuration = CustomConfiguration.class )
public class RibbonConfiguration {
}
Le contenu de la configuration personnalisée sera écrasé par le contenu défini dans RibbonClientConfiguration
D'autres paramètres liés au ruban peuvent être écrasés en définissant les beans suivants.
↓ Cela ressemble à ce qui suit
@Configuration
protected static class FooConfiguration {
@Bean
public ZonePreferenceServerListFilter serverListFilter() {
ZonePreferenceServerListFilter filter = new ZonePreferenceServerListFilter();
filter.setZone("myTestZone");
return filter;
}
@Bean
public IPing ribbonPing() {
return new PingUrl();
}
}
Si vous souhaitez définir la valeur par défaut pour tous les clients de ruban Utiliser defaultConfiguration
@RibbonClients(defaultConfiguration = DefaultRibbonConfig.class)
public class RibbonClientDefaultConfigurationTestsConfig {
public static class BazServiceList extends ConfigurationBasedServerList {
public BazServiceList(IClientConfig config) {
super.initWithNiwsConfig(config);
}
}
}
@Configuration
class DefaultRibbonConfig {
@Bean
public IRule ribbonRule() {
return new BestAvailableRule();
}
@Bean
public IPing ribbonPing() {
return new PingUrl();
}
@Bean
public ServerList<Server> ribbonServerList(IClientConfig config) {
return new RibbonClientDefaultConfigurationTestsConfig.BazServiceList(config);
}
@Bean
public ServerListSubsetFilter serverListFilter() {
ServerListSubsetFilter filter = new ServerListSubsetFilter();
return filter;
}
}
** Eureka gère les informations du client à l'aide du ruban, qui remplace les paramètres ci-dessus **
Zuul Zuul est une bibliothèque positionnée comme un service de périphérie qui se situe entre chaque service et le client et agit comme un gardien du système. Il existe diverses utilisations telles que le contrôle de sécurité avant d'appeler le service, la conversion de données, l'authentification unique, la réécriture d'URL, etc. Puisqu'il peut être utilisé comme rôle de proxy inverse, en exposant uniquement le service auquel Zuul est appliqué à l'extérieur Peut empêcher l'accès direct à d'autres services
ʻOrg.springframework.cloud: spring-cloud-starter-netflix-zuul` ajouté à la dépendance Activé en appliquant @EnableZuulProxy à la classe principale SpringBoot
@EnableDiscoveryClient
@EnableZuulProxy
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
Peut être acheminé avec application.yml L'exemple suivant spécifie de transférer les demandes provenant de XXX / apples / ** vers apple
application.yml
zuul:
routes:
apple: /apples/**
Spring Cloud Netflix avec Spring Boot 2.0 -Hystrix- Rapport du groupe d'étude spécial du printemps (partie 2)
Recommended Posts