爲什麼選擇dubbo-go?
目前公司的技術棧是go+grpc+k8s,如果使用grpc開發分佈式系統,需要編寫protobuf文件,並處理通信協議的數據轉換。 對於習慣了使用dubbo作爲分佈式框架的Java同學來說,這個工作效率太低下了,所以需要一種類似dubbo的rpc框架且能兼容現有的grpc框架。
helloWorld demo
- 共用model類
userprovider.go
- 服務端實現
User.go
server.go
server.yml
log.yml
- 客戶端實現
User.go
client.go
client.yml
log.yml
- 完整項目目錄
編譯client.go server.go
CGO_ENABLED=0&&GOOS=linux&&GOARCH=amd64&&go build -o output client.go
CGO_ENABLED=0&&GOOS=linux&&GOARCH=amd64&&go build -o output server.go
運行服務端
打開一個shell窗口,運行服務端程序
- 導出環境變量
export CONF_PROVIDER_FILE_PATH=conf/server.yml
export APP_LOG_FILE_PATH=conf/log.yml
- 運行server.go
./server
運行客戶端
打開一個shell窗口,運行服務端程序
- 導出環境變量
export CONF_CONSUMER_FILE_PATH=conf/client.yml
export APP_LOG_FILE_PATH=conf/log.yml
- 運行client.go
./client
問題
os.Getenv在windows系統下無法讀取環境變量中配置文件路徑?