odin-doc

Odin Develop Document

View project on GitHub

运行


编译

$ rigger build
go build -tags "zookeeper" -ldflags '-X "rpcproject/version.TAG=" -X "rpcproject/version.VERSION=" -X "rpcproject/version.AUTHOR=" -X "rpcproject/version.BUILD_INFO=" -X "rpcproject/version.BUILD_DATE=2019-11-13 16:17:28"' -gcflags "-N" -i -o ./bin/rpcproject ./cmd/rpcproject

发布系统编译

$ make TAG=$cur_tag
go build -tags "zookeeper" -ldflags '-X "rpcproject/version.TAG=v1.0.1" -X "rpcproject/version.VERSION=" -X "rpcproject/version.AUTHOR=" -X "rpcproject/version.BUILD_INFO=" -X "rpcproject/version.BUILD_DATE=2019-1116:17:28"' -gcflags "-N" -i -o ./bin/rpcproject ./cmd/rpcproject

打印help

$ ./bin/rpcproject --help
Usage of ./bin/rpcproject:
  -c string
        指定ini配置文件,以程序的二进制文件(myproject)为相对目录,正确的相对目录加载方式: -c ../conf/conf_xxx.ini; 默认为加载 ../conf/conf.ini
  -p string
        配置文件的前缀设置,用于以绝对路径形式加载,如  -c conf.ini -p /usr/pathto/myproject/conf
  -cfg string
        json config path (default "conf/config.json")
  -extended string
        扩展参数,程序未定义使用用途,用户可自行处理
  -f    foreground
  -m    mock 开关
  -mode int
        进程模型,取值:2 [gracehttp](github.com/facebookgo/grace/gracehttp), 默认为:[oversee](github.com/jpillora/overseer)
  -s string
        start or stop
  -usr1 string
        user defined flag -usr1
  -usr2 string
        user defined flag -usr2
  -usr3 string
        user defined flag -usr3
  -usr4 string
        user defined flag -usr4
  -usr5 string
        user defined flag -usr5
  -v    version

部署环境中启动

$ bin/rpcproject 
2019/11/13 16:23:32 CONF INIT,path:../conf/conf.ini
2019/11/13 16:23:32 [expvarutil] Expvar not enabled
2019/11/13 16:23:32 service.go:264: INFO : methodDoReregister has wrong number of ins:1
2019/11/13 16:23:32 service.go:264: INFO : methodGetMetadata has wrong number of ins:1
2019/11/13 16:23:32 service.go:264: INFO : methodSetReregister has wrong number of ins:2
2019/11/13 16:23:32 service.go:264: INFO : methodUpdate has wrong number of ins:1
2019/11/13 16:23:32 service.go:289: INFO : methodWrapcall reply type not a pointer:wrap.EndPoint
2019/11/13 16:23:32 server.go:174: INFO : server pid:19212
2019/11/13 16:23:32 server.go:174: INFO : server pid:19212

开发测试中启动

$ rigger start
2019/11/13 16:24:15 CONF INIT,path:conf/conf.ini
2019/11/13 16:24:15 [expvarutil] Expvar not enabled
2019/11/13 16:24:15 service.go:264: INFO : methodDoReregister has wrong number of ins:1
2019/11/13 16:24:15 service.go:264: INFO : methodGetMetadata has wrong number of ins:1
2019/11/13 16:24:15 service.go:264: INFO : methodSetReregister has wrong number of ins:2
2019/11/13 16:24:15 service.go:264: INFO : methodUpdate has wrong number of ins:1
2019/11/13 16:24:15 service.go:289: INFO : methodWrapcall reply type not a pointer:wrap.EndPoint
2019/11/13 16:24:15 server.go:174: INFO : server pid:19247
2019/11/13 16:24:15 server.go:174: INFO : server pid:19247
启动成功pid:19247

验证

$ rigger example zookeeper
2019/11/13 16:25:15 server.go:358: INFO : client has closed this connection: 10.90.101.139:27065
SayHello: i'm hello service,recv greeting:hello, i'm rpcproject client
AddUser: &{Id:2}
UserInfo: &{学而思 %!s(int=10) beijing}
UpdateUser: &{}
UserInfo: &{网校 %!s(int=20) beijing}

至此,我们已经通过odin搭建并跑通了一个rpc服务!