Maison >Java >javaDidacticiel >SpringCloud Tencent, solution complète 1
Spring Cloud Tencent est une solution de microservices open source unique de Tencent. Spring Cloud Tencent implémente le microservice standard Spring Cloud. Les développeurs peuvent développer rapidement des applications d'architecture de microservice Spring Cloud basées sur Spring Cloud Tencent. Le cœur de Spring Cloud Tencent s'appuie sur la plateforme open source unique de découverte de services et de gouvernance de Tencent, Polarismesh, pour mettre en œuvre divers scénarios de microservices distribués.
Les fonctionnalités fournies par Spring Cloud Tencent incluent, sans s'y limiter,:
adresse du projet:https://github.com/Tencent/spring-cloud-tencent
https://github.com/lltx/spring-cloud-tencent-demo
Polaris est le centre de découverte et de gouvernance de services open source de Tencent dédié à la résolution des architectures distribuées ou de microservices, à la visibilité des services et à la tolérance aux pannes. , contrôle des flux et problèmes de sécurité. Bien qu'il existe déjà certains composants dans l'industrie qui peuvent résoudre certains de ces problèmes, il manque une implémentation standard, multilingue et indépendante du framework.
Tencent dispose d'un grand nombre de services distribués et d'une diversité de secteurs d'activité et de piles technologiques, qui ont accumulé des dizaines de composants connexes, grands et petits. À partir de 2019, nous avons extrait et intégré ces composants via Polaris pour créer une solution unifiée de découverte de services et de gouvernance pour l'entreprise afin d'aider l'entreprise à améliorer l'efficacité de la R&D et la qualité opérationnelle.
2 Enregistrement et découverte du serviceapplication.yaml. pour accéder au serveur PolarisL'installation de Polaris est très simple. Téléchargez le zip de la plateforme de réponse et exécutez-le directement
<dependency> <groupId>com.tencent.cloud</groupId> <artifactId>spring-cloud-starter-tencent-polaris-discovery</artifactId> </dependency>
spring: cloud: polaris: address: grpc://127.0.0.1:8091
@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); }
Remarque spéciale : cela doit être configuré dans bootstrap, ; tencent ne convient pas Équipé du dernier mécanisme de chargement de fichiers de Spring Boot<dependency> <groupId>com.tencent.cloud</groupId> <artifactId>spring-cloud-starter-tencent-polaris-config</artifactId> </dependency>
spring: cloud: polaris: address: grpc://127.0.0.1:8081 config: groups: - name: ${spring.application.name} files: "application"
La limite actuelle du service est l'une des mesures d'autoprotection les plus courantes pour les services consiste à empêcher les pics de trafic de faire tomber le service. Le module Spring Cloud Tencent Rate Limit intègre un filtre de limitation de courant pour les scénarios Spring Web et Spring WebFlux, combiné à la fonction de limitation de courant de Polaris pour aider les entreprises à accéder rapidement à la capacité de limitation actuelle.
polaris. peut implémenter plus de formulaires de routage que le routage de métadonnées, le routage le plus proche, le routage de règles, le routage personnalisé, etc. Cet article utilise la démonstration de routage de métadonnées ; Comme indiqué ci-dessous, seuls les services avec les mêmes informations de métadonnées seront routés
@Value("${name:}") private String name;
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 <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
提供 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
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!