영사-소개
Consul은 인프라에서 다양한 서비스를 검색하고 구성하기위한 Hashicorp 기반 도구입니다. Golang을 기반으로 구축되었습니다. Consul을 구축 한 핵심 이유 중 하나는 분산 시스템에 존재하는 서비스를 유지하기 위해서였습니다. Consul이 제공하는 중요한 기능 중 일부는 다음과 같습니다.
Service Discovery − DNS 또는 HTTP를 사용하여 애플리케이션은 의존하는 서비스를 쉽게 찾을 수 있습니다.
Health Check Status− 여러 건강 검사를 제공 할 수 있습니다. 서비스 검색 구성 요소에서 비정상 호스트에서 트래픽을 라우팅하는 데 사용됩니다.
Key/Value Store − 동적 구성, 기능 플래그 지정, 조정, 리더 선택 등을 포함한 다양한 목적으로 Consul의 계층 적 키 / 값 저장소를 사용할 수 있습니다.
Multi Datacenter Deployment− Consul은 여러 데이터 센터를 지원합니다. 여러 지역으로 성장하기 위해 추가 추상화 계층을 구축하는 데 사용됩니다.
Web UI − Consul은 사용자에게 consul의 모든 기능을 쉽게 사용하고 관리 할 수있는 아름다운 웹 인터페이스를 제공합니다.
서비스 발견
서비스 검색은 Consul의 가장 중요한 기능 중 하나입니다. 서비스를 발견하는 데 사용하는 다양한 서비스 및 네트워크 프로토콜의 탐지로 정의됩니다. 서비스 검색의 사용은 분산 시스템에 큰 도움이됩니다. 이것은 분산 시스템의 발전과 함께 오늘날의 대규모 산업이 직면하고있는 주요 문제 중 하나입니다.
Etcd 및 Zookeeper와의 비교
이 도메인의 다른 서비스 검색 도구를 살펴보면 두 가지 인기있는 옵션이 있습니다. 소프트웨어 산업의 일부 주요 업체는 과거에이를 사용해 왔습니다. 이러한 도구는Etcd 과 Zookeeper.
각 도구의 다양한 측면을 비교하기 위해 다음 표를 고려해 보겠습니다. 우리는 또한 그들 각각이 내부적으로 사용하는 것을 이해할 것입니다.
속성 | 영사 | 기타 | 동물원 키퍼 |
---|---|---|---|
사용자 인터페이스 | 유효한 |
|
|
RPC | 유효한 | 유효한 |
|
건강 체크 | HTTP API | HTTP API | TCP |
핵심 가치 | 3 일관성 모드 | 좋은 일관성 | 강력한 일관성 |
토큰 시스템 | 유효한 |
|
|
언어 | 골랑 | 골랑 | 자바 |
영사-회원 및 에이전트
Consul 구성원은 consul 클러스터를 배포하는 데 사용하는 다양한 에이전트 및 서버 모드 목록으로 정의 할 수 있습니다. Consul은 consul과 관련된 모든 에이전트를 쉽게 나열 할 수있는 명령 줄 기능을 제공합니다.
Consul 에이전트는 Consul의 핵심 프로세스입니다. 에이전트는 멤버십 정보를 유지하고, 서비스를 등록하고, 검사를 실행하고, 쿼리에 응답합니다. 모든 에이전트는 다음 두 가지 모드 중 하나로 실행할 수 있습니다.Client 또는 Server. 이 두 가지 모드는 영사를 사용할 때 결정된 역할에 따라 사용할 수 있습니다. 영사 에이전트는 아래 나열된 정보를 제공하여 도움을줍니다.
Node name − 이것은 컴퓨터의 호스트 이름입니다.
Datacenter− 에이전트가 실행되도록 구성된 데이터 센터. 각 노드는 데이터 센터에보고하도록 구성되어야합니다.
Server− 에이전트가 서버 모드인지 클라이언트 모드인지를 나타냅니다. 서버 노드는 합의 쿼럼에 참여하여 클러스터 상태를 저장하고 쿼리를 처리합니다.
Client Addr− 에이전트가 클라이언트 인터페이스에 사용하는 주소입니다. 여기에는 HTTP, DNS 및 RPC 인터페이스 용 포트가 포함됩니다.
Cluster Addr− 클러스터에있는 Consul Agent 간의 통신에 사용되는 주소 및 포트 집합입니다. 이 주소는 다른 모든 노드에서 도달 할 수 있어야합니다.
다음 장에서는 Consul의 아키텍처를 이해합니다.