마이크로 서비스를 사용하려고 하는데 질문이 있습니다.
tcp통신을 이용해서 마이크로 서비스를 만들고 있습니다.
마이크로 서비스는 3000번으로 포트를 켜놨고,
게이트웨이의 포트는 4000번으로 실행을 하게끔 해놨습니다.
제가 우선 테스트를 위해서 user의 레포지토리에서 데이터를 전체 긁어오게끔 간단한 로직을 짜놨는데요.
// 게이트웨이 컨트롤러
@Get("/users")
@UseGuards()
async GetUsers() {
return this.organizationService.getUsers();
}
// 게이트웨이 서비스
getUsers() {
return this.clients.send("get:getUsers", {});
}
// 마이크로 서비스
@MessagePattern({ cmd: "get:getUsers" })
async getUsers() {
console.log("걸림");
return pipe(
await this.userRepository.find({
relations: [ /* 관계 설정 */],
}),
(users) => ({
success: true,
users: {
users: users.map((user) => (
// 유저 정보들
),
},
}),
);
}localhost:3000/api/users 경로로 요청 결과는 500에러가 나오고 콘솔에는
[Nest] 3096 - 2023. 11. 16. 오후 2:45:20 ERROR [ExceptionsHandler] There is no matching message handler defined in the remote service.
이렇게 메시지 핸들러가 일치하지 않다는데 대체 뭐가 잘못된건지를 모르겠습니다.
메시지 패턴 이름도 같게 해놨는데 말이죠.
답변 1
1
send에서도 { cmd: 'get:getUsers' } 객체를 보내셔야 합니다.
공식문서 참고하세요.
https://docs.nestjs.com/microservices/basics#sending-messages
강의자료는 어디서 다운받나요?
0
110
3
질문 있습니다.
0
294
3
(강의 5:42 질문) providers를 통한 여러 개의 인스턴스 생성 & exports 통한 싱글톤 생성
0
154
2
코드 편집기 확장 프로그램
0
209
2
(질문)비밀 저장소에 접근하기 위한 인증 정보는 로컬 .env에 저장하는지?
0
143
2
(질문)외부 저장소를 통한 환경변수 불러오기 비동기 질문
0
166
3
로그인을 해도 LoggedInGuard쪽에서 false값이 나옵니다.
0
152
2
로그인방법이 고민됩니다.
0
190
2
yarn seed 명령어 실행 시 데이터 삽입 안됨
0
296
4
yarn run db:create 시에 발생하는 데코레이터 오류
0
242
2
npm run db:create 시에 발생하는 decorating 오류
0
231
2
RxJS 디버깅 질문 있습니다.
0
187
3
CacheManager에 대해 질문 있습니다.
0
173
2
로깅은 어떻게 하는게 효율적일까요?
0
224
1
CORS 질문 있습니다.
0
417
2
쿠키 옵션에 대해서 질문 있습니다.
0
184
2
로그아웃 요청이 403 forbidden 에러가 나는데 왜그런걸까요??
0
447
1
401 unauthorized문제
0
286
1
가드의 장점에 대해서 질문이 있습니다.
0
225
1
로그 관리에 대해 질문 있습니다.
0
252
2
CORS 에러 질문 있습니다.
0
318
2
배포 환경 DB 연결 질문 있습니다.
0
411
2
socket io 미 연결 문제 (nest & flutter)
1
1154
3
no elements in sequence 에러 관해서 질문이 있습니다.
0
454
1





