目錄
Spring Cloud Tencent 是什麼?" >Spring Cloud Tencent 是什麼?
專案原始碼位址
一、安裝北極星
二、服務註冊與發現
六、限流熔断
首頁 Java java教程 SpringCloud Tencent 全套解決方案一

SpringCloud Tencent 全套解決方案一

Jul 14, 2022 pm 02:32 PM
微服務 spring cloud 大數據

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>
    登入後複製
application.yaml 存取polaris server

#
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
    
    
    
        org.springframework.cloud
        spring-cloud-starter-loadbalancer
    
    
    <dependency>
        <groupId>com.tencent.cloud</groupId>
        <artifactId>spring-cloud-starter-tencent-polaris-discovery</artifactId>
    </dependency>
    
    
        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中文網其他相關文章!

    本網站聲明
    本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

    熱AI工具

    Undresser.AI Undress

    Undresser.AI Undress

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

    AI Clothes Remover

    AI Clothes Remover

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

    Undress AI Tool

    Undress AI Tool

    免費脫衣圖片

    Clothoff.io

    Clothoff.io

    AI脫衣器

    Video Face Swap

    Video Face Swap

    使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

    熱門文章

    <🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
    3 週前 By 尊渡假赌尊渡假赌尊渡假赌
    北端:融合系統,解釋
    3 週前 By 尊渡假赌尊渡假赌尊渡假赌
    Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
    3 週前 By 尊渡假赌尊渡假赌尊渡假赌

    熱工具

    記事本++7.3.1

    記事本++7.3.1

    好用且免費的程式碼編輯器

    SublimeText3漢化版

    SublimeText3漢化版

    中文版,非常好用

    禪工作室 13.0.1

    禪工作室 13.0.1

    強大的PHP整合開發環境

    Dreamweaver CS6

    Dreamweaver CS6

    視覺化網頁開發工具

    SublimeText3 Mac版

    SublimeText3 Mac版

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

    熱門話題

    Java教學
    1664
    14
    CakePHP 教程
    1423
    52
    Laravel 教程
    1321
    25
    PHP教程
    1269
    29
    C# 教程
    1249
    24
    PHP框架與微服務:雲端原生部署與容器化 PHP框架與微服務:雲端原生部署與容器化 Jun 04, 2024 pm 12:48 PM

    PHP框架與微服務結合的好處:可擴展性:輕鬆擴展應用程序,添加新功能或處理更多負載。靈活性:微服務獨立部署和維護,更容易進行更改和更新。高可用性:一個微服務的故障不會影響其他部分,確保更高可用性。實戰案例:使用Laravel和Kubernetes部署微服務步驟:建立Laravel專案。定義微服務控制器。建立Dockerfile。建立Kubernetes清單。部署微服務。測試微服務。

    Java 框架如何支援微服務的橫向擴展? Java 框架如何支援微服務的橫向擴展? Jun 04, 2024 pm 04:34 PM

    Java框架支援微服務的橫向擴展,具體方式包括:SpringCloud提供Ribbon和Feign用於伺服器端和客戶端負載平衡。 NetflixOSS提供Eureka和Zuul,實現服務發現、負載平衡和故障轉移。 Kubernetes透過自動擴展、健康檢查和自動重新啟動簡化了橫向擴展。

    Java框架的微服務架構資料一致性保障 Java框架的微服務架構資料一致性保障 Jun 02, 2024 am 10:00 AM

    微服務架構中的資料一致性保障面臨分散式事務、最終一致性和遺失更新的挑戰。策略包括:1.分散式事務管理,協調跨服務事務;2.最終一致性,允許獨立更新並透過訊息佇列同步;3.資料版本控制,使用樂觀鎖檢查並發更新。

    Spring Boot 在微服務架構中扮演什麼角色? Spring Boot 在微服務架構中扮演什麼角色? Jun 04, 2024 pm 02:34 PM

    SpringBoot在微服務架構中扮演著簡化開發和部署的至關重要角色:提供基於註解的自動配置,處理常見配置任務,如資料庫連接。透過契約測試支援驗證API合約,減少服務之間的破壞性變更。具有生產就緒性功能,如度量收集、監視和健康檢查,便於在生產環境中管理微服務。

    使用 Golang 微服務框架建立分散式系統 使用 Golang 微服務框架建立分散式系統 Jun 05, 2024 pm 06:36 PM

    使用Golang微服務框架建立分散式系統:安裝Golang、選擇微服務框架(如Gin)建立Gin微服務,新增端點部署微服務,建置並執行應用程式建立訂單和庫存微服務,使用端點處理訂單和庫存使用Kafka等訊息傳遞系統連接微服務使用sarama庫生產和消費訂單訊息

    Java框架的微服務架構監控與警報 Java框架的微服務架構監控與警報 Jun 02, 2024 pm 12:39 PM

    Java框架的微服務架構監控與警告在微服務架構中,監控與警告對於確保系統健康可靠運作至關重要。本文將介紹如何使用Java框架實現微服務架構的監控與警告。實戰案例:使用SpringBoot+Prometheus+Alertmanager1.整合Prometheus@ConfigurationpublicclassPrometheusConfig{@BeanpublicSpringBootMetricsCollectorspringBootMetric

    PHP框架與微服務:資料一致性與交易管理 PHP框架與微服務:資料一致性與交易管理 Jun 02, 2024 pm 04:59 PM

    在PHP微服務架構中,資料一致性和事務管理至關重要。 PHP框架提供機制來實作這些需求:使用事務類,如Laravel中的DB::transaction,來定義事務邊界。使用ORM框架,如Doctrine,提供原子操作,如lock()方法,防止並發錯誤。對於分散式事務,考慮使用Saga或2PC等分散式事務管理器。例如,在線上商店場景中使用事務,在新增至購物車時確保資料一致性。透過這些機制,PHP框架有效管理事務和資料一致性,提高應用程式健全性。

    採用 Java 框架建構微服務架構面臨的挑戰? 採用 Java 框架建構微服務架構面臨的挑戰? Jun 02, 2024 pm 03:22 PM

    採用Java框架建構微服務架構涉及以下挑戰:服務間通訊:選擇合適的通訊機制,如RESTAPI、HTTP、gRPC或訊息佇列。分散式資料管理:維護資料一致性和避免分散式事務。服務發現與註冊:整合SpringCloudEureka或HashiCorpConsul等機制。配置管理:使用SpringCloudConfigServer或HashiCorpVault集中管理配置。監控和可觀察性:整合Prometheus和Grafana進行指標監控,同時使用SpringBootActuator提供操作指標。

    See all articles