전체 글 (23) 썸네일형 리스트형 [Go MSA with Docker Swarm] 08-Centralized Config 이번에는 Go Microservice 설정 부분들을 Spring Cloud Config를 사용해 구성해보겠습니다. Intro 마이크로서비스 아키텍처를 가져가는 것 자체가 시스템을 자기 역할만 하는 서비스들로 나누느 것인데 어떤 것을 중심화하는 것이 좀 이상하게 보일 수 있습니다. 그런데 우리가 나누고자 하는 것은 사실 프로세스 및 로직들입니다. 다른 부분들은 centralized하게 가져갈 수 있지 않을까요? 예를들어, 로그들은 elk stack에 기록이 되어야 하거나, 모니터링 등이 있습니다. 사실 컨테이너들과 노드들이 계속 없어지고 생성되는 마이크로서비스 아키텍처에서 각각의 서비스들이 자신만의 설정들을 가지게 하는 것도 또한 골치거리가 될 것입니다. Centralized Configuration을 제.. [Go MSA with Docker Swarm] 07-ServiceDiscovery&LoadBalancing 이번 블로그 시리즈에서는 마이크로서비스 아키텍처에서 핵심 요소들인 service discovery와 load balancing에 대해서 다뤄보겠습니다. Intro 로드 밸런싱은 잘 알려진 주제에 반해 서비스 디스커버리에 대해서는 설명이 필요하다고 생각합니다. "서비스 A가 서비스 B의 위치에 대한 아무 정보가 없다면 어떻게 서비스 B와 통신할 수 있을까요" 다른 말로 10개의 서비스 B 인스턴스가 여러 노드위에서 실행되고 있다고 하면 누군가 이 모든 정보들을 가지고 있어야하지 않을까요? 서비스 B의 IP 주소 또는 호스트 이름이 서비스 A에게 제공되어야지 않을까요? (client-side load balancing) 또는 서비스 A가 해당 정보들을 알고있는 제 3자에게 정보를 물어봐야하지 않을까요? (s.. [Go MSA with Docker Swarm] 06-Healthcheck 마이크로서비스가 더 커지고 복잡해짐에 따라 각 서비스가 Docker Swarm에게 자신이 healthy함을 알려야합니다. 이번 파트에서는 마이크로서비스에 health check을 등록해보겠습니다. 우리의 accountservice 마이크로서비스는 HTTP 통신 데이터베이스 연결 이 되지 않는다면 사실 무용지물입니다 이런 경우가 발생시 자신의 연결상태를 알리기 위해 healthcheck endpoint를 제공하는 방법이 있습니다. 우리의 마이크로서비스들은 http 기반이기 때문에 /health 엔드포인트를 제공하여 문제가 없다면 200 StatusCode를 문제가 있다면 에러 StatusCode를 에러 메시지와 함께 반환하도록 하는 방법입니다. /dbclient/boltclient.go 데이터베이스 연결을.. 이전 1 ··· 3 4 5 6 7 8 다음