# NestJS 與 gRPC:快速上手指南 - 謝浩哲(HAO) {%hackmd @HWDC/BJOE4qInR %} >#### 》[議程介紹](https://hwdc.ithome.com.tw/2024/session-page/3226) >#### 》[填寫議程滿意度問卷|回饋建言給辛苦的講者](https://forms.gle/LcdGsci691CnDDby7) ---------- [Demo](https://github.com/hao0731/2024-hwdc-nestjs-grpc) # gRPC - RPC Framework: 像call function一樣獲取server端的資源 - HTTP/2 - Low latency - **多語言** ## gRPC 運作方式 server與 Client都具有 `gRPC Stub`,雙方的Stub溝通 ## Protocal Buffer definition - binary encode,解析速度快 - 支援多語言 ```ts syntax = "proto3"; message User { [key]: [value], name: string = 1, } ``` ## Caveat - 欄位序號不得重複 - 棄用欄位使用 reserve 修飾字定義 需要編譯成 typescript: 使用`ts-proto` ## NestJS - 對 NestJS 來說,gRPC 是 microservicee - 用 `ts-proto` 建立出來的 decorator ,implement 對應的 interface,減少使用原生的 decorator 的重複。 ## Q&A Q: 怎麼管理 protocal buffer A: 以前是全部放在同一個 repo 底下。依照公司文化,目前接觸較多mono-repo,可能就會想要放在同一個mono-repo下 Q: 新增欄位,在deploy的時候時,要怎麼保持一致 A: protocal buffer有向前向後兼容 Q: Demo 中的 service 跟 client 是兩個 service嗎? A: 對 Q: gRPC,服務如果有 retry,會有 retry的風暴嗎?或怎麼處理這個問題 A: rxJS 來減少?(好像沒有回答道)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up