Spring Cloud Tencent 是什麼?
Spring Cloud Tencent 是騰訊開源的一站式微服務解決方案。 Spring Cloud Tencent 實現了 Spring Cloud 標準微服務 SPI,開發者可以基於 Spring Cloud Tencent 快速開發 Spring Cloud 微服務架構應用程式。 Spring Cloud Tencent 的核心依托騰訊開源的一站式服務發現與治理平台 Polarismesh ,實現各種分散式微服務場景。
Spring Cloud Tencent 提供的能力包括但不限於:
#專案位址:https://github. com/Tencent/spring-cloud-tencent
專案原始碼位址
https://github.com/lltx/spring-cloud-tencent-demo
一、安裝北極星
北極星是騰訊開源的服務發現和治理中心,致力於解決分散式或微服務架構中的服務可見、故障容錯、流量控制和安全問題。雖然,業界已經有些元件可以解決其中一部分問題,但是缺少一個標準的、多語言的、框架無關的實作。
騰訊具有海量的分散式服務,加上業務線和技術堆疊的多樣性,沉澱了大大小小數十個相關元件。從 2019 年開始,我們透過北極星對這些組件進行抽象和整合,打造公司統一的服務發現和治理方案,幫助業務提升研發效率和營運品質。
北極星安裝非常簡單的下載響應平台的zip 直接運行即可,下載地址:https://github.com/polarismesh/polaris/releases/tag/v1 .9.0
二、服務註冊與發現
服務增加polaris-discovery 依賴
-
##
<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##啟動服務觀察polaris console
- 服務呼叫範例 #
@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); }三、設定管理
在應用程式啟動Bootstrap 階段,Spring Cloud 會呼叫PolarisConfigFileLocator 從Polaris 服務端取得設定檔並載入到Spring 上下文。透過 Spring Boot 標準的 @Value,@ConfigurationProperties 註解即可取得設定內容。動態配置刷新能力,則透過 Spring Cloud 標準的 @RefreshScope 機制實現。
- 服務增加polaris-config 依賴
#
<dependency> <groupid>com.tencent.cloud</groupid> <artifactid>spring-cloud-starter-tencent-polaris-config</artifactid> </dependency>

bootstrap.yaml 存取polaris-config
spring: cloud: polaris: address: grpc://127.0.0.1:8081 config: groups: - name: ${spring.application.name} files: "application"
特別注意: 這裡需要配置在bootstrap, spring-cloud-tencent 未適配spring boot 最新的檔案載入機制
##@Value("${name:}")
private String name;
四、服務限流服務限流是最常見的一種服務自我保護措施之一,防止流量洪峰打垮服務。 Spring Cloud Tencent Rate Limit 模組內建了 Spring Web 和 Spring WebFlux 場景的限流 Filter,結合 Polaris 的限流功能幫忙業務快速存取限流能力。
- 服務增加polaris-ratelimit 依賴,使用限流元件時加入discovery ,方便在服務清單編輯
-
<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 能夠實現的路由形式較多元資料路由、就近路由、規則路由、自訂路由等形式,本文以元資料路由示範,如下圖只會路由至相同元資料資訊的服務########################服務增加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 全套解決方案一的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本文討論了使用Maven和Gradle進行Java項目管理,構建自動化和依賴性解決方案,以比較其方法和優化策略。

本文使用Maven和Gradle之類的工具討論了具有適當的版本控制和依賴關係管理的自定義Java庫(JAR文件)的創建和使用。

本文討論了使用咖啡因和Guava緩存在Java中實施多層緩存以提高應用程序性能。它涵蓋設置,集成和績效優勢,以及配置和驅逐政策管理最佳PRA

本文討論了使用JPA進行對象相關映射,並具有高級功能,例如緩存和懶惰加載。它涵蓋了設置,實體映射和優化性能的最佳實踐,同時突出潛在的陷阱。[159個字符]

Java的類上載涉及使用帶有引導,擴展程序和應用程序類負載器的分層系統加載,鏈接和初始化類。父代授權模型確保首先加載核心類別,從而影響自定義類LOA


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

Atom編輯器mac版下載
最受歡迎的的開源編輯器

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境