본문 바로가기
기타

[MSA] 시간적 결합

by Nhahan 2025. 4. 17.

코드 중심적 관점에서 시간적 결합은 순전히 동시에 발생하기 때문에 함께 엮이는 상황이다.

시간적 결합은 분산 시스템의 맥락에서는 미묘하게 다른 의미를 갖는데, 하나의 마이크로서비스가 작업을 완료하기 위해 동시간에 어떤 작업을 수행하는 다른 마이크로서비스가 필요한 상황을 나타낸다.

 

작업을 완료하려면 두 마이크로서비스가 동시에 작동하고 서로 통신할 수 있어야한다. 따라서 A서비스가 B서비스에 대한 동기식 HTTP 호출을 수행하는 시점에 B서비스는 가동돼 수행 가능한 상태여야한다.

B서비스가 연결되지 않으면 호출은 실패한다.

어떤 이유로 A서비스가 B서비스가 연결할 수 없게 된다면 작업은 실패하게 된다. 또한 A서비스는 차단되어 B서비스의 응답을 기다려야하므로 잠재적으로 리소스 경합과 관련된 문제를 유발할 수 있다.

 

시간적 결합이 항상 나쁜 것은 아니지만, 인지해둘 필요는 있다. 마이크로서비스가 늘어나 상호작용이 더 복잡해지면 시간적 결합 문제가 증가하므로 시스템을 확장하고 작동 상태를 유지하기가 더 어려워질 수 있다. 시간적 결합을 피하는 한가지 방법으로는 메시지 브로커와 같은 비동기 통신 형태를 사용하는 것이다.

반응형

댓글