기술나눔

곡물 몰 연구 노트-23-분산 구성 요소-SpringCloud Alibaba-Nacos 구성 센터-간단한 예

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

나는 이전에 Nacos를 등록 센터로 사용하는 방법을 배웠습니다. 이 섹션에서는 Nacos의 또 다른 핵심 기능을 배우게 됩니다.配置中心

1. Nacos 구성 센터 소개

Nacos는 동적 서비스 검색 및 구성 관리를 위한 사용하기 쉬운 플랫폼입니다. 구성 센터로서 Nacos는 다음과 같은 핵심 기능과 장점을 제공합니다.

  1. 동적 구성 관리: Nacos를 사용하면 사용자는 서비스를 다시 시작하지 않고도 구성 정보를 동적으로 수정하고 푸시할 수 있으므로 구성이 실시간으로 업데이트됩니다.

  2. 중앙 집중식 스토리지 구성: Nacos는 중앙 집중식 구성 스토리지를 제공하여 구성 정보를 쉽게 관리하고 유지 관리할 수 있도록 하며, 구성이 서로 다른 환경과 시스템에 분산되는 문제를 방지합니다.

  3. 버전 제어 구성: Nacos는 구성 변경 내역을 추적하고 롤백 작업을 용이하게 할 수 있는 구성 버전 제어를 지원합니다.

  4. 공유 구성: Nacos는 서비스 간 구성 공유를 허용하여 구성 재사용성을 향상시키고 중복성을 줄입니다.

  5. 격리 구성: Nacos는 네임스페이스 개념을 통해 서로 다른 환경(예: 개발, 테스트, 프로덕션)의 구성 격리를 지원하여 환경 간의 구성이 서로 간섭하지 않도록 합니다.

  6. 청취 및 푸시 구성: Nacos는 구성 모니터링 기능을 제공하여 구성이 변경되면 클라이언트에 업데이트를 적극적으로 푸시하여 구성을 핫 업데이트할 수 있습니다.

  7. 안전: Nacos는 승인된 사용자만 구성에 액세스하거나 수정할 수 있도록 구성 액세스 제어 및 권한 관리를 지원합니다.

  8. 다양한 환경 지원: Nacos는 다양한 배포 환경을 지원하며 다양한 규모와 요구 사항의 구성 관리를 충족할 수 있습니다.

  9. 스프링 클라우드와 통합: Nacos는 Spring Cloud와 긴밀하게 통합되어 spring-cloud-starter-alibaba-nacos-config 및 기타 구성 요소를 제공하여 Spring Cloud 애플리케이션에서 Nacos 구성 센터를 사용하는 프로세스를 단순화합니다.

  10. 사용의 용이성: Nacos는 친숙한 사용자 인터페이스를 제공하여 구성을 직관적이고 간단하게 보고 수정하고 관리할 수 있습니다.

구성 센터로서 Nacos는 동적 구성 관리가 필요한 마이크로서비스 아키텍처, 클라우드 네이티브 애플리케이션 및 분산 시스템에 적합합니다. Nacos는 구성을 중앙에서 관리함으로써 기업이 구성 관리의 효율성과 보안을 향상시키는 동시에 개발, 운영 및 유지 관리 작업을 단순화하도록 돕습니다.

2. Nacos Configuration Center 사용 지침

사용 지침은 공식 문서에 자세히 기록되어 있습니다. 문서를 보려면 클릭하세요.https://nacos.io/zh-cn/docs/v2/ecology/use-nacos-with-spring-cloud.html

1. 구성 센터에 Maven 종속성을 선언합니다.

구성 센터를 사용하려면 먼저 종속성을 추가해야 합니다.

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
  • 1
  • 2
  • 3
  • 4

Guli Mall 프로젝트에서는 모든 서비스가 Nacos 구성 센터를 사용해야 하기 때문에 이 종속성이 공통 모듈에 추가됩니다.

2. bootstrap.properties에서 Nacos 서버의 주소와 애플리케이션 이름을 구성합니다.

프로젝트 또는 모듈의 리소스 디렉터리에서 bootstrap.properties에 Nacos 서버의 주소와 서비스 이름을 선언합니다.

spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.application.name=gulimall-coupon
  • 1
  • 2

3. Nacos 구성 목록 인터페이스에서 구성 파일을 생성합니다.

여기에 이미지 설명을 삽입하세요.

구성 생성을 클릭하면 다음 페이지가 나타납니다.

여기에 이미지 설명을 삽입하세요.

  • ① 데이터ID는 파일명과 동일하며, gulimall-coupon.properties 등 서비스명이 포함되어야 합니다.
  • ② 구성 파일 형식은 여러 유형을 지원하며, 마이크로서비스의 경우 일반적으로 yaml 또는 속성입니다.
  • ③ 블랙박스에는 채워야 할 설정정보가 담겨있습니다.

존재하다 Nacos Spring Cloud 가운데,Data Id 의 전체 형식은 다음과 같습니다.

${prefix}-${spring.profiles.active}.${file-extension}
  • 1
  • prefix 기본값은spring.application.name 값은 구성 항목을 통해 전달될 수도 있습니다.spring.cloud.nacos.config.prefix구성합니다.
  • spring.profiles.active 즉, 현재 환경에 맞춰profile , 자세한 내용은 Spring Boot 설명서를 참조하세요. 참고: 언제spring.profiles.active 비어 있으면 해당 커넥터는 존재하지 않으며 dataId의 접합 형식은 다음과 같습니다.${prefix}.${file-extension}
  • file-exetension 콘텐츠의 데이터 형식을 구성하려면 구성 항목을 전달하면 됩니다.spring.cloud.nacos.config.file-extension 구성합니다.현재는 다음만 지원합니다.properties 그리고yaml 유형.

세 번째, 테스트

1. 프로젝트에 구성 정보를 넣습니다.

먼저 프로젝트 구성 파일에 정보를 넣고 쿠폰 모듈의 구성 파일 application.properties에 다음 정보를 구성합니다.

coupon.user.name=lcy
coupon.age=22
  • 1
  • 2

여기에 이미지 설명을 삽입하세요.

2. 테스트 코드 작성

구성 파일의 구성 정보를 사용하려면 컨트롤러에 메서드를 추가하세요.

	@Value("${coupon.user.name}")
    private String userName;
    @Value("${coupon.user.age}")
    private String userAge;

    @RequestMapping("test")
    public R test(){
        return R.ok().put("name", userName).put("age", userAge);
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

위 코드에서는 @Value 주석을 통해 구성 파일의 구성을 클래스 변수에 삽입한 다음 이를 메서드에서 참조합니다.

3. 테스트

서비스를 시작한 후 브라우저에 다음 주소를 입력하세요.

http://localhost:7000/coupon/coupon/test
  • 1

출력은 다음과 같으며 이는 구성 파일의 정보를 읽었음을 나타냅니다.
여기에 이미지 설명을 삽입하세요.

4. 구성 센터에 구성 정보를 구성합니다.

쿠폰 서비스를 예로 들어 구성해 보세요.
여기에 이미지 설명을 삽입하세요.

구성 파일 목록 오른쪽에 있는 편집 버튼을 클릭하여 편집 인터페이스로 들어갑니다.

여기에 이미지 설명을 삽입하세요.

구성 센터 구성 파일과 로컬 구성 파일 간의 차이점과 연결을 명확히 하기 위해 이전 단계에서는 로컬 구성을 삭제하지 않았습니다.

현재 구성 센터에는 하나의 구성만 구성되어 있습니다. 이 구성은 로컬 구성에서도 사용할 수 있지만 로컬 구성은 다릅니다.coupon.user.name=lcy, 구성 센터는 다음과 같습니다.coupon.user.name=lcy2

서비스를 다시 시작한 후 브라우저를 새로 고치면 다음과 같습니다.

여기에 이미지 설명을 삽입하세요.
분명히 name 값은 로컬 구성 파일이 아닌 구성 센터에서 가져옵니다.구성 센터의 값은 로컬 구성 파일의 값을 덮어씁니다.

오류 기록

Guli Mall 구성 센터 오류 기록