Rumah > Java > javaTutorial > teks badan

SpringCloud Tencent penyelesaian lengkap satu

PHP中文网
Lepaskan: 2022-07-14 15:35:55
ke hadapan
2234 orang telah melayarinya

Apakah Spring Cloud Tencent?

Spring Cloud Tencent ialah penyelesaian mikroperkhidmatan sehenti sumber terbuka oleh Tencent. Spring Cloud Tencent melaksanakan SPI perkhidmatan mikro standard Spring Cloud Pembangun boleh membangunkan aplikasi seni bina perkhidmatan mikro Spring Cloud berdasarkan Spring Cloud Tencent. Teras Spring Cloud Tencent bergantung pada penemuan perkhidmatan sehenti sumber terbuka Tencent dan platform tadbir urus Polarismesh untuk melaksanakan pelbagai senario perkhidmatan mikro yang diedarkan.

Keupayaan yang disediakan oleh Spring Cloud Tencent termasuk tetapi tidak terhad kepada:

Alamat projek:https://github . com/Tencent/spring-cloud-tencent

Alamat kod sumber projek

https://github.com/lltx/spring-cloud-tencent-demo

1. Pasang Polaris

Polaris ialah pusat penemuan perkhidmatan sumber terbuka dan pusat tadbir urus Tencent yang didedikasikan untuk menyelesaikan keterlihatan perkhidmatan, toleransi kesalahan, kawalan aliran dan isu keselamatan dalam seni bina perkhidmatan teragih atau mikro. Walaupun sudah ada beberapa komponen dalam industri yang boleh menyelesaikan beberapa masalah ini, terdapat kekurangan pelaksanaan piawai, berbilang bahasa, tanpa rangka kerja.

Tencent mempunyai sejumlah besar perkhidmatan yang diedarkan dan kepelbagaian barisan perniagaan dan susunan teknologi, yang telah mengumpul berpuluh-puluh komponen berkaitan, besar dan kecil. Bermula pada 2019, kami telah mengabstrak dan menyepadukan komponen ini melalui Polaris untuk mencipta penemuan perkhidmatan dan penyelesaian tadbir urus yang bersatu untuk syarikat untuk membantu perniagaan meningkatkan kecekapan R&D dan kualiti operasi.

Pemasangan Polaris sangat mudah Muat turun zip platform respons dan jalankan terus,Alamat muat turun:https://github.com/polarismesh/polaris/releases/tag/. v1 .9.0

2 Pendaftaran dan penemuan perkhidmatan

  • Perkhidmatan menambah pergantungan polaris-penemuan

<dependency>
    <groupId>com.tencent.cloud</groupId>
    <artifactId>spring-cloud-starter-tencent-polaris-discovery</artifactId>
</dependency>
Salin selepas log masuk
  • application.yaml Sambung ke pelayan polaris

spring:
  cloud:
    polaris:
      address: grpc://127.0.0.1:8091
Salin selepas log masuk
  • Mulakan pemerhatian perkhidmatan konsol polaris

  • Contoh panggilan perkhidmatan

@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);
}
Salin selepas log masuk

Pengurusan konfigurasi

Semasa fasa Bootstrap permulaan aplikasi, Spring Cloud akan memanggil PolarisConfigFileLocator untuk mendapatkan fail konfigurasi daripada pelayan Polaris dan memuatkannya ke dalam konteks Spring. Kandungan konfigurasi boleh diperolehi melalui anotasi Standard Spring Boot @Value,@ConfigurationProperties. Keupayaan segar semula konfigurasi dinamik dilaksanakan melalui mekanisme @RefreshScope standard Spring Cloud.

  • Perkhidmatan menambah kebergantungan polaris-config

<dependency>
    <groupId>com.tencent.cloud</groupId>
    <artifactId>spring-cloud-starter-tencent-polaris-config</artifactId>
</dependency>
Salin selepas log masuk
  • bootstrap.yaml access polaris-config

spring:
  cloud:
    polaris:
      address: grpc://127.0.0.1:8081
      config:
        groups:
          - name: ${spring.application.name}
            files: "application"
Salin selepas log masuk

Nota istimewa: Ini perlu dikonfigurasikan dalam bootstrap, spring-cloud-tencent tidak disesuaikan dengan mekanisme pemuatan fail terbaharu bagi but spring

  • Konsol Polaris menambah konfigurasi

  • Konfigurasi penggunaan kod

@Value("${name:}")
private String name;
Salin selepas log masuk

4. Pengehadan arus perkhidmatan

Penghadan arus perkhidmatan ialah salah satu langkah perlindungan diri perkhidmatan yang paling biasa, ; Mencegah lonjakan trafik daripada menurunkan perkhidmatan. Modul Spring Cloud Tencent Rate Limit mempunyai Penapis pengehad semasa terbina dalam untuk senario Spring Web dan Spring WebFlux, digabungkan dengan fungsi mengehadkan semasa Polaris untuk membantu perniagaan mengakses dengan pantas keupayaan mengehadkan semasa.

  • Perkhidmatan menambah kebergantungan polaris-ratelimit ,Tambah penemuan apabila menggunakan komponen pengehad semasa untuk memudahkan penyuntingan senarai perkhidmatan

<dependency>
    <groupId>com.tencent.cloud</groupId>
    <artifactId>spring-cloud-starter-tencent-polaris-discovery</artifactId>
</dependency>

    com.tencent.cloud
    spring-cloud-starter-tencent-polaris-ratelimit
Salin selepas log masuk
  • Akses perkhidmatan 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"
Salin selepas log masuk
  • Konsol Polaris menambah peraturan pengehadan semasa

5. Penghalaan Perkhidmatan

polaris boleh melaksanakan berbilang borang penghalaan seperti penghalaan metadata, penghalaan terdekat, penghalaan peraturan, penghalaan tersuai, dsb. #xff0c;Artikel ini menggunakan penghalaan metadata untuk menunjukkan,Seperti yang ditunjukkan di bawah, hanya perkhidmatan dengan maklumat metadata yang sama akan dihalakan ke

  • perkhidmatan Tambah pergantungan polaris-router

<dependency>
    <groupId>com.tencent.cloud</groupId>
    <artifactId>spring-cloud-starter-tencent-polaris-router</artifactId>
</dependency>
Salin selepas log masuk
  • metadata tanda perkhidmatan

spring:
  cloud:
    polaris:
      address: grpc://127.0.0.1:8091
    tencent:
      metadata:
        content:
          version: local
Salin selepas log masuk

六、限流熔断

故障实例熔断是常见的一种容错保护机制。故障实例熔断能实现主调方迅速自动屏蔽错误率高或故障的服务实例,并启动定时任务对熔断实例进行探活。在达到恢复条件后对其进行半开恢复。在半开恢复后,释放少量请求去进行真实业务探测。并根据真实业务探测结果去判断是否完全恢复正常。

  • 添加限流熔断相关的依赖 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
Salin selepas log masuk
  • 提供 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);

}
Salin selepas log masuk
  • 服务接入 polaris-circuitbreaker

spring:
  cloud:
    polaris:
      address: grpc://127.0.0.1:8091

#开启断路器
feign:
  circuitbreaker:
    enabled: true
Salin selepas log masuk
  • 编写熔断规则 polaris.yml

consumer:
  circuitBreaker:
    checkPeriod: 100ms
    chain:
      - errorCount
      - errorRate
    plugin:
      errorCount:
        continuousErrorThreshold: 1
        metricNumBuckets: 1
      errorRate:
        errorRateThreshold: 100
        metricStatTimeWindow: 1s
        requestVolumeThreshold: 1
Salin selepas log masuk

               

Atas ialah kandungan terperinci SpringCloud Tencent penyelesaian lengkap satu. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:csdn.net
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!