Spring Cloud Tencent는 Tencent가 제공하는 원스톱 마이크로서비스 솔루션 오픈 소스입니다. Spring Cloud Tencent는 Spring Cloud 표준 마이크로서비스 SPI를 구현합니다. 개발자는 Spring Cloud Tencent를 기반으로 Spring Cloud 마이크로서비스 아키텍처 애플리케이션을 신속하게 개발할 수 있습니다. Spring Cloud Tencent의 핵심은 Tencent의 오픈 소스 원스톱 서비스 검색 및 거버넌스 플랫폼 Polarismesh를 사용하여 다양한 분산 마이크로서비스 시나리오를 구현합니다.
Spring Cloud Tencent에서 제공하는 기능에는 다음이 포함되지만 이에 국한되지는 않습니다.:
프로젝트 주소:https://github.com/Tencent/spring-cloud-tencent
https://github.com/lltx/spring-cloud-tencent-demo
Polaris는 분산 또는 마이크로서비스 아키텍처 서비스 가시성, 내결함성 문제를 해결하는 데 전념하는 Tencent의 오픈 소스 서비스 검색 및 거버넌스 센터입니다. , 흐름 제어 및 보안 문제. 업계에는 이러한 문제 중 일부를 해결할 수 있는 일부 구성 요소가 이미 있지만 표준, 다중 언어, 프레임워크 독립적 구현이 부족합니다.
Tencent는 수많은 분산 서비스와 다양한 비즈니스 라인 및 기술 스택을 보유하고 있으며, 이는 크고 작은 수십 개의 관련 구성요소를 축적해 왔습니다. 2019년부터 Polaris를 통해 이러한 구성 요소를 추상화하고 통합하여 기업의 R&D 효율성과 운영 품질을 향상시키는 데 도움이 되는 통합 서비스 검색 및 거버넌스 솔루션을 만들었습니다.
2. 서비스 등록 및 검색Polaris 설치는 매우 간단합니다.
<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); }
3. 애플리케이션 시작 부트스트랩 단계에서, 스프링 클라우드는 PolarisConfigFileLocator를 호출하여 Polaris 서버에서 구성 파일을 가져와 Spring 컨텍스트에 로드합니다. 구성 콘텐츠는 Spring Boot의 표준 @Value,@ConfigurationProperties 주석을 통해 얻을 수 있습니다. 동적 구성 새로 고침 기능은 Spring Cloud의 표준 @RefreshScope 메커니즘을 통해 구현됩니다.
<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"
코드 사용 구성
@Value("${name:}") private String name;
<dependency> <groupId>com.tencent.cloud</groupId> <artifactId>spring-cloud-starter-tencent-polaris-discovery</artifactId> </dependency>com.tencent.cloud spring-cloud-starter-tencent-polaris-ratelimit
서비스 표시 메타데이터
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
위 내용은 SpringCloud Tencent 완전한 솔루션 1의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!