Heim  >  Artikel  >  Java  >  SpringCloud Tencent Komplettlösung eins

SpringCloud Tencent Komplettlösung eins

PHP中文网
PHP中文网nach vorne
2022-07-14 14:32:262247Durchsuche

Was ist Spring Cloud Tencent?

Spring Cloud Tencent ist eine Open-Source-Microservice-Lösung aus einer Hand von Tencent. Spring Cloud Tencent implementiert den Spring Cloud-Standard-Microservice-SPI. Entwickler können schnell Spring Cloud-Microservice-Architekturanwendungen basierend auf Spring Cloud Tencent entwickeln. Der Kern von Spring Cloud Tencent basiert auf Tencents Open-Source-One-Stop-Service-Discovery- und Governance-Plattform Polarismesh, um verschiedene verteilte Microservice-Szenarien zu implementieren.

Zu den von Spring Cloud Tencent bereitgestellten Funktionen gehören unter anderem die Projektadresse:https://github.com/Tencent/spring-cloud-tencent

Projektquellcode Adresse: https://github.com/lltx/spring-cloud-tencent-demo: 1. Polaris installieren , Flusskontrolle und Sicherheitsprobleme. Obwohl es „in der Branche bereits einige Komponenten gibt, die einige dieser Probleme lösen können“, fehlt es an einer standardisierten, mehrsprachigen und Framework-unabhängigen Implementierung.

Tencent verfügt über eine große Anzahl verteilter Dienste und eine Vielfalt an Geschäftsbereichen und Technologie-Stacks, die Dutzende großer und kleiner verwandter Komponenten angesammelt haben. Ab 2019 haben wir diese Komponenten über Polaris abstrahiert und integriert, um eine einheitliche Service-Discovery- und Governance-Lösung für das Unternehmen zu schaffen, die dem Unternehmen hilft, die F&E-Effizienz und die Betriebsqualität zu verbessern.

Polaris-Installation ist sehr einfach. Laden Sie die Zip-Datei der Antwortplattform herunter und führen Sie sie direkt aus.

Der Dienst fügt Polaris-Discovery-Abhängigkeit hinzu So greifen Sie auf den Polaris-Server zu Bootstrap-Phase, Spring Cloud wird es tun Rufen Sie PolarisConfigFileLocator auf, um die Konfigurationsdatei vom Polaris-Server abzurufen und in den Spring-Kontext zu laden. Konfigurationsinhalte können über die standardmäßige @Value,@ConfigurationProperties-Annotation von Spring Boot abgerufen werden. Die Funktion zur dynamischen Konfigurationsaktualisierung wird über den standardmäßigen @RefreshScope-Mechanismus von Spring Cloud implementiert.

Der Dienst fügt die Polaris-Config-Abhängigkeit hinzu

<dependency>
    <groupId>com.tencent.cloud</groupId>
    <artifactId>spring-cloud-starter-tencent-polaris-discovery</artifactId>
</dependency>

bootstrap.yaml, um auf polaris-config zuzugreifen

spring:
  cloud:
    polaris:
      address: grpc://127.0.0.1:8091

    Besonderer Hinweis: Dies muss in Bootstrap, Tencent ist nicht geeignet. Ausgestattet mit dem neuesten Dateilademechanismus von Spring Boot.
Polaris-Konsole hinzugefügte Konfiguration
  • Dienststrombegrenzung ist Eine der häufigsten Selbstschutzmaßnahmen für Dienste besteht darin, zu verhindern, dass Verkehrsspitzen den Dienst beeinträchtigen. Das Spring Cloud Tencent Rate Limit-Modul verfügt über einen integrierten Strombegrenzungsfilter für Spring Web- und Spring WebFlux-Szenarien, kombiniert mit der Strombegrenzungsfunktion von Polaris, um Unternehmen einen schnellen Zugriff auf die Strombegrenzungsfunktion zu ermöglichen.

    Der Dienst fügt Polaris-Ratelimit hinzu, wenn die aktuelle Begrenzungskomponente verwendet wird, um die Bearbeitung der Serviceliste zu erleichtern. 5. Service-Routing
  • polaris kann weitere Routing-Formulare implementieren: Metadaten-Routing, nächstgelegenes Routing, Regel-Routing, benutzerdefiniertes Routing usw. In diesem Artikel wird die Metadaten-Routing-Demo verwendet. Wie unten gezeigt, werden nur Dienste mit denselben Metadateninformationen weitergeleitet

  • Der Dienst fügt Polaris-Router-Abhängigkeit hinzu

@Bean
@LoadBalanced
public RestTemplate restTemplate() {
  return new RestTemplate();
}

@Autowired
private RestTemplate restTemplate;

@GetMapping("/consumer")
public String consumer() {
  return restTemplate.getForObject("http://lengleng-tencent-discovery-provider/provider/lengleng", String.class);
}

Metadaten der Dienstmarke

spring:
  cloud:
    polaris:
      address: grpc://127.0.0.1:8091
    tencent:
      metadata:
        content:
          version: local

六、限流熔断

故障实例熔断是常见的一种容错保护机制。故障实例熔断能实现主调方迅速自动屏蔽错误率高或故障的服务实例,并启动定时任务对熔断实例进行探活。在达到恢复条件后对其进行半开恢复。在半开恢复后,释放少量请求去进行真实业务探测。并根据真实业务探测结果去判断是否完全恢复正常。

  • 添加限流熔断相关的依赖 polaris-circuitbreaker


    com.tencent.cloud
    spring-cloud-starter-tencent-polaris-circuitbreaker



    org.springframework.cloud
    spring-cloud-starter-loadbalancer


<dependency>
    <groupId>com.tencent.cloud</groupId>
    <artifactId>spring-cloud-starter-tencent-polaris-discovery</artifactId>
</dependency>


    org.springframework.cloud
    spring-cloud-circuitbreaker-spring-retry



    org.springframework.cloud
    spring-cloud-starter-openfeign
  • 提供 Feign 服务调用实现

spring-cloud-tencent 当前版本仅支持 feign 熔断

@FeignClient(contextId = "demoFeign", value = "lengleng-circuitbreaker-tencent-circuitbreaker-provider",
  fallback = DemoFeignFallback.class)
public interface DemoFeign {
 @GetMapping("/provider")
 String get(@RequestParam String name);

}
  • 服务接入 polaris-circuitbreaker

spring:
  cloud:
    polaris:
      address: grpc://127.0.0.1:8091

#开启断路器
feign:
  circuitbreaker:
    enabled: true
  • 编写熔断规则 polaris.yml

consumer:
  circuitBreaker:
    checkPeriod: 100ms
    chain:
      - errorCount
      - errorRate
    plugin:
      errorCount:
        continuousErrorThreshold: 1
        metricNumBuckets: 1
      errorRate:
        errorRateThreshold: 100
        metricStatTimeWindow: 1s
        requestVolumeThreshold: 1

               

Das obige ist der detaillierte Inhalt vonSpringCloud Tencent Komplettlösung eins. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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