Skip to content
forked from wwcd/grpc-lb

Example for grpc-lb with etcd

Notifications You must be signed in to change notification settings

feixiao/grpc-lb

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status

说明

gRPC服务发现&负载均衡中的例子, 修订如下

  • register中重复PUT, watch时没有释放导致的内存泄漏
  • 退出时不能正常unregister
  • 接收到etcd的delete事件时,未删除数据#1
  • 使用resolver包替换naming包,此包状态已变为Deprecated
  • 增加grpc-gateway例子

详细说明

服务注册

注册key:
/etcd_v3/hello_service/localhost:50001
关注key:
/etcd_v3/hello_service

测试

启动ETCD

# https://coreos.com/etcd/docs/latest/op-guide/container.html#docker

export NODE1=192.168.1.21

docker volume create --name etcd-data
export DATA_DIR="etcd-data"

REGISTRY=quay.io/coreos/etcd
# available from v3.2.5
# REGISTRY=gcr.io/etcd-development/etcd

docker run -d\
  -p 2379:2379 \
  -p 2380:2380 \
  --volume=${DATA_DIR}:/etcd-data \
  --name etcd ${REGISTRY}:latest \
  /usr/local/bin/etcd \
  --data-dir=/etcd-data --name node1 \
  --initial-advertise-peer-urls http://${NODE1}:2380 --listen-peer-urls http://0.0.0.0:2380 \
  --advertise-client-urls http://${NODE1}:2379 --listen-client-urls http://0.0.0.0:2379 \
  --initial-cluster node1=http://${NODE1}:2380

启动测试程序

*注: golang1.11以上版本进行测试*

# 分别启动服务端
go run cmd/svr/svr.go -port 50001
go run cmd/svr/svr.go -port 50002
go run cmd/svr/svr.go -port 50003

# 启动客户端
go run cmd/cli/cli.go


# 启动grpc-gateway代理,提供HTTP-RESTful服务
go run -mod vendor cmd/gw/gw.go
curl -X POST http://localhost:60001/hello -d '{"name": "fromGW"}'

About

Example for grpc-lb with etcd

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages

  • Go 87.5%
  • Shell 12.5%