介绍
kelvins工具箱
用于一键生成kelvins模板应用,支持rpc,cron,queue,http,proto
基于
gitee.com/kelvins-io/kelvins v1.5.10
进度
类型 |
是否实现 |
用法 |
后期计划 |
rpc |
实现 |
-kind=rpc |
完善 |
proto |
实现 |
-kind=proto |
完善 |
cron |
实现 |
-kind=cron |
完善 |
queue |
实现 |
-kind=queue |
完善 |
http |
实现(gin) |
-kind=http |
完善http.ServeMutex |
效果
rpc效果
安装教程
- 编译
git clone https://gitee.com/kelvins-io/kelvins-tools.git
cd kelvins-tools
sh build.sh
2.将kelvins-tool移动到/usr/local/go/bin或为kelvins-tools添加环境变量
sudo mv kelvins-tools /usr/local/go/bin/
3.进入要创建项目的根目录,如
cd $GOPATH/src/gitee.com/kelvins-io
- 生成应用,kind表示模板类型,np表示仓库import前缀,repo仓库名
# 生成项目proto仓库
kelvins-tools -kind=proto -np=gitee.com/kelvins-io -repo=kelvins-template
# 生成RPC服务模板
kelvins-tools -kind=rpc -np=gitee.com/kelvins-io -repo=kelvins-template
# 生成cron服务模板
kelvins-tools -kind=cron -np=gitee.com/kelvins-io -repo=kelvins-template
# 生成queue服务模板
kelvins-tools -kind=queue -np=gitee.com/kelvins-io -repo=kelvins-template
# 生成http/gin服务模板
kelvins-tools -kind=http -np=gitee.com/kelvins-io -repo=kelvins-template-http
- rpc服务编译运行
cd kelvins-template
python genpb.py ../kelvins-template-proto
sh build.sh
# 运行前请看使用说明
# 编辑etc/app.ini配置,填写自己的配置,模板配置里默认启用了amqp
sh start.sh
- rpc测试服务
cd kelvins-template/client
go test -v
- RPC服务健康检查
当RPC APP的RegisterHealthServer不为nil时,kelvins就会为服务注入健康检查server,并在协程中启动监控维护函数
使用grpc-health-probe工具命令进行健康检查
kelvins rpc对健康检查接入做了免授权,所以即使服务开启了token验证也是可用的
# 安装grpc-health-probe
git clone https://github.com/grpc-ecosystem/grpc-health-probe && cd grpc-health-probe && go build
# 查看命令
grpc-health-probe --help
# 对指定服务监控检查,服务名必须正确 完整
grpc-health-probe -addr=127.0.0.1:58688 -service="kelvins_template.YourService"
# 对整体服务健康检查
grpc-health-probe -addr=127.0.0.1:58688 -service=""
- cron服务编译运行
cd kelvins-template-cron
sh build.sh
# 编辑etc/app.ini配置,填写自己的配置
# 直接运行方便查看控制台输出
./kelvins-template-cron
- queue服务编译运行
cd kelvins-template-consumer
sh build.sh
# 编辑etc/app.ini配置,填写自己的配置
sh start.sh
- http服务编译运行
cd kelvins-template-http
sh build.sh
# 编辑etc/app.ini配置,填写自己的配置
sh start.sh
cd client
go test -v
使用说明
- rpc和http服务默认启动会注册到ETCD集群,并配置环境变量
export ETCDCTL_API=3
export ETCDV3_SERVER_URLS=http://10.211.55.24:2379,http://10.211.55.25:2379
- rpc,http服务映射host
127.0.0.1 kelvins-template
- rpc采用gRPC,如果使用请安装依赖库
protoc 安装方法如下
wget https://github.com/google/protobuf/releases/download/v3.14.0/protobuf-all-3.14.0.zip
unzip protobuf-all-3.14.0.zip
cd protobuf-3.14.0/
./configure
make
make install
# 如果报错请执行
ldconfig
# grpc相关
go get -u google.golang.org/grpc@v1.32.0
go get -u google.golang.org/protobuf@v1.25.0
go get -u github.com/golang/protobuf/protoc-gen-go@v.1.4.3
go get -u github.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gateway@v1.14.3
go get -u github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger
go get -u github.com/jteeuwen/go-bindata/...
go get github.com/elazarl/go-bindata-assetfs/...
python 2.7或3.5
- 模板支持的配置参考kelvins仓库README
###技术交流
QQ群:852053097
邮件:1225807604@qq.com
参与贡献
- Fork 本仓库
- 新建 Feat_xxx 分支
- 提交代码
- 新建 Pull Request