grpc 2

In NestJS's microservice, let it fix that cannot refer another microservice

NestJS에서 MSA를 구현하다보면, 단순히 Client - Server 구조(https://kahnco.tistory.com/9)로 되어있는 프로젝트를 로컬 환경에서 돌리는 케이스는 별 에러없이 진행됩니다. 하지만, Client가 여러 개가 되고 각각의 Client가 Listen하고 있는 포트가 여러 개가 되면 Server(gRPC를 호출하는 쪽)에서 Client(gRPC를 제공하는 쪽)를 onModuleInit을 통해서 호출하고자 할때, override한 onModuleInit 함수가 정상적으로 호출되지 않는 문제가 있습니다. // client-svc.service.ts @Injectable() export class ClientSvcService implements OnModuleInit { pr..

NestJS 2023.04.02

Implementation gRPC MSA with Separated Projects in NestJS

개요 예전부터 MSA 아키텍처로 서버를 구성해보고 싶다는 생각이 들었는데, 좋은 기회가 있어서 구현해보게 되었습니다. 다양한 프레임워크 중에서도 제가 그나마 친숙한 NestJS로 진행해보고자 하는데, NestJS는 한국어로 잘 번역된 공식 문서도 있고 프레임워크에 MicroServices 파트가 공식적으로 지원하기 때문입니다. 정식으로 MSA 아키텍처를 구현해보기 전에, NestJS 공식 도큐먼트에 있는 간단한 MSA 예제를 먼저 실습해보았습니다. 아직 gRPC 프로토콜에 대해서 제대로 이해하지를 못해서, 이해를 위한 과정입니다. 여러 삽질과 구글링 끝에 MSA 실습을 성공하였고, 그 과정에서 생긴 오류와 해결 과정을 공유하기 위해서 이 글을 작성하게 되었습니다. 문제 NestJS 공식 도큐먼트에서 제공..

NestJS 2023.01.31