go-example
通过一个前后台都可以操作的用户接口,对用户服务进行操作 这是一个使用服务网格(istio)构建微服务的使用示例
|技术|描述| |---|---| |grpc+protobuf|服务层之间的通讯| |echo|应用层接口暴露| |mysql|存储层| |redis|缓存层| |kafka|服务之间异步通讯| |jaeger|链路跟踪| |EFK|日志收集存储查询(没涉及,只把日志打到文件) go-log | |statik|静态文件打包| |docker-compose|容器部署| |istio|流量控制,服务降级,跟踪,服务发现,分流等|
go >=1.11
docker-compose
go get -u github.com/golang/protobuf/proto go get -u github.com/golang/protobuf/protoc-gen-go go get -u github.com/rakyll/statik
https://github.com/xiaomeng79/istio-micro.git
make allbuild
make compose up
浏览器打开消息推送窗口 http://127.0.0.1:5002/public/
打开命令行插入mysql一条数据
curl -X POST / http://127.0.0.1:8888/backend/v1/user / -H 'Cache-Control: no-cache' / -H 'Content-Type: application/json' / -d '{"user_name":"meng","iphone":"18201420251","sex":1,"password":"123456"}'
|技术|描述| |---|---| |api|api接口| |cinit|配置和初始化文件| |cmd|程序入口| |deployments|部署文件(docker,k8s,istio)| |internal|内部公共文件| |scripts|脚本文件| |srv|服务|
Makefile
//格式化代码 make fmt //vendor make vendor //代码测试,代码检查 make test //编译单个服务 make build type=srv project=user //编译全部服务 make allbuild //protobuf make proto //生成单个dockerfile make dockerfile type=srv project=user //生成全部dockerfile make alldockerfile //docker-compose部署 make compose up //打包静态文件 make builddata //提交代码到远程仓库 make push msg="提交信息"
kubectl apply -f deployments/k8s/api_backend/dev.yaml kubectl apply -f deployments/k8s/api_frontend/dev.yaml kubectl apply -f deployments/k8s/srv_user/dev.yaml kubectl apply -f deployments/k8s/srv_socket/dev.yaml
待完善在k8s部署的基础上,执行deployments/k8s目录下各个network文件和网关文件