uju's Tech

[gRPC : Node.js] Node.js에서 gRPC 설치 본문

DevOps/MSA

[gRPC : Node.js] Node.js에서 gRPC 설치

ujusy 2020. 8. 5. 00:38

<본 포스팅은공부목적으로 작성되었습니다. 혹시 틀린 부분이 있거나 문제가 되는 부분이 있다면 답글 달아주세요!>

1. 먼저 현재 진행 중인 express 프로젝트 폴더에서 grpc와 grpc loader를 설치하자.

[설치 참고 문서]

https://www.npmjs.com/package/grpc

 

grpc

gRPC Library for Node

www.npmjs.com

gRPC 설치 : sudo npm install grpc

 

https://www.npmjs.com/package/@grpc/proto-loader

 

@grpc/proto-loader

gRPC utility library for loading .proto files

www.npmjs.com

gRPC loader 설치 :sudo npm install @grpc/proto-loader

 

 

2.(이 부분은 깃에 proto 를 위한 repo를 하위 레포로 생성한 경우) 현재 프로젝트에 서브모듈 추가하기

 

깃 크라켄이나 소스트리에서도 간단한 클릭으로 추가가능하다.

 

터미널로 설정도 가능하다.

 

git submodule add <추가하려는 자식 repo>

 

이렇게 서브 모듈을 추가하면 소스트리 기준으로   부모듈에서 확인가능하다.

 

.gitmodeuls라는 파일도 생성되는데 해당 서브모듈에 대한 정보가 들어있따.

 

3. grpcSercer.js를 작성해주자.

 

const grpc = require('grpc');
const protoLoader = require('@grpc/proto-loader');

const packageDefinition = protoLoader.loadSync('(proto경로)/(지정한 프로토 파일명)', {});
const proto = grpc.loadPackageDefinition(packageDefinition);

const grpcServer = new grpc.Server();
grpcServer.addService(proto.ApiAuthorization, {

});

const grpcUrl = '0.0.0.0:50000';

grpcServer.bind(grpcUrl, grpc.ServerCredentials.createInsecure());

module.exports = {
  grpcServer,
  grpcUrl,
};

 

4. server가 listen하는 부분에 아래와 같이 추가해준다.

const { grpcServer, grpcUrl } = require('./grpcServer');

grpcServer.start();

console.log(`gRPC server listening at ${grpcUrl}`);

이 부분이 gRPC 튜토리얼을 보면 app.js에서 server listen을 해주기 때문에 app.js에서 작성해주지만

현재 프로젝트는 bin/www에서 서버를 열어주기 때문에 이 아래에 작성하였다.

 

5. 이제 request, response는 원하는 상황에 맞게 작성하자!_!

 

이 부분을 따로 공부를 더 진행하여 다른 포스팅에서 작성해볼 생각이다..!

 

기본 셋팅 끝!

'DevOps > MSA' 카테고리의 다른 글

[gRPC] gPRC Remote Procedure Calls란?  (0) 2020.07.23
Comments