목차
Spring Cloud Tencent란 무엇인가요?" >Spring Cloud Tencent란 무엇인가요?
프로젝트 소스 코드 address
1. Polaris 설치
서비스에 polaris-discovery 종속성이 추가됩니다.
현재 제한 구성요소를 사용할 때 서비스에 검색을 추가하여 서비스 목록을 더 쉽게 편집할 수 있습니다. 대만에서는 현재 제한 규칙을 추가합니다.
六、限流熔断
Java java지도 시간 SpringCloud Tencent 완전한 솔루션 1

SpringCloud Tencent 완전한 솔루션 1

Jul 14, 2022 pm 02:32 PM
마이크로서비스 spring cloud 빅데이터

Spring Cloud Tencent란 무엇인가요?

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

프로젝트 소스 코드 address

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

1. Polaris 설치

Polaris는 분산 또는 마이크로서비스 아키텍처 서비스 가시성, 내결함성 문제를 해결하는 데 전념하는 Tencent의 오픈 소스 서비스 검색 및 거버넌스 센터입니다. , 흐름 제어 및 보안 문제. 업계에는 이러한 문제 중 일부를 해결할 수 있는 일부 구성 요소가 이미 있지만 표준, 다중 언어, 프레임워크 독립적 구현이 부족합니다.

Tencent는 수많은 분산 서비스와 다양한 비즈니스 라인 및 기술 스택을 보유하고 있으며, 이는 크고 작은 수십 개의 관련 구성요소를 축적해 왔습니다. 2019년부터 Polaris를 통해 이러한 구성 요소를 추상화하고 통합하여 기업의 R&D 효율성과 운영 품질을 향상시키는 데 도움이 되는 통합 서비스 검색 및 거버넌스 솔루션을 만들었습니다.

Polaris 설치는 매우 간단합니다.

2. 서비스 등록 및 검색

서비스에 polaris-discovery 종속성이 추가됩니다.

  • <dependency>
        <groupId>com.tencent.cloud</groupId>
        <artifactId>spring-cloud-starter-tencent-polaris-discovery</artifactId>
    </dependency>
    로그인 후 복사

  • application.yaml polaris 서버 접속
  • 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);
    }
    로그인 후 복사

    3. 애플리케이션 시작 부트스트랩 단계에서, 스프링 클라우드는 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, 텐센트는 적합하지 않습니다. 스프링 부트의 최신 파일 로딩 메커니즘을 탑재했습니다
Polaris 콘솔 추가 구성

코드 사용 구성

@Value("${name:}")
private String name;
로그인 후 복사
4.
  • 서비스 현재 제한은 서비스에 대한 가장 일반적인 자체 보호 조치 중 하나는 트래픽 피크로 인해 서비스가 중단되는 것을 방지하는 것입니다. Spring Cloud Tencent 속도 제한 모듈에는 Spring Web 및 Spring WebFlux 시나리오용 전류 제한 필터가 내장되어 있으며 Polaris의 현재 제한 기능과 결합되어 기업이 현재 제한 기능에 신속하게 액세스할 수 있도록 도와줍니다.

현재 제한 구성요소를 사용할 때 서비스에 검색을 추가하여 서비스 목록을 더 쉽게 편집할 수 있습니다. 대만에서는 현재 제한 규칙을 추가합니다.

  • 5. 서비스 라우팅

  • 폴라리스 더 많은 라우팅 형식을 구현할 수 있습니다: 메타데이터 라우팅, 가장 가까운 라우팅, 규칙 라우팅, 사용자 정의 라우팅 등. 이 기사에서는 메타데이터 라우팅 데모를 사용합니다. 아래 표시된 것처럼 동일한 메타데이터 정보를 가진 서비스만 라우팅됩니다
    서비스에 polaris-router 종속성이 추가되었습니다
  • <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



    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 완전한 솔루션 1의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Java 프레임워크는 마이크로서비스의 수평적 확장을 어떻게 지원합니까? Java 프레임워크는 마이크로서비스의 수평적 확장을 어떻게 지원합니까? Jun 04, 2024 pm 04:34 PM

Java 프레임워크는 마이크로서비스의 수평 확장을 지원합니다. 구체적인 방법은 다음과 같습니다. Spring Cloud는 서버 측 및 클라이언트 측 로드 밸런싱을 위한 리본 및 Feign을 제공합니다. NetflixOSS는 서비스 검색, 로드 밸런싱 및 장애 조치를 구현하기 위해 Eureka 및 Zuul을 제공합니다. Kubernetes는 자동 크기 조정, 상태 확인, 자동 재시작을 통해 수평적 크기 조정을 단순화합니다.

PHP 프레임워크 및 마이크로서비스: 클라우드 네이티브 배포 및 컨테이너화 PHP 프레임워크 및 마이크로서비스: 클라우드 네이티브 배포 및 컨테이너화 Jun 04, 2024 pm 12:48 PM

PHP 프레임워크와 마이크로서비스 결합의 이점: 확장성: 애플리케이션을 쉽게 확장하고, 새로운 기능을 추가하거나 더 많은 로드를 처리합니다. 유연성: 마이크로서비스는 독립적으로 배포 및 유지 관리되므로 변경 및 업데이트가 더 쉬워집니다. 고가용성: 하나의 마이크로서비스 장애가 다른 부분에 영향을 주지 않아 더 높은 가용성을 보장합니다. 실제 사례: Laravel 및 Kubernetes를 사용하여 마이크로서비스 배포 단계: Laravel 프로젝트를 생성합니다. 마이크로서비스 컨트롤러를 정의합니다. Dockerfile을 만듭니다. Kubernetes 매니페스트를 만듭니다. 마이크로서비스를 배포합니다. 마이크로서비스를 테스트합니다.

Java 프레임워크를 사용하여 마이크로서비스 아키텍처를 구축할 때 어려운 점은 무엇입니까? Java 프레임워크를 사용하여 마이크로서비스 아키텍처를 구축할 때 어려운 점은 무엇입니까? Jun 02, 2024 pm 03:22 PM

Java 프레임워크를 사용하여 마이크로서비스 아키텍처를 구축하려면 다음과 같은 과제가 필요합니다. 서비스 간 통신: REST API, HTTP, gRPC 또는 메시지 대기열과 같은 적절한 통신 메커니즘을 선택합니다. 분산 데이터 관리: 데이터 일관성을 유지하고 분산 트랜잭션을 방지합니다. 서비스 검색 및 등록: SpringCloudEureka 또는 HashiCorpConsul과 같은 메커니즘을 통합합니다. 구성 관리: SpringCloudConfigServer 또는 HashiCorpVault를 사용하여 구성을 중앙에서 관리합니다. 모니터링 및 관찰 가능성: 표시기 모니터링을 위해 Prometheus와 Grafana를 통합하고 SpringBootActuator를 사용하여 작동 표시기를 제공합니다.

Golang 마이크로서비스 프레임워크를 사용하여 분산 시스템 만들기 Golang 마이크로서비스 프레임워크를 사용하여 분산 시스템 만들기 Jun 05, 2024 pm 06:36 PM

Golang 마이크로서비스 프레임워크를 사용하여 분산 시스템 생성: Golang 설치, 마이크로서비스 프레임워크(예: Gin) 선택, Gin 마이크로서비스 생성, 마이크로서비스 배포를 위한 엔드포인트 추가, 애플리케이션 구축 및 실행, 주문 및 재고 마이크로서비스 생성, 엔드포인트를 사용하여 주문 및 재고 처리 Kafka와 같은 메시징 시스템을 사용하여 마이크로서비스 연결 sarama 라이브러리를 사용하여 주문 정보 생성 및 소비

C++ 기술의 빅 데이터 처리: 대규모 데이터 세트를 효과적으로 저장하고 검색하는 방법은 무엇입니까? C++ 기술의 빅 데이터 처리: 대규모 데이터 세트를 효과적으로 저장하고 검색하는 방법은 무엇입니까? Jun 02, 2024 am 10:47 AM

C++의 빅 데이터 처리를 위한 효율적인 저장 및 검색 전략: 저장 전략: 배열 및 벡터(빠른 액세스), 연결된 목록 및 목록(동적 삽입 및 삭제), 해시 테이블(빠른 조회 및 검색), 데이터베이스(확장성 및 유연성 데이터 관리) ). 검색 기술: 인덱싱(요소의 빠른 검색), 이진 검색(순서가 지정된 데이터 세트의 빠른 검색), 해시 테이블(빠른 검색).

PHP 프레임워크 및 마이크로서비스: 데이터 일관성 및 트랜잭션 관리 PHP 프레임워크 및 마이크로서비스: 데이터 일관성 및 트랜잭션 관리 Jun 02, 2024 pm 04:59 PM

PHP 마이크로서비스 아키텍처에서는 데이터 일관성과 트랜잭션 관리가 중요합니다. PHP 프레임워크는 이러한 요구 사항을 구현하는 메커니즘을 제공합니다. Laravel의 DB::transaction과 같은 트랜잭션 클래스를 사용하여 트랜잭션 경계를 정의합니다. Doctrine과 같은 ORM 프레임워크를 사용하여 동시성 오류를 방지하기 위한 lock() 메서드와 같은 원자성 작업을 제공합니다. 분산 트랜잭션의 경우 Saga 또는 2PC와 같은 분산 트랜잭션 관리자를 사용하는 것이 좋습니다. 예를 들어 온라인 상점 시나리오에서는 장바구니에 추가할 때 데이터 일관성을 보장하기 위해 트랜잭션이 사용됩니다. 이러한 메커니즘을 통해 PHP 프레임워크는 트랜잭션과 데이터 일관성을 효과적으로 관리하여 애플리케이션 견고성을 향상시킵니다.

Java 프레임워크의 마이크로서비스 아키텍처 모니터링 및 경고 Java 프레임워크의 마이크로서비스 아키텍처 모니터링 및 경고 Jun 02, 2024 pm 12:39 PM

Java 프레임워크의 마이크로서비스 아키텍처 모니터링 및 경고 마이크로서비스 아키텍처에서 모니터링 및 경고는 시스템 상태와 안정적인 운영을 보장하는 데 매우 중요합니다. 이 기사에서는 Java 프레임워크를 사용하여 마이크로서비스 아키텍처의 모니터링 및 경보를 구현하는 방법을 소개합니다. 실제 사례: SpringBoot+Prometheus+Alertmanager1을 사용합니다. Prometheus@ConfigurationpublicclassPrometheusConfig{@BeanpublicSpringBootMetricsCollectorspringBootMetric을 통합합니다.

Java 마이크로서비스 아키텍처 모범 사례 Java 마이크로서비스 아키텍처 모범 사례 Jun 01, 2024 pm 06:58 PM

최고의 Java 마이크로서비스 아키텍처 사례: 마이크로서비스 프레임워크 사용: SpringBoot, Quarkus, Micronaut와 같은 구조 및 도구를 제공합니다. RESTfulAPI 채택: 서비스 간 통신을 위한 일관되고 표준화된 인터페이스를 제공합니다. 회로 차단기 메커니즘 구현: 서비스 오류를 적절하게 처리하고 연쇄 오류를 방지합니다. 분산 추적 사용: 손쉬운 디버깅 및 문제 해결을 위해 서비스 전반의 요청 및 종속성을 모니터링합니다. 자동화된 테스트: JUnit을 사용하는 등 시스템 견고성과 안정성을 보장합니다. 컨테이너화 및 오케스트레이션: Docker 및 Kubernetes와 같은 도구를 사용하여 배포 및 관리를 단순화합니다.

See all articles