项目简介
本项目是基于Go语言和go-zero框架开发的分布式任务管理系统,集成了RPC服务、任务管理、分布式追踪、服务注册与发现、监控与指标等多个模块。采用gRPC进行服务间通信,借助go-zero框架开展服务开发,支持任务的添加、取消、查询等操作,还集成了分布式追踪系统Jaeger,可提供任务追踪和监控功能。
项目的主要特性和功能
- RPC服务:提供RPC接口,支持任务管理、状态查询等功能。
- 任务管理:通过异步任务队列asynq实现任务推送、处理、删除等功能。
- 分布式追踪:集成Jaeger分布式追踪系统,实现任务执行链路追踪。
- 服务注册与发现:使用Polaris作为服务注册中心,实现服务自动注册和发现。
- 监控与指标:使用Prometheus进行服务监控,收集并展示系统关键指标。
安装使用步骤
准备环境
安装Go语言环境,确保版本与项目兼容。
运行服务
- 启动RPC服务:
go run gozerodemo.go -f etc/gozerodemo-api.yaml
- 启动Jaeger分布式追踪系统:
docker run -d --name jaeger -e COLLECTOR_ZIPKIN_HOST_PORT=:9411 -p 5775:5775/udp -p 6831:6831/udp -p 6832:6832/udp -p 5778:5778 -p 16686:16686 -p 14268:14268 -p 14250:14250 -p 9411:9411 jaegertracing/all-in-one:1.23
- 启动asynq任务队列监控:
docker run --rm --name asynqmon -d -p 8098:8080 -e REDIS_ADDR=172.17.0.1:6379 hibiken/asynqmon
配置修改
根据项目配置文件,修改服务端口、数据库连接等参数。
测试与调试
- 使用curl命令测试RPC服务:
curl -i -X GET http://localhost:8888/from/me
- 使用grpcui工具测试gRPC服务:
grpcui -plaintext localhost:8080
部署
- 使用Docker部署:
docker build -t demo:v1 -f api/Dockerfile .
和docker run --rm -it -p 8888:8888 demo:v1
- 使用Kubernetes部署:
kubectl create namespace dev
和kubectl apply -f deploy/demo.yaml
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】