205
5
장
마이크로서비스의 통신 구현
첫째, 서비스의 내부 버그를 수정해야 하는 경우 이제
2
개의 서로 다른 서비스 세트를 수정하
고 배포해야 한다. 이는 아마도 서비스의 코드베이스를 분기해야 한다는 것을 의미하며 항상
문제가 된다. 둘째, 소비자를 올바른 마이크로서비스로 유도하는 데 지능이 필요하다는 것을
뜻한다. 이 행위는 틀림없이 미들웨어 어딘가 또는 엔진엑스
nginx
스크립트에 상주하게 돼 시스
템 동작을 추론하기 어렵게 만든다. 마지막으로, 서비스에서 관리할 수 있는 모든 영속적인 상
태를 고려하라. 서비스의 두 버전에 의해 생성된 고객은 처음 데이터를 생성하는 데 사용된 버
전에 관계없이 저장되고 모든 서비스에 보여질 수 있어야 한다. 단, 이 방식은 복잡성을 가중하
는 요인이 될 수 있다.
단기간에 동시에 서비스 버전을 공존시키는 것은 특히 카나리아 릴리스와 같은 작업을 수행할
때 가장 적합하다. 이 패턴은
8
.
6
.
2
절 ‘점진적 제공으로’에서 더 논의한다. 이러한 상황에서는
몇 분이나 몇 시간 동안만 버전들을 공존시킬 수 있으며, 일반적으로 동시에 두 가지 다른 버전
의 서비스만 사용할 수 있다. 소비자를 최신 버전으로 업그레이드하고 릴리스하는 데 시간이
오래 걸릴수록 전혀 다른 버전이 공존하는 방법보다는 동일한 마이크로서비스에서 다른 엔트
포인트가 공존하는 방법을 더 찾아야 한다. 개인적으로는 이 작업이 일반적인 프로젝트에도 가
치가 있다고 확신하지 못한다.
5.7.35.7.3
기존 인터페이스 에뮬레이션 기존 인터페이스 ...