go-micro-example
这只是一个技术使用的示例项目
使用的技术
| 功能 | 描述 |
|---|---|
| 网关 | traefik kong 可以使用插件实现限流,断路器,重试,认证,统计等 |
| 框架 | go-micro(微服务) + echo(web框架) |
| 配置 | 默认值->yaml->env |
| 日志 | 可选插件(zap logors),集成了链路跟踪go-log |
| 链路跟踪 | OpenTracing Jaeger |
| 监控 | go-metrics |
| 打包 | bindata |
| 编码 | protoc-gen-micro |
| 部署 | docker docker-compose k8s |
| 文档生成 | swagger |
| 其他 | JWT |
目录结构
. ├── api //restful接口 ├── cinit //公共配置和初始化 ├── cmd //服务入口 ├── data //测试数据 ├── deployments //部署目录,docker docker-compose k8s配置文件,自动化生成 ├── go.mod //go1.11包管理 ├── go.sum ├── internal //内部公共组件 ├── LICENSE ├── Makefile ├── README.md ├── scripts //makefile使用的脚本 ├── srv //服务目录 └── third_party //第三方包目录
依赖安装
- 安装 protoc protoc-gen-micro protoc-gen-go
-
安装docker和docker-compose
-
安装bindata打包
编译
make vendor make allbuild
本地docker-compose运行
请求
//登录,返回token在响应头中:Authorization curl -X POST http://127.0.0.1:8888/common/v1/login -H 'Content-Type: application/json' -d '{"username":"xiaomeng01","password":"123456"}' -i
查看效果
-
监控:http://127.0.0.1:3000 本地效果 用户名:admin 密码:admin