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を通じてこれらのコンポーネントを抽象化および統合し、企業向けの統合されたサービス検出およびガバナンスソリューションを作成し、企業の研究開発効率と運用品質の向上を支援しました。
Polaris のインストールは非常に簡単です。応答プラットフォームの zip をダウンロードして直接実行します,ダウンロード アドレス:https://github.com/polarismesh/polaris/releases/tag/ v1 .9.0
<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); }
#サービスは、polaris-config の依存関係を追加します
<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"特記事項: これはブートストラップで設定する必要があります, spring-cloud-tencent は Spring boot の最新のファイル読み込みメカニズムに適応していません
Polaris コンソールの追加構成
#コード使用構成
##@Value("${name:}") private String name;
サービスは、polaris-ratelimit 依存関係を追加します,電流制限コンポーネントを使用するときに検出を追加して、サービス リストの編集を容易にします
<dependency> <groupId>com.tencent.cloud</groupId> <artifactId>spring-cloud-starter-tencent-polaris-discovery</artifactId> </dependency>com.tencent.cloud spring-cloud-starter-tencent-polaris-ratelimit
サービス アクセス Polaris-ratelimit
spring: cloud: polaris: address: grpc://127.0.0.1:8091 namespace: default ratelimit: reject-http-code: 403 reject-request-tips: "lengleng test rate limit"
# サービスは、polaris-router 依存関係を追加します
<dependency> <groupId>com.tencent.cloud</groupId> <artifactId>spring-cloud-starter-tencent-polaris-router</artifactId> </dependency>
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 中国語 Web サイトの他の関連記事を参照してください。