log 2021-11-10
project
epis
nestjs 공부 4
생각해보면, 설정 뿐 아니라 특정 서비스가 부하 분산을 위해 여러 인스턴스가 실행중일 수도 있다. 그런 경우 인스턴스를 찾는 등 서비스 디스커버리 패턴이 필요하다.
그렇다면, 어떻게 서비스 디스커버리 패턴을 nestjs에서 구현할 수 있을까? 찾아보았지만 잘 나오지 않는다.
어떤 형태로든 어떤 서비스를 실행할 때마다 호스트와 포트같은 위치에 대한 정보를 구별해야 하는 것 자체가 현재 방식의 단점이라고 생각한다.
각 서비스의 코드에 서비스 템플릿으로서 비즈니스 로직이 아닌 셋업 관련 보일러플레이트 코드가 늘어날 수록, 나중에 셋업 방식이 바뀌면 이전 모든 코드들을 변경해야 하게 된다. 그리고, 메시지를 통해 통신하게 되는데, 메시지는 서비스간에 이루어지기 때문에 메시지 타입을 어디에 정의해야 하는지 애매하다. (듣는 쪽, 컨트롤러 쪽에 정의하는게 맞다는 생각이 들긴 한데..)
그래서 포트와 호스트 기반 어드레싱이 아닌 토픽 등 이름에 기반한 통신을 하기 위해 다른 트랜스포트인 카프카를 사용하려 했는데, 이것은 카프카 브로커를 따로 실행해주어야 하는 모양이다.
Comments