>  기사  >  Java  >  분산 시스템에서 매개변수 구성을 처리하는 네 가지 방법 소개

분산 시스템에서 매개변수 구성을 처리하는 네 가지 방법 소개

不言
不言앞으로
2018-10-22 14:37:052312검색

이 글은 분산 시스템에서 매개변수 구성을 처리하는 네 가지 방법을 소개합니다. 필요한 친구들이 참고할 수 있기를 바랍니다.

시스템에는 다양한 구성 정보가 포함되어 있습니다. 예를 들어 로그 파일에는 다음 정보를 구성해야 합니다.

  • 로그 파일 생성 기본 디렉터리

  • 로그 파일 이름, 로그 수준에 따라 파일이 다름# 🎜 🎜#

  • 현재 로그 수준

그 밖에도 다양한 비즈니스 매개변수, 시스템 매개변수 등이 있습니다. 대부분의 단일 시스템은 구성 파일에 이러한 구성을 직접 작성한 다음 테스트 및 프로덕션 환경에 배포할 때 구성 파일을 수정합니다. 이는 실수하기 쉽고 유연하게 수정할 수 없습니다. 또한 시스템이 분산 시스템이 된 후에는 하위 시스템이 점점 더 많아지고 이러한 구성을 유지 관리하기가 점점 더 어려워집니다.

우수하다고 인정받으려면 최소한 다음 문제를 해결할 수 있어야 한다고 생각합니다!

1) 온라인으로 구성을 유연하게 수정할 수 있음

2) 온라인으로 구성을 동적으로 새로 고칠 수 있음

3) 다음에 따라 구성할 수 있음 다양한 환경# 🎜🎜#

4) 통합된 방식으로 구성을 관리하고 유지하는 능력

그러면 이러한 구성을 유연하게 유지하는 방법은 무엇일까요? 여러 가지 방법을 요약해 놓았으니, 다양한 응용 분야에 따라 참고하실 수 있습니다.

1. 데이터베이스 방법

모든 ​​매개변수를 데이터베이스에 저장하고 시스템 시작 시 메모리에 로드합니다.

이 구현 방법은 비교적 간단하지만 데이터베이스 리소스가 필요하며 시스템이 간단하고 부담이 적을 때 사용할 수 있습니다.

2. 패키징 방법

Maven의

플러그인을 사용하고, 다양한 환경(Profiles)에 따라 다양한 환경에 맞는 구성 파일을 제공하여 다양한 환경이 가능하도록 합니다. 구성 정보는 패키징 단계에서 결정됩니다.

maven-resources-plugin 이는 서로 다른 운영 체제의 구성 문제만 해결하며 유연하고 동적으로 수정할 수 없습니다. 각 업데이트는 온라인으로 구성 파일을 다시 패키지하거나 수정할 수만 있으며 정보도 동기화하기 어렵습니다. 프로젝트 수가 적으면 괜찮습니다. 프로젝트 수가 증가하면 구성을 자주 변경해야 하므로 매우 번거롭습니다.

3. 환경변수 방식

속성값을 환경변수로 설정한 후 읽어서 자바 시스템 속성으로 설정할 수 있습니다. 이는 서로 다른 환경을 구별하는 목적을 달성할 수 있지만 여전히 구성을 동적으로 업데이트할 수 없으며 환경 변수를 구성하고 유지하는 것은 매우 번거롭고 분산 시스템에서는 매우 번거로운 문제입니다.

// 读取环境变量
java.lang.System#getenv(java.lang.String)

// 设置系统属性
java.lang.System#setProperty

이 방법에서는 로그, 캐시, 임시 디렉터리 등과 같은 일부 전역 시스템 구성을 참조할 수 있으며, 시스템 속성에서 구성 읽기를 지원합니다. 일부 다른 구성은 환경 변수에 저장하지 않는 것이 좋습니다.

4. 구성 센터 방법

1) 현재 대부분의 분산 구성 센터는 Zookeeper를 기반으로 구현되며 모두 동적 업데이트를 지원합니다. 온라인으로 구성을 새로 고칠 수 있습니다.

2) 시스템 동시성이 작거나 관리 시스템인 경우 구성을 직접 데이터베이스에 저장하므로 동시성이 높은 응용 프로그램의 경우 사용하지 않는 것이 좋습니다. 데이터베이스를 구성 센터로 사용하면 결국 액세스 압력이 발생하고 구성을 동적으로 업데이트하는 것이 더 복잡해집니다.

Summary

현재 적용하고 있는 4가지 구성 방법은 분명 구성 센터가 최선의 솔루션이고 위의 문제도 해결하지만 미들웨어와 고가용성.

위 내용은 분산 시스템에서 매개변수 구성을 처리하는 네 가지 방법 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 segmentfault.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제