영사-소개

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와의 비교

이 도메인의 다른 서비스 검색 도구를 살펴보면 두 가지 인기있는 옵션이 있습니다. 소프트웨어 산업의 일부 주요 업체는 과거에이를 사용해 왔습니다. 이러한 도구는EtcdZookeeper.

각 도구의 다양한 측면을 비교하기 위해 다음 표를 고려해 보겠습니다. 우리는 또한 그들 각각이 내부적으로 사용하는 것을 이해할 것입니다.

속성 영사 기타 동물원 키퍼
사용자 인터페이스 유효한
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의 아키텍처를 이해합니다.