[JAVA] Spring Cloud Netflix-Memo

Einführung

Dies ist ein Memo, als ich den Inhalt der folgenden Site studiert habe.

Spring Cloud Netflix

Eureka Client

Elemente einstellen

Grundsätzlich sind fast keine Einstellungen erforderlich. Wenn "Spring-Cloud-Starter-Netflix-Eureka-Client" in der Abhängigkeit in Gradle usw. enthalten ist. AutoConfigure funktioniert und richtet es ein

build.gradle(Nur Auszug aus Abhängigkeiten)


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')
}

Geben Sie den Eureka-Server an

application.yml


eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/

Der Anwendungsname lautet außerdem "spring.application.name". Anders als oben ist die Standardeinstellung grundsätzlich OK Wenn Sie es ändern möchten, wird der Standardwert unten festgelegt, sodass eine Anpassung erforderlich ist (geben Sie "eureka.instance" an. * "Bei der Einstellung in application.yml).

Eureka Server

Abhängigkeiten wurden "Spring-Cloud-Starter-Netflix-Eureka-Server" hinzugefügt AutoConfigure funktioniert durch Angabe von @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

Beim Start wird die Verwaltungskonsole durch Zugriff auf "http: // localhost: 8761" geöffnet. Es gibt einen Client, der diesen Server in "eureka.client.serviceUrl.defaultZone" in application.yml angibt Wird auf der Konsole angezeigt, wenn sie ausgeführt wird

ass.JPG

Ribbon Client Load Balancer, der über HTTP und TCP ausgeführt wird Wird verwendet, wenn der Client den Client anruft usw. Jedes Menüband hat einen Namen und wird in "RibbonClientConfiguration" festgelegt Mit der Multifunktionsleiste können Sie den Dienstnamen direkt in der URL angeben, z. B. http: // hoge-service / api. Durch die Einführung von Ribbon ist es möglich, die URL des Dienstnamens in RestTemplate zu beschreiben, der REST-API von Spring.

wie benutzt man

Org.springframework.cloud: spring-cloud-Starter-netflix-ribbon zu Abhängigkeiten hinzugefügt

Wenn Sie RibbonClient festlegen möchten, gehen Sie wie folgt vor

@Configuration
@RibbonClient(name = "custom", configuration = CustomConfiguration.class )
public class RibbonConfiguration {

}

Der Inhalt der benutzerdefinierten Konfiguration wird mit dem in "RibbonClientConfiguration" festgelegten Inhalt überschrieben Andere Einstellungen in Bezug auf Multifunktionsleiste können durch Festlegen der folgenden Beans überschrieben werden.

sample.jpg

↓ Es sieht wie folgt aus

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

Wenn Sie die Standardeinstellung für alle Multifunktionsleistenclients festlegen möchten Verwenden Sie 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 verwaltet Client-Informationen mithilfe der Multifunktionsleiste, die die oben genannten Einstellungen überschreibt. **

Zuul Zuul ist eine Bibliothek, die als Edge-Service zwischen jedem Service und dem Client positioniert ist und wie ein Gatekeeper des Systems fungiert. Es gibt verschiedene Verwendungszwecke wie Sicherheitsüberprüfung vor dem Aufrufen des Dienstes, Datenkonvertierung, einmaliges Anmelden, Umschreiben von URLs usw. Da es als Reverse-Proxy-Rolle verwendet werden kann, wird nur der Dienst verfügbar gemacht, auf den Zuul nach außen angewendet wird Kann den direkten Zugriff auf andere Dienste verhindern

Wie benutzt man

Org.springframework.cloud: spring-cloud-Starter-netflix-zuul zu Abhängigkeiten hinzugefügt Aktiviert durch Anwenden von @EnableZuulProxy auf die SpringBoot-Hauptklasse

@EnableDiscoveryClient
@EnableZuulProxy
@SpringBootApplication
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

Kann mit application.yml geroutet werden Das folgende Beispiel gibt an, dass eine Anfrage in XXX / apples / ** an apple weitergeleitet werden soll

application.yml


zuul:
  routes:
    apple: /apples/**

Referenzseite

Spring Cloud Netflix mit Spring Boot 2.0 -Hystrix- Bericht der Spring Special Study Group (Teil 2)

Recommended Posts

Spring Cloud Netflix-Memo
Microservices in Spring Cloud
Spring Cloud Stream Demo veröffentlicht
[Java] [Spring] Spring Boot 1.4-> 1.2 Downgrade Hinweis
Memo
Memo
Oauth2-Authentifizierung mit Spring Cloud Gateway
Google Cloud Platform mit Spring Boot 2.0.0
Einbetten des Konfigurationsservers in Spring Cloud Config
Lassen Sie uns Spring Cloud Gateway ausführlich erklären
Unterstützt Protokollpuffer für Spring Cloud Stream
Konfigurieren Sie Microservices mit Spring Cloud (4): API Gateway