> 업계 통찰 >서보 기구
기술 지원

마이크로서비스 예제에서 서비스 검색

게시됨 2026-01-19

마이크로서비스가 "숨바꼭질"을 시작하면 어떻게 해야 합니까?

멋진 마이크로서비스 시스템을 구축한다고 상상해 보세요. 처음에는 모든 일이 순조롭게 진행되었고 모두가 자신의 일을 해냈으며 협력이 즐거웠습니다. 그러나 천천히 서비스 수가 증가했습니다. 오늘 사용자 모듈이 추가될 예정이며, 내일 서비스 주문이 접수될 예정입니다. 어느 날 갑자기 문제가 발생했습니다. 주문 서비스는 거래를 완료하기 위해 결제 서비스를 찾고 있었지만 상대방이 어디로 이동했는지 알지 못했습니다. 사용자 서비스는 주소를 업데이트했지만 재고 서비스는 어리석게도 이전 장소로 계속 배송되었습니다. 전체 시스템은 주소록이 없는 파티와 같습니다. 모두가 서로를 바라보며 채팅하고 싶은 사람을 찾을 수 없습니다. 능률? 잊어버리세요. 혼란과 지연이 일반화되었습니다.

이는 "서비스 검색"이 누락되었을 때 발생하는 어색함입니다. 멋진 새로운 기능은 아니지만 기본적인 순서입니다. 그것이 없으면 마이크로서비스는 엉망이 되고 모든 통화는 모험처럼 느껴집니다.

서비스 검색은 정확히 무엇을 합니까?

쉽게 말하면 "실시간 주소록" 입니다. 동적 마이크로서비스 환경에서는 로드가 변경되고 해당 네트워크 위치(예: IP 주소)가 변경됨에 따라 서비스 인스턴스가 생성되거나 삭제됩니다. 서비스 검색 메커니즘의 핵심 작업은 새로 시작된 각 서비스 인스턴스를 자동으로 등록하고 다른 서비스가 언제든지 이러한 인스턴스의 최신 위치를 쿼리할 수 있도록 하는 것입니다.

주로 두 가지 일을 처리합니다. 등록: 서비스 인스턴스가 시작된 후 "서비스 검색 등록 센터"에 적극적으로 보고하고 "나는 여기에 있고, 누구이며, 무엇을 할 수 있는지"라고 말합니다. 질의: 서비스 A가 서비스 B를 호출해야 할 때 주소를 하드 코딩하지 않고 등록 센터에 "야, 지금 사용할 수 있는 서비스 B는 무엇입니까? 주소를 알려주세요."라고 묻습니다. 등록 센터는 현재 정상이고 사용 가능한 인스턴스 주소를 반환합니다.

이는 더 이상 각 동료의 고정된 워크스테이션 번호를 기억할 필요가 없지만 언제든지 업데이트되는 온라인 좌석 배치도가 있어 누가 자리를 바꿨는지 한눈에 알 수 있는 것과 같습니다.

왜 사용해야 하나요? 저장하면 안되나요?

어떤 사람들은 IP 목록을 수동으로 관리할 수는 없지 않느냐고 생각할 수도 있습니다. 소수의 극도로 고정된 서비스를 사용하면 한동안 버틸 수 있습니다. 그러나 일단 규모가 커지면 수동 유지 관리는 악몽이 됩니다. 확장하거나 축소할 때마다 또는 모든 장애 조치를 수행할 때마다 모든 관련 서비스의 구성을 수동으로 업데이트하고 다시 시작해야 한다는 점을 생각해 보세요. 이는 엄청난 작업량일 뿐만 아니라 실패의 온상이기도 합니다. 구성 지연이나 오류로 인해 연속적인 오류가 발생할 수 있습니다.

서비스 검색의 이점은 다음과 같습니다.

  • 높은 탄력성: 인스턴스 장애나 신규 추가 시 시스템이 자동으로 트래픽을 감지하고 조정하여 서비스가 중단되지 않습니다.
  • 높은 확장성: 수평으로 쉽게 확장할 수 있으며, 새로운 인스턴스가 자동으로 클러스터에 합류하고 외부 세계에 투명합니다.
  • 구성 단순화: 서비스 간 호출이 더 이상 하드 코딩된 엔드포인트에 의존하지 않으며 구성 관리가 매우 신선해졌습니다.
  • 로드 밸런싱: 검색 메커니즘은 일반적으로 로드 밸런싱과 결합되어 가장 바쁜 인스턴스에 요청을 지능적으로 배포할 수 있습니다.

현실 세계에서는 어떻게 작동하나요?

일상적인 예를 살펴 보겠습니다. 전자상거래 애플리케이션이 있다고 가정해 보겠습니다. 핵심 서비스에는 사용자 서비스, 제품 카탈로그 서비스, 주문 서비스 및 재고 서비스가 포함됩니다.

  1. 시작하다: 인벤토리 서비스의 새 인스턴스가 시작되면(예: 프로모션으로 인해 서버가 추가됨) 즉시 서비스 검색 등록 센터(예: Consul, Etcd 또는 Eureka와 같은 공통 구성 요소)에 등록 요청을 보냅니다. "나는 192.168.1.10:8080에서 실행되는 인벤토리 서비스 버전 v1입니다."
  2. 발견하다: 현재 주문 서비스에서는 새로운 주문을 처리하기 위해 재고를 차감해야 합니다. 고정 IP에 직접 접속하지 않고 동일한 등록 센터에 "사용 가능한 인벤토리 서비스 인스턴스가 필요합니다."라는 쿼리를 시작합니다.
  3. 라우팅: 등록 센터는 하나 이상의 현재 정상 인벤토리 서비스 인스턴스 주소(예: 위에서 언급한 192.168.1.10:8080 및 다른 인스턴스 192.168.1.11:8080)를 반환합니다. 주문 서비스는 주소를 가져와서 전화를 겁니다. 일반적으로 클라이언트에는 이러한 주소를 순환하거나 무작위로 선택하는 간단한 로드 밸런싱 기능이 내장되어 있습니다.
  4. 건강검진: 등록 센터는 등록된 인스턴스에 대한 상태 확인(예: HTTP 요청 전송)을 지속적이고 정기적으로 수행합니다. 인벤토리 서비스 인스턴스 192.168.1.10:8080이 다운되어 응답하지 않는 경우 등록 센터는 사용 가능한 목록에서 해당 인스턴스를 제거합니다.
  5. 고쳐 쓰다: 다음에 다시 주문 서비스를 쿼리하면 여전히 정상적인 192.168.1.11:8080 주소만 가져옵니다. 전체 프로세스에서 수동 개입 없이 결함이 있는 인스턴스가 자동으로 격리됩니다.

보세요, 질서가 확립되었습니다. 각 서비스는 서로를 찾는 방법을 알고 있으며 시스템은 치유하고 성장할 수 있는 능력을 갖추고 있습니다.

플랜을 선택할 때 어디에 눈을 집중해야 합니까?

"무엇을", "왜"를 이해한 후 다음 단계는 자연스럽게 "어떻게 선택할 것인가"입니다. 다양한 서비스 검색 도구 또는 모드(클라이언트 검색과 서버 검색)에 직면했을 때 생각해 볼 만한 몇 가지 핵심 사항이 있습니다.

  • 일관성 보장: 분산 시스템에서는 데이터 일관성이 중요합니다. 서비스 검색 레지스트리가 강력한 일관성을 제공할 수 있나요? 이는 서로 다른 서비스가 서로 다른 인스턴스 목록을 가져와서 호출 시 혼란을 초래하는 것을 방지하는 데 중요합니다. Raft 프로토콜을 기반으로 하는 도구는 일반적으로 이러한 보장을 제공합니다.
  • 상태 확인 메커니즘: 단순히 "등록"되었다고 해서 "사용 가능"을 의미하는 것은 아닙니다. 완전한 상태 확인(HTTP, TCP 및 사용자 정의 스크립트)을 통해 시스템 복원력의 초석인 결함이 있는 노드를 신속하게 제거할 수 있습니다.
  • 생태와의 통합: 기존 기술 스택(예: Kubernetes, Spring Cloud 등)과 쉽게 통합될 수 있나요? 원활한 통합을 통해 많은 맞춤형 개발 작업을 줄일 수 있습니다.
  • 운영 및 유지 관리의 복잡성: 별도의 클러스터를 유지해야 합니까, 아니면 기존 인프라(예: K8s)에 내장된 기능입니까? 이는 팀의 운영 부담과 직접적인 관련이 있습니다.
  • 성능과 규모: 얼마나 많은 서비스 인스턴스를 쉽게 관리할 수 있나요? 쿼리 대기 시간은 얼마나 됩니까? 규모가 커지면 병목 현상이 발생합니까?

모든 경우에 적용되는 단일 솔루션은 없습니다. 핵심은 팀 규모, 기술 선호도, 비즈니스 시나리오의 긴급 요구 사항에 따라 달라집니다. 때로는 간단하게 시작하면 더 빨리 궤도에 진입할 수 있습니다.

시작된 파티로 돌아가

실제로 기술적 결정은 종종 가장 단순한 원래 의도로 돌아가는 경우가 많습니다. "숨바꼭질"이라는 혼란스러운 게임에서 계속해서 에너지를 낭비하고 싶습니까, 아니면 모든 서비스가 원활하게 통신하고 임무를 수행할 수 있는 협업 플랫폼을 구축할 의향이 있습니까? 서비스 검색은 이 플랫폼의 초석 중 하나입니다.

시끄럽지는 않지만 매우 중요합니다. 이를 통해 주소 구성의 수렁에 갇히는 대신 민첩성, 탄력성, 확장성 등 마이크로서비스 아키텍처의 진정한 이점을 최대한 활용할 수 있습니다. 다음번에 디자인이나 시스템을 디자인할 때 스스로에게 질문해 보십시오. 내 서비스가 서로 쉽게 찾을 수 있습니까? 답변이 확실하지 않다면 이제 '실시간 주소록'을 가져와야 할 때일 것입니다.

결국 좋은 시스템은 서비스가 오랜 친구처럼 서로를 찾기 위해 항상 이동하는 대신 언제든지 함께 모일 수 있도록 해야 합니다.

2005년에 설립되었으며,kpower는 중국 광둥성 둥관에 본사를 둔 전문 컴팩트 모션 유닛 제조업체에 전념해 왔습니다. 모듈식 드라이브 기술의 혁신을 활용하여,kpower고성능 모터, 정밀 감속기, 멀티 프로토콜 제어 시스템을 통합하여 효율적이고 맞춤형 스마트 드라이브 시스템 솔루션을 제공합니다.kpower스마트 홈 시스템, 자동 전자 장치, 로봇 공학, 정밀 농업, 드론, 산업 자동화 등 다양한 분야를 포괄하는 제품을 통해 전 세계 500개 이상의 기업 고객에게 전문 드라이브 시스템 솔루션을 제공해 왔습니다.

업데이트 시간:2026-01-19

미래에 힘을 실어주다

귀하의 제품에 적합한 모터 또는 기어박스를 추천하려면 Kpower 제품 전문가에게 문의하십시오.

케이파워에 메일보내기
문의 제출
WhatsApp 메시지
+86 0769 8399 3238
 
kpower지도