본문 바로가기

좋아하는 것_매직IT/10.microservice

15.마이크로서비스, 컨설과 아파치 httpd서버를 이용한 동기 마이크로서비스 시스템을 알아보자.

반응형

컨설(Consul)이란?

  • Go 언어로 작성된 매우 강력한 서비스 탐색 기술이며, 마이크로서비스가 서로 통신할 수 있게 함.   
  • 참고페이지 : https://www.consul.io
  • 컨설 코드
  • 기원
    • 해시코프(Hashicorp)의 솔루션
      • 마이크로서비스와 인프라 분야에서 다양한 제품을 제공함.
      • 참고페이지 : https://www.hashicorp.com
      • 해시코프는 컨설을 상업적으로 지원함.
  • 특징
    • HTTP REST API를 내장하고 있고, DNS를 지원함.
    • 컨설 템플릿을 사용하여, 컨설 설정파일을 생성가능함.
    • 서비스 상태 확인 지원, 상태확인 실패시, 탐색에서 서비스 제외기능
    • 복제를 지원함.
    • 데이터 센터간의 데이터 복제를 지원함.      

컨설 템플릿(Consul Template)

  • 등록된 모든 마이크로서비스 정보가 포함된 아파치 httpd 서버의 설정 파일을 생성가능함.
  • 새로운 마이크로서비스 인스턴스가 시작될 때 아파치 httpd 서버를 설정하고 재시작함.
  • 참고페이지 : https://github.com/hashicorp/consul-template

    

아파치 httpd 서버 

  • 마이크로서비스 시스템의 HTTP 요청에 대한 로드 밸런서와 라우터로 사용가능
  • 가장 널리 사용되는 웹서버 중 하나임.
  • 참고페이지 : https://httpd.apache.org

컨설 라이선스

  • 예시

    • 참고페이지 : https://github.com/ewolff/microservice-consul
    • 마이크로 서비스 구성
      • 카탈로그 마이크로서비스
        • 카탈로그와 관련된 정보를 관리함.
      • 고객 마이크로서비스
        • 고객 데이터를 저장함.
      • 주문 마이크로서비스
        • 새로운 주문을 받을 수 있고, 카탈로그와 고객 마이크로서비스를 사용함.      
    • 아키텍처
      • 서비스 탐색 기능
        • 컨설 사용
      • HTTP 요청 라우팅 기능 
        • 아파치 httpd 서버 사용
        • 리버스 프록시(Reverse Proxy) 기능 : 외부의 트래픽을 내부에서 처리할 수 있는 솔루션 지원.
          • 외부 요청을 특정 서비스로 전달.
        • 로드 밸런서 기능
      • 설정 파일 구축
        • 컨설 템플릿 사용
          • 아파치 httpd 서버의 설정 파일을 구축.
    • 빌드방법

결론

  • 컨설을 사용하면, 서비스 탐색이 가능해짐.
  • DNS인터페이스와 컨설 템플릿을 많은 기술과 함께 사용할 수 있음.
  • 컨설을 사용해 마이크로서비스의 서비스 탐색과 구성을 모두 구현할 수 있음.
  • 아파치 httpd 서버는 표준 리버스 프록시로서 널리 사용됨.
  • 컨설 기술 스택의 가장 큰 장점은 특정 언어와 환경과 상관없는 독립성에 있음.
728x90
300x250