사육사 및 분산 시스템

1.1.  분산 시스템의 기초

   바람둥이가 세계의 시대를 정복, 우리는 완전히 제거뿐만 아니라, 종종 있기 때문에 비용 고려 사항, 너무 많이하지 않는 관리 시스템, 소규모 프로젝트에 사용하지만, 홍보 가치가 말할 수 없습니다.

   

1.1.1.  분산 시스템이란  

시스템 분산 : 다른 네트워크 컴퓨터에있는 하드웨어 또는 소프트웨어 구성 요소를 서로 조정 메시지 전달 시스템 만 통신

 

이것은 분산 시스템, 다른 하드웨어, 다른 소프트웨어, 다른 컴퓨터에서 서로 다른 네트워크는 메시지를 통해 조정과 의사 소통을하는 것입니다

 

이 이러한 기능에서 그의 특성, 대한 상세한 설명과 포함 할 수 있습니다 : 분산, 피어 투 피어, 동시성, 글로벌 시계의 부족,

실패는 언제든지 발생할 수 있습니다.

 

1.1.1.1.  배포

이 분산 시스템이기 때문에, 반드시 가장 주목할만한 기능이보기의 간단한 포인트에 이르기까지, 배포, 우리는 전기 사업 프로젝트, 전체 프로젝트가 다른 기능으로 구분됩니다한다면, 이러한 사용자의 마이크로 서비스와 같은 다른 마이크로 서비스에 대한 전문 점, 다른에 배포 된 마이크로 제품과 서비스, 주문 마이크로 서비스, 바람둥이 , 다른 서버, 심지어 다른 클러스터 전체 구조가 공간에 다른 장소에있는 임의이며, 항상 증가 첫 번째 기능은 서버 노드를 삭제

1.1.1.2.  호혜

호혜는에 큰 단일 시스템을 분할 확실히 쉬운 일이 아니다 분산 디자인의 대상, 또는 전기 공급 업체 사이트로, 예를 들어, 분산 시스템 아키텍처를 완료, 상호 무엇인지 설명 다른 서버 클러스터에 배치 마이크로 서비스, 다음 각 마이크로 서비스의 완료를 분할 전체 전기 공급 업체 사이트의 기능 표시의 손실을 주도 문제를 찾을 가능성이있는, 충분하다.

예를 들어, 서비스 주문, 서비스 주문 문제를 방지하기 위해, 일반적으로, 주문 서비스 문제가 원래 주문 서비스를 대체 할 수있는 백업을 가질 필요가 발생합니다.

이 두 가지 (또는 필요기능을 정확히 사실,이 서비스의 중복 사본 동일하며, 주문 서비스가 완전히 동일합니다 이상 개월).

하나는 등 데이터베이스, 캐싱, 같은 데이터의 중복 사본이며, 위의 안전 고려 사항이 정확히 동일한 백업의 존재를 필요로 동일한 서비스에 대한 주문, 이것은 상호주의의 의미 말했다.

1.1.1.3.  동시성

사실 동시성이, 우리를 위해, 모드 아니라, 멀티 스레드 학습 시간이 더 많거나 적은 공부, 동시 멀티 스레딩의 기초입니다.

그러나 지금은 멀티 스레드 우리가 도달하고자하는 관점하지만, 다중 프로세스에서 높은 수준, 멀티 아닌 JVM 보기의 포인트는 일부 공유 자원, 방법과 동시에 작동 할 수있는 분산 시스템에서 여러 노드로, 분산 동시 작업의 정확하고 효율적인 조정.

이 문제를 해결 실제로 후방 잠금 전투 분산 부.

1.1.1.4.  세계 시계의 부족

분산 시스템에서해야이 두 개의 트랜잭션을 얽힌 사람들, 이유가 누구인지 정의하기 어려운, 노드는 어디, 어쨌든 가능하며, 각각의 위치는, 각 노드는 자신의 타임 시스템, 분산 시스템을 가지고 글로벌 클럭 시퀀스 제어의 부족, 물론, 지금은 더 큰 문제가 없기 때문에, 서버 시스템 호출에 많은 시간이 이미 있습니다

1.1.1.5.  고장은 언제든지 발생할 수

클러스터의 수, 심지어 실패가 표준이 될 것이다 증가로 모든 노드가 정전, 충돌 등, 더 많은 서버 클러스터를 나타날 수 있습니다, 실패의 가능성이 더 큰, 어떻게 시스템의 실패를 보장하기 위해, 시스템 설계자와 같은 시스템 또는 일반 방문자 고려해야합니다.

 

1.1.2.  대형 사이트 차트 검토

모든 전체 구조의 첫 번째 분산 시스템, 분산 아키텍처의 진화 앞에 말했다해야하는 대형 사이트 아키텍처 다이어그램에서 다음과 같은 특정 모양하는 층의 수, 응용 프로그램 계층, 서비스 계층, 인프라 계층과 데이터로 나누어진다는 것을 알고 서비스 계층, 각 층은 전형적인 분산 아키텍처는 많은 시간 뒤에이며, 노드의 숫자로 구성되어 각 부분의 내부 학습이다

 

 

 

그래서 사육사는 당신이 넣을 수 있다면하는 그것은 어떤 역할이며, ZK 보장하기 위해, 교통 경찰의 역할에 재생하고 각 노드가 도로에 차량 (자동차, 버스)의 다양한입니다 전체 교통 (시스템) 가용성, 그 사육사가 해야 특정 매우 좁은 도로의 러시아워 혼잡의 도로는 자동차의 단 하나의 방향을 허용할지 여부, (질문 중 버스가 새로운 버스 서비스 등록 및 발견 []를 보낼지 여부) 각 노드의 상태를 알고 [잠금 의해 분산.

 

교통 경찰 지휘관의 교통 시스템 경우와 사육사는 분산 시스템의 여러 노드의 지휘관이다.

 

1.1.2.1.  분산 시스템 조정 "방법론"

 

1.1.2.1.1.  때문에이 문제에 대한 분산 시스템

통신 오류, 네트워크 파티션, 3 상, 노드 장애 : 분산 시스템과 일반적인 교통 시스템을 비교한다면, 그렇다하더라도 사운드 교통 시스템은 교통 사고, 분산 시스템을 것 같은 극복해야 할 많은 문제점이있다.

 

1.1.2.1.1.1.  이상 통신

통신 오류가 실제로 자체가 분산 시스템으로 인해, 신뢰할 수없는 네트워크 이상 현상, 네트워크 시스템 필연적으로 발생하는 네트워크를 통해 데이터 전송, 광섬유 네트워크, 라우터 및 기타 하드웨어 문제를 필요로한다. 만큼 네트워크 문제로, 그것은 또한 데이터가 손실되거나 확장 메시지가 매우 일반적인 될 것입니다 때문에, 전송 및 메시지를 수신하는 과정에 영향을 미칠 것입니다.

1.1.2.1.1.2.  네트워크 파티션

네트워크 파티션은, 사실, 분할 뇌 현상은 지역 전체의 교통 상황을 관리하는 교통 경찰, 모든 질서, 갑자기 거기 정전, 또는, 특정 도로 교통 경찰의 지시를받지 발생하는 지진과 같은 자연 재해했을 것이다 이 경우, 트래픽을 제로를 Pianjing, 제로 노동자가있을 것입니다 수 있습니다.

 

그러나 원래의 교통 경찰 여전히 사실, 점에 유의하지만, 통신 시스템이 중단되고,이 시간이 문제가 될 것이며, 도로에 같은 지역이 명령에 다른 사람이, 그것은 반드시 엔진 트래픽의 혼란을 방해 할 것입니다.

 

이 상황이 정신 분열증의 동일한 영역 (분산 클러스터)로 이어질는 다양한 문제로 인해 발생할 때 담당 충돌하는 두 사람을 가지고, 또한 네트워크 파티션이라고도 분열로 지칭.

1.1.2.1.1.3.  개의 Tristate

무엇 세 가지 상태입니까? 트라이 - 상태는 실제로 성공과 실패, 물론, 확실히 변태 호출되지 이외의 제 3 국이며, 타임 아웃 상태라고합니다.

A의 JVM 후, 응용 프로그램은 대부분의 경우에 해당하는 성공 또는 실패를 수신 할 수 있지만, 해당 명확한 기능을 얻을 중 하나를 성공하거나 실패하지만, 분산 시스템에서 할 수있는 방법을 호출하지만 네트워크 번 이러한 현상이있을 때 이상, 그것은 시간 제한이 초과 매우 높다, 통신 네트워크의 개시 요청이 성공적으로 처리할지 여부를 결정할 수 없다.

1.1.2.1.1.4.  노드 실패

사실,이 이미 분산 시스템에서 노드 오류가 나타납니다 중단 또는 서버 클러스터 노드를 참조하면, 상대적으로 일반적인 문제입니다 말했다되었습니다 "죽은"현상을 종종 이러한 현상이 발생합니다.

 

1.1.2.1.2.  CAP의 이론

전면 분포의 특성을 이해하는 훌륭한 길이를했다 확실히 문제를 해결하기 위해 몇 가지 이론적 인 아이디어가있을 것이다 많은 성가신 문제가 발생하는 것입니다.

다음으로있는이 이론에 대해 이야기하는 시간이 걸릴 CAP BASE 이론의 기초입니다뿐만 아니라 인터뷰는 종종 물어

 

우선 검토 CAP , CAP의 약어 사실, 일관성, 가용성,이 세 단어의 파티션 내결함성

 

1.1.2.1.2.1.  일관성

일관성 트랜잭션입니다 ACID 특성 [ 자성 ( 자성 ), 일관성 ( 일관성 ), 절연 ( 절연 ), 지속성 ( 내구성 레브 ) , 데이터베이스 최적화를 배울 때 사슴 교사는 말했다.

 

일관성의 말하기 훨씬 동일하지만, 지금은 분산 환경, 단일 데이터베이스 여부를 고려한다.

 

분산 시스템에서 동일한 특성의 여러 사본 사이의 데이터 일관성은 여기에 일관성과 실제로 유사한 그 상호의 앞을 보장 할 수 있습니다. 우리는 데이터 항목의 성공적인 구현 후에 변경할 수있는 경우, 모든 사용자가 최신 값으로 즉시 분산 시스템에서 읽을 수있는 내용은 다음 이러한 시스템은 강력한 [일관성을]이 간주됩니다.

 

1.1.2.1.2.2.  가용성

가용성 요청하는 사용자의 제한된 시간 작업에 대한 결과가 항상 접근, 항상 사용 가능한 상태에 있어야합니다 서비스의 시스템을 말한다.

여기서 포커스는 [한정] 및 [복귀] 결과이며

우리가 캐시를 사용할 필요가 제한된 시간을 위해, 부하는 성능상의 이유로 서버 노드를 높이기 위해이 시간을 사용할 필요가;

뭔가 잘못 마스터 노드는 최대 대체 빠르게 백업 할 수 있습니다 갈 때 결과를 반환하기 위해, 필요가 나타나지 않는, 기본 및 백업 서버 노드를 고려 에서 OutOfMemory 또는 기타 (500) , (404) , 그렇지 않으면 우리는 이러한 시스템이 사용할 수 없다는 생각, 오류를 .

1.1.2.1.2.3.  파티션 내결함성

파티션이 실패하는 모든 네트워크의 얼굴에 분산 시스템, 우리는 여전히 전체 네트워크 환경이 실패하지 않는 한 외국인이, 서비스의 일관성과 가용성을 제공 충족 할 수 있어야합니다.

분할 뇌 상황은 나타나지 않을 수 있습니다

 

 

 

1.1.2.1.2.4. 구체적으로 설명

상기 봐 CAP의 이론을 자세히 설명 :

분산 시스템은 그 두 가지를 만날 수있는, 일관성, 가용성, 내결함성을 충족,이 세 가지 기본 요구를 분할 할 수 없습니다

 

 

 

: 하나 개의 노드에서 모든 응용 프로그램을 모두 넣어 불가능하다, 그래서 에너지의 건축가의 비즈니스 현장에 따라 샘플을 얼마나 자주에 소요 C가 직접 균형을 추구;

1.1.2.1.3.  기본 이론

이전에 따르면 CAP의 이론, 건축가 일관성과 가용성 사이의 균형을 찾아야한다, 시스템은 다음에 따라 허용 짧은 시간 동안 완전히 사용할 수 있어야 CAP의 도 강력한 일관성을해서는 안 분산 환경에서 이론.

 

기본 시스템이 자신의 운영 특성에 따라 배포 할 수 있습니다 심지어 강력한 일관성을 할 수없는 경우지만, 시스템이 최종 합의에 도달 할 수있는 적절한 방법; 이론

 

1.1.2.1.3.1.  기본적으로 사용 가능한   사용 가능한 기본

가능하면 손실 부지지 시스템 허용 예기치 실패 분산 시스템, "실질적으로 사용 가능한"를, "시간의 감소"및 "기능 상실"로 구체화;

EG : 일부 사용자가 Taobao의 페이지의 열한 피크를 Caton을 두 번이나 다운 그레이드;

 

1.1.2.1.3.2.  소프트 주 부드러운 상태

사실, 한 3 상 앞에 , 거기 데이터 시스템의 두 복사본 중 다른 노드들 사이의 지연 데이터 동기화 프로세스가없고, 그러한 지연이 시스템의 유용성에 영향을주지 않는 양의 데이터 시스템은 중간 상태가 허용;

EG가 : 12,306 티켓을 판매하는 웹 사이트, 요청이 큐에 대기중인;

1.1.2.1.3.3.  결국 일관된 최종 일관성

시간이 지남에 따라 동기 데이터의 모든 데이터 후, 최종적으로 일관된 상태를 달성하는 단계;

EG : 단기 불일치의 선불 금융 상품 홈 총량;

 

1.2.  사육사 프로필

1.2.1.  사육사 프로필 ( 뭐라고 )

사육사는 고성능, 고 가용성을 제공하기 위해 노력하고, 야후가 생성된다 서비스를 조정하기 위해 엄격한 순차 액세스 제어 기능을 함께 배포되는 구글 풍만 오픈 소스 구현입니다 하둡 HBase를 중요한 구성 요소.

 

1.2.1.1.  디자인 목표

L 간단한 데이터 구조 : 상기 메모리에 저장된 파일 시스템과 유사 공유 트리 구조;

난  클러스터를 구축 할 수 있습니다 : 단일 장애 지점을 방지, 3-5 기계의 절반 이상이 정상 작동 서비스를 제공 할 수있을 것입니다, 클러스터링 할 수 있습니다;

순차 액세스 : 각 읽기 요청에 대해 ZK는 이 기능을 사용 고급 조정 서비스를 활성화 할 수 있습니다, 전 세계적으로 유일한 증분 번호가 할당됩니다;

리터  고성능 : 메모리 기반 작업은 비 서빙 거래 요청, 비즈니스 시나리오 기반의 읽기 작업에 적용됩니다. 3 개 세트 ZK 클러스터는 도달 할 수있는 13W QPS를 ;

 

1.2.2.  사용하는 일반적인 필요가 무엇입니까 ZK을 ( )

게시 및 데이터를 구독

로드 균형 조정

이름 서비스

마스터 선거

클러스터 관리

구성 관리

분산 큐

분산 잠금

 

1.2.3.  왜 배우 사육사를 ? ( )

인터넷 건축가 필요한 기술

하이 엔드 작업은 지식을 검사합니다

ZK의 인터뷰 질문 전체 해상도

L 사육사 어떤 프레임 워크

리터의  시나리오

L Paxos 알고리즘 및 사육사 사용 계약

L의  선거 알고리즘 및 프로세스

L 사육사 여러 노드 유형이

리터의 사육사의 노드의 쌍은 보는 모니터 통지가 영구적입니까?

리터의  배치? 클러스터 시스템의 역할은 무엇을? 여러 시스템의 클러스터 최소

리터의  클러스터가있는 경우 3 개 시스템, 클러스터은 그것을 사용할 수 있습니다로 매달려? 그것의 두 요령?

L 개의  클러스터 시스템의 동적 추가 지원?

추천

출처www.cnblogs.com/Soy-technology/p/11351350.html