Print
카테고리: [ Cloud Computing & MSA ]
조회수: 9784

1. 소개

Consul은 서비스 검색, 구성 및 분할 기능을 갖춘 완벽한 기능의 컨트롤 플레인을 제공하는 서비스 메시 솔루션이다. 각 기능은 필요에 따라 개별적으로 사용하거나 함께 사용하여 전체 서비스 메쉬를 구성할 수 있다. Consul에는 Control Plane이 필요하며 프록시 및 기본 통합 모델을 모두 지원한다. Consul은 간단한 기본 제공 프록시를 제공하므로 모든 것이 기본적으로 작동하지만 Envoy와 같은 타 프록시 통합도 지원한다.

Spring Cloud Eureka나 Apache ZooKeeper와의 차별점은 DNS 방식이라는 것이다.


2. 특징


3. 기본 개념

Consul은 분산된 고 가용성 시스템이다.

Consul에 서비스를 제공하는 모든 노드는 Consul Agent를 실행한다. 다른 서비스를 디스커버하거나 Key/Value 데이터를 get/set 하는데는 에이전트를 실행하지 않아도 된다. Agent는 노드 자체 뿐만 아니라 노드상의 서비스 헬스 체크도 수행한다.

에이전트들은 하나 이상의 Consul 서버와 통신한다 . Consul 서버는 데이터가 저장되고 복제된다. 그리고 서버 자체가 리더를 선출합니다. Consul은 한 서버에서 동작하지만, 데이터 손실을 피하기 위해 3~5대의 서버가 권장된다. 각 데이터 센터마다 Consul 서버 클러스터가 권장된다.

다른 서비스 혹은 노드를 찾아야하는 인프라 구성 요소들은 Consul 서버 또는 Consul 에이전트 아무나에게 쿼리 할 수 ​​있다 . Consul Agent는 서버에 자동으로 쿼리를 전달한다.

각 데이터 센터는 Consul 서버 클러스터를 실행한다. 만약 데이터 센터 간 서비스 검색이나 구성에 대한 요청이 있으면, 로컬 Consul 서버는 리모트 데이터 센터로 요청을 전달한 후 결과를 리턴한다.


4. Member와 Agent

Consul Member는 여러 에이전트 및 Consul 클러스터가 배포되어 있는 서버 방식의 목록으로 정의할 수 있다. Consul은 Consul과 관련된 모든 Member를 쉽게 나열 할 수있는 커맨드 라인 기능을 제공한다.

Consul Member는은 Consul의 핵심적인 과정이다. Agent는 멤버쉽 정보를 관리하고, 서비스를 등록하고, 검사를 실행하고, 쿼리에 응답하는 등의 작업을 수행한다. 모든 Agent는 클라이언트 혹은 서버 모드로 실행된다. 이 두 가지 모드는 Consul을 사용할 때 결정된 역할에 따라 사용할 수 있다.


5. Service Discovery (서비스 검색)

Service Discovery는 Consul의 가장 중요한 기능이다. 이것은 다른 서비스와 그 서비스가 사용하는 네트워크 프로토콜을 탐지하는 것으로 정의된다. Service Discovery 사용은 분산 시스템에 커다한 축복이다. 이것은 분산 시스템이 발전된 오늘날 대규모 산업이 직면한 주요 문제 중 하나이다.


6. 비교

이 영역의 다른 서비스 디스커버리 도구로 두 가지 인기있는 옵션이 있다. 과거부터 소프트웨어 업계의 주요 업체들은 이를 사용해왔다. 이 도구는 Etcd와 Zookeeper이다.