알 리 바 바 는 Nacos 를 바탕 으로 환경 격 리 실천 을 실현 했다.
이번 주 수요일 (오늘), 저녁 19: 00 ~ 21: 00 에 Nacos 못 군 (군 번호: 21708933) 에서 Nacos 1.0.0 의 모든 발표 특성 에 대한 미리 보기 및 업그레이드 및 사용 에 대한 지 도 를 생 중계 합 니 다.
Nacos 환경 격 리
일반적으로 기업 이 연구 개발 하 는 절 차 는 다음 과 같다. 먼저 환경 개발 과 테스트 기능 을 테스트 한 다음 에 그 레이스 케 일 을 테스트 한 다음 에 생산 환경 에 발표 하 는 것 이다.또한 생산 환경의 안정 을 위해 테스트 환경 과 생산 환경 을 격 리 시 켜 야 한다. 이때 반드시 문제 가 발생 하 는 것 은 다 환경 문제 이다. 즉,
환경 이란 무엇 인가?
환경 격 리 라면 먼저 환경 이 무엇 인지 정의 해 야 한다.
환경 이라는 단 어 는 아직 비교적 통 일 된 정의 가 없다. 어떤 회 사 는 환경 이 라 고 부 르 고 아 리 운 에 서 는 region 이 라 고 부 르 며 Kubernetes 구조 에서 namespace 라 고 부른다.본 고 는 환경 은 논리 적 으로 나 물리 적 으로 독립 된 전체 시스템 으로 이 시스템 에는 사용자 의 요 구 를 처리 하 는 모든 구성 요소 가 포함 되 어 있다 고 주장 한다. 예 를 들 어 게 이 트 웨 이, 서비스 프레임 워 크, 마이크로 서비스 등록 센터, 배치 센터, 메시지 시스템, 캐 시, 데이터 베이스 등 은 분 류 를 가리 키 는 요 구 를 처리 할 수 있다.
예 를 들 어 많은 사이트 에서 사용자 ID 라 는 개념 이 있 고 사용자 ID 에 따라 구분 할 수 있 으 며 사용자 ID 는 짝수 로 끝 나 는 요청 은 모두 시스템 으로 처리 되 고 홀수 로 끝 나 는 요청 은 다른 시스템 으로 처리 된다.아래 그림 과 같다.우리 가 여기 서 말 하 는 환경 격 리 는 물리 적 격 리, 즉 서로 다른 환경 은 서로 다른 기계 군집 을 가리킨다.
환경 격 리 가 무슨 소 용이 있 습 니까?
이전 절 은 사용자 가 요청 한 모든 구성 요 소 를 처리 하 는 시스템 을 포함 하여 지정 한 유형의 요청 을 처리 하 는 환경의 개념 을 정의 했다.이 절 은 여러분 과 환경 격 리 가 어떤 좋 은 점 이 있 는 지 토론 합 시다.개념의 정 의 를 통 해 알 수 있 듯 이 환경 격 리 는 적어도 세 가지 장점 이 있다. 고장 격 리, 고장 회복, 그 레이스 케 일 테스트 이다.
고장 격 리
우선, 환경 은 사용자 가 요청 한 독립 구성 요소 유닛 이기 때문에 사용자 가 요청 한 처리 링크 가 얼마나 길 어도 지정 한 기계 클 러 스 터 에서 벗 어 나 지 않 습 니 다.이 부분 기계 가 고장 나 더 라 도 일부 사용자 에 게 영향 을 주어 고장 을 지 정 된 범위 내 에서 격 리 시 킬 뿐이다.만약 에 우리 가 사용자 id 에 따라 모든 기 계 를 10 개의 환경 으로 나 누 면 한 환경 에 문제 가 생기 면 사용자 에 대한 영향 은 10 분 의 1 로 낮 아 지고 시스템 의 가용성 을 크게 향상 시 킬 것 이다.
고장 복구
환경 격 리 의 또 다른 중요 한 장점 은 고장 을 신속하게 회복 할 수 있다 는 것 이다.특정한 환경의 서비스 에 문제 가 발생 하면 다음 설정 을 통 해 사용자 가 요청 한 경로 방향 을 바 꾸 고 요청 경 로 를 다른 환경 으로 이동 시 켜 초 단위 고장 회복 을 실현 할 수 있 습 니 다.물론 이것 은 강력 한 분포 식 시스템 지원 이 필요 합 니 다. 특히 강력 한 설정 센터 (예 를 들 어 Nacos) 는 규칙 설정 데 이 터 를 전체 네트워크 의 응용 프로 세 스 로 빠르게 전송 해 야 합 니 다.
그 레이스 케 일 테스트
그 레이스 케 일 테스트 는 연구 개발 절차 에서 없어 서 는 안 되 거나 없어 서 는 안 되 는 부분 이다.전통 적 인 연구 개발 절차 에서 테스트 와 그 레이스 케 일 부분 은 학생 들 이 다양한 설정 을 해 야 한다. 예 를 들 어 host 연결, jvm 파라미터 설정, 환경 변수 등 이 비교적 번거롭다.다년간 의 실천 을 통 해 알 리 바 바 내부 의 테스트 와 그 레이스 케 일 은 개발 과 테스트 에 매우 우호 적 이 고 환경 격 리 기능 을 통 해 지 정 된 기계 클 러 스 터 처 리 를 요구 하 며 개발 과 테스트 는 어떠한 배치 도 하지 않 아 도 연구 개발 효율 을 크게 향상 시 켰 다.
Nacos 는 환경 격 리 를 어떻게 합 니까?
앞의 두 절 은 환경의 개념 과 환경 격 리 의 역할 에 대해 이 절 은 Nacos 를 바탕 으로 환경의 격 리 를 실현 하 는 방법 을 소개 했다.
Nacos 는 알 리 바 바 중간 부품 부서 의 소프트 부하 팀 에서 태 어 났 다. 환경 격 리 를 실천 하 는 과정 에서 우 리 는 Nacos 를 바탕 으로 여러 개의 물리 적 군집 을 격 리 하 는 동시에 Nacos 클 라 이언 트 가 어떠한 코드 변경 도 하지 않 아 도 환경의 자동 경 로 를 실현 할 수 있다.
시작 하기 전에 우 리 는 먼저 제약 을 한다.
기본 원 리 는:
위 에서 IP 단 을 바탕 으로 환경 격 리 를 하 는 제약 과 기본 원 리 를 말 했 는데 어떻게 주소 서버 를 실현 할 수 있 습 니까?가장 간단 한 방법 은 nginx 를 바탕 으로 nginx 의 geo 모듈 을 이용 하여 IP 엔 드 와 환경의 매 핑 을 한 다음 에 nginx 를 이용 하여 정적 파일 내용 을 되 돌려 주 는 것 입 니 다.
geo $env {
default "";
192.168.1.0/24 -env-a;
192.168.2.0/24 -env-b;
}
# http
root /tmp/htdocs;
# server
location / {
rewrite ^(.*)$ /$1$env break;
}
$ll /tmp/hotdocs/nacos/
total 0
-rw-r--r-- 1 user1 users 0 Mar 5 08:53 serverlist
-rw-r--r-- 1 user1 users 0 Mar 5 08:53 serverlist-env-a
-rw-r--r-- 1 user1 users 0 Mar 5 08:53 serverlist-env-b
$cat /tmp/hotdocs/nacos/serverlist
192.168.1.2
192.168.1.3
curl 'localhost:8080/nacos/serverlist'
192.168.1.2
192.168.1.3
이로써 IP 네트워크 에 따라 환경 격 리 를 하 는 간단 한 예제 가 작 동 할 수 있 습 니 다. 서로 다른 네트워크 의 nacos 클 라 이언 트 는 서로 다른 Nacos 서버 의 IP 목록 을 자동 으로 가 져 와 환경 격 리 를 실현 합 니 다.이런 방법의 장점 은 사용자 가 어떠한 매개 변 수 를 설정 할 필요 가 없다 는 것 이다. 각 환경의 코드 와 설정 은 같 지만 바 텀 서 비 스 를 제공 하 는 학생 들 이 네트워크 계획 과 관련 설정 을 잘 해 야 한 다 는 것 이다.
총결산
본 고 는 환경 격 리 의 개념, 환경 격 리 의 세 가지 장점 과 Nacos 가 어떻게 네트워크 를 바탕 으로 환경 격 리 를 하 는 지 간단하게 소개 했다.마지막 으로 Nginx 를 기반 으로 Endpoint 서버 의 환경 격 리 설정 예 시 를 보 여 주 었 습 니 다.주의해 야 할 것 은 본 고 는 실행 가능 한 방법 만 제시 하고 더욱 우아 한 실현 방법 이 있 는 것 을 제외 하지 않 는 다 는 것 이다. 만약 에 여러분 이 더 좋 은 방법 이 있다 면 Nacos 커 뮤 니 티 나 홈 페이지 공헌 방안 에 오신 것 을 환영 합 니 다.
본 고의 저자: 정기, GitHub ID @ jianweiwang, Nacos 의 개발 과 지역사회 유지, 알 리 바 바 고급 개발 엔지니어.
본문 저자: 중간 부품 작은 형
원문 을 읽다
본 고 는 운 서 지역사회 의 오리지널 내용 으로 허락 없 이 전재 할 수 없다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
작은 재료 : 결함 혼입, 테스트 레벨, 공정 책임결함은 후공정에서 적출할수록 비용이 부풀기 때문에 조기에 적출하는 것이 이상적입니다. 그럼에도 불구하고 결함의 종류에 따라 조기에 발견되는 것이나 후공정에서 처음으로 나타나게 되는 것이 있습니다. 예를 들어 컴파일러...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.