【筆記】Envoy Proxy

上一次跟大家介紹了 gRPC 的通訊協定後,今天我們要跟大家介紹,可以支援 gRPC 的代理 Envoy

在官網中,他是這麼介紹他自己的

Envoy is an L7 proxy and communication bus designed for large modern service oriented architectures. The project was born out of the belief that:

The network should be transparent to applications. When network and application problems do occur it should be easy to determine the source of the problem.

Quick Start

當 Web 需要進行串接 gRPC 時,我們可以使用 gRPC-Web,但是需要透過 Envoy 進行代理
接下來,我們就開始吧!

  • 首先,我們需要建立 envoy.yaml 檔,進行 config 設定

其中,這邊的 address 與 port 是指 envoy 提供出去的 address 與 port

1
socket_address: { address: 0.0.0.0, port_value: 6566 }

另外,最下面的則是 gRPC Sever 的 address 與 port

1
hosts: [{ socket_address: { address: gp-lotcenter, port_value: 6565 }}]

完整:

  • 另外,我們需要撰寫 Dockerfile
1
2
FROM envoyproxy/envoy
COPY envoy.yaml /etc/envoy/envoy.yaml
  • 啟動

這邊需要特別說明的是,整個 mysql, gp-lotcenter 與 envoy 都在同一個 network 下

1
docker run -d --name envoy -p 6566:6566 -p 9901:9901 --network mysql_default envoy

今天的筆記先記錄到這邊,之後有更多的了解再補上。
如果有其他問題,歡迎寄信討論。

補充說明

gRPC-Web 有興趣的朋友,可以參考 gRPC-Web 教學文章

Reference

Envoy
gRPC-Web
gRPC-Web 教學文章

謝謝您的支持與鼓勵

Ads