Alibaba Nacos 등록 센터 소스 분석

Nacos&Ribbon&Feign 핵심 마이크로 서비스 구조 도
0
구조 원리
  • 마이크로 서비스 시스템 이 시 작 될 때 자신 을 서비스 등록 센터 에 등록 하 는 동시에 Http 인 터 페 이 스 를 발표 하여 다른 시스템 호출(일반적으로 Spring MVC 기반)을 제공한다
  • 4.567917.서비스 소비 자 는 Feign 호출 서비스 제공 자가 대외 적 으로 발표 한 인 터 페 이 스 를 바탕 으로 호출 된 로 컬 인터페이스 에 주 해 를 추가 합 니 다@FeignClient.Feign 은 이 주 해 를 추가 한 인터페이스 에 대해 동적 대 리 를 생 성 합 니 다.서비스 소비 자 는 Feign 이 생 성 한 동적 대 리 를 호출 하 는 방법 에 대해 바 텀 에서 Http 프로 토 콜 형식 을 생 성 하 는 요 구 를 합 니 다.유사/stock/deduct?productId=100
  • Feign 은 최종 적 으로 Ribbon 을 로 컬 Nacos 레 지 스 트 의 캐 시 에서 서비스 이름 에 따라 서 비 스 를 꺼 내 기계 의 목록 에 제공 한 다음 에 부하 균형 을 이 루 고 기 계 를 선택 하여 선택 한 기계 IP 와 포트 를 연결 하기 전에 생 성 된 url 요청 에 대해 호출 된 Http 인터페이스 주 소 를 생 성 합 니 다http://192.168.0.60:9000/stock/deduct?productId=100마지막 으로 HTTP Client 호출 요청 을 기반 으로 합 니 다
  • Nacos 구성 도
    0
    Nacos 핵심 기능 점
    서비스 등록:Nacos Client 는 REST 요청 을 보 내 는 방식 으로 Nacos Server 에 자신의 서 비 스 를 등록 하고 자신의 메타 데 이 터 를 제공 합 니 다.예 를 들 어 ip 주소,포트 등 정 보 를 제공 합 니 다.Nacos Server 는 등록 요청 을 받 으 면 이 메타 데이터 정 보 를 이중 메모리 맵 에 저장 합 니 다.
    서비스 심장 박동:서비스 등록 후 Nacos Client 는 정기 적 인 심장 박동 을 유지 하여 Nacos Server 에 지속 적 으로 알 립 니 다.이 는 서비스 가 계속 사용 가능 한 상태 에 있 고 제거 되 지 않도록 하 는 것 을 설명 합 니 다.기본적으로 5s 는 심장 박동 을 한 번 보 냅 니 다.
    서비스 건강 검사:Nacos Server 는 등 록 된 서비스 인 스 턴 스 의 건강 상 태 를 확인 하기 위해 정시 작업 을 시작 합 니 다.15s 가 넘 는 클 라 이언 트 의 심장 박동 을 받 지 못 한 인 스 턴 스 는 healthy 속성 을 false(클 라 이언 트 서비스 발견 시 발견 되 지 않 음)로 설정 합 니 다.만약 에 실제 사례 가 30 초 를 넘 으 면 심장 박동 을 받 지 못 합 니 다.이 인 스 턴 스 를 직접 제거 합 니 다.(제 거 된 인 스 턴 스 가 심장 박동 을 회복 하면 다시 등록 합 니 다)
    서비스 발견:서비스 소비자(Nacos Client)는 서비스 제공 자의 서 비 스 를 호출 할 때 Nacos Server 에 REST 요청 을 보 내 위 에 등 록 된 서비스 목록 을 가 져 오고 Nacos Client 로 컬 에 캐 시 하 며 Nacos Client 로 컬 에서 정기 적 으로 서버 의 최신 레 지 스 트 정 보 를 끌 어 올 려 로 컬 캐 시 로 업데이트 합 니 다.
    서비스 동기 화:Nacos Server 클 러 스 터 간 에 서로 서비스 인 스 턴 스 를 동기 화하 여 서비스 정보의 일치 성 을 확보 합 니 다.
    Nacos 핵심 기능 소스 코드 구성 도
    0
    Nacos 서비스 등록 표 구조:지도
    >
    0
    예 를 들 어 설명:
    0
    Nacos 서버 원본 코드 단기 운행
    
    #   nacos  
    git clone https://github.com/alibaba/nacos.git
    태그 1.4.1 버 전 선택
    원본 코드 전체 구조(주의,nacos 원본 코드 가 져 오기 요구 maven 3.2.5 이상 버 전):
    0
    1.소스 코드 단기 운행:
    console 모듈 의 com.alibaba.nacos.Nacos.java 를 직접 실행 합 니 다.
    
    #     vm  
    -Dnacos.standalone=true
    0
    2.소스 클 러 스 터 실행(시작 프로 세 스 는 영상 참조):
    nacos 클 러 스 터 는 my sql 저장 소 를 설정 해 야 합 니 다.먼저 데 이 터 를 만 들 고 이름 을 마음대로 지은 다음 distribution/conf 디 렉 터 리 에 있 는 nacos-my sql.sql 스 크 립 트 를 실행 한 다음 console\src\main\resources 디 렉 터 리 에 있 는 application.properties 파일 의 my sql 설정 을 수정 해 야 합 니 다.다음 과 같 습 니 다.
    
    ### If use MySQL as datasource:
    spring.datasource.platform=mysql
     
    ### Count of DB:
    db.num=1
     
    ### Connect URL of DB:
    db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
    db.user.0=root
    db.password.0=root
    console 모듈 의 com.alibaba.nacos.Nacos.자바 를 실행 하려 면 vm 매개 변수 포트 번호 와 인 스 턴 스 실행 경 로 를 추가 해 야 합 니 다.nacos.home(해당 하 는 디 렉 터 리 는 스스로 미리 만들어 야 합 니 다).server 의 nacos.home 디 렉 터 리 마다 conf 폴 더 를 만들어 야 합 니 다.그 안에 cluster.conf 파일 을 넣 어야 합 니 다.파일 에 모든 클 러 스 터 ip 과 포트 를 기록 해 야 합 니 다.다음 그림 을 보십시오.
    0
    0
    0
    0
    알 리 바 바 나 코스 등록 센터 의 소스 코드 분석 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 Nacos 등록 센터 의 소스 코드 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 부탁드립니다!

    좋은 웹페이지 즐겨찾기