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>Nach dem Login kopieren
bootstrap.yaml, um auf polaris-config zuzugreifen
spring: cloud: polaris: address: grpc://127.0.0.1:8091
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 Dienstmarkespring: cloud: polaris: address: grpc://127.0.0.1:8091 tencent: metadata: content: version: localNach dem Login kopieren六、限流熔断
故障实例熔断是常见的一种容错保护机制。故障实例熔断能实现主调方迅速自动屏蔽错误率高或故障的服务实例,并启动定时任务对熔断实例进行探活。在达到恢复条件后对其进行半开恢复。在半开恢复后,释放少量请求去进行真实业务探测。并根据真实业务探测结果去判断是否完全恢复正常。
添加限流熔断相关的依赖 polaris-circuitbreaker
com.tencent.cloud spring-cloud-starter-tencent-polaris-circuitbreaker <dependency> <groupId>com.tencent.cloud</groupId> <artifactId>spring-cloud-starter-tencent-polaris-discovery</artifactId> </dependency> org.springframework.cloud spring-cloud-starter-loadbalancer org.springframework.cloud spring-cloud-circuitbreaker-spring-retry org.springframework.cloud spring-cloud-starter-openfeign Nach dem Login kopieren
提供 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); }Nach dem Login kopieren
服务接入 polaris-circuitbreaker
spring: cloud: polaris: address: grpc://127.0.0.1:8091 #开启断路器 feign: circuitbreaker: enabled: trueNach dem Login kopieren
编写熔断规则 polaris.yml
consumer: circuitBreaker: checkPeriod: 100ms chain: - errorCount - errorRate plugin: errorCount: continuousErrorThreshold: 1 metricNumBuckets: 1 errorRate: errorRateThreshold: 100 metricStatTimeWindow: 1s requestVolumeThreshold: 1Nach dem Login kopieren
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!