为什么选择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系统下无法读取环境变量中配置文件路径?