项目简介
本项目是基于Go语言的分布式服务架构项目,包含多个微服务组件,如用户管理(UMS)、聊天服务(Chat)、全局唯一标识符(GID)生成服务、用户认证(Passport)以及用户服务(User)等。各服务通过消息代理(如NATS)通信,利用分布式追踪系统(如Jaeger)追踪服务间调用,采用ORM(如XORM)简化数据库操作,还提供API接口供客户端调用。
项目的主要特性和功能
- 微服务架构:各服务独立部署,通过服务间的API调用实现功能。
- 分布式追踪:运用Jaeger进行分布式追踪,便于监控和调试。
- 消息代理:以NATS作为消息代理,支持服务间的异步通信。
- ORM:使用XORM简化数据库操作。
- API接口:提供支持HTTP和WebSocket协议的API接口,供客户端调用。
安装使用步骤
假设用户已下载本项目的源码文件,可按以下步骤操作:
1. 安装依赖:依据项目的依赖关系,安装所需的Go包和库。
2. 配置:根据项目需求,配置相关的配置文件,如数据库连接、服务地址等。
3. 启动服务:分别启动各个微服务,保证其能正常运行。
- jaeger:
docker run -d --name jaeger \
-e COLLECTOR_ZIPKIN_HTTP_PORT=9411 \
-p 5775:5775/udp \
-p 6831:6831/udp \
-p 6832:6832/udp \
-p 5778:5778 \
-p 16686:16686 \
-p 14268:14268 \
-p 9411:9411 \
jaegertracing/all-in-one:latest
- nats - streaming:
docker run -d --name nats - streaming \
-p 4222:4222 \
-p 8222:8222 \
-v /var/lib/docker - data/nats - streaming:/datastore \
nats - streaming:latest - store file - dir datastore
- etcd:
docker run -d --name etcd \
-p 2379:2379 \
-v /var/lib/docker - data/etcd:/etcd - data \
quay.io/coreos/etcd:latest \
etcd \
--data - dir=/etcd - data \
--name node1 \
--listen - client - urls http://0.0.0.0:2379 \
--advertise - client - urls http://0.0.0.0:2379
- database:import sql scripts
- redis:
docker run -d --name redis -p 6379:6379 redis
- gate micro web:
cd gate/micro
go build
./micro web
- web:
cd web/dd
go build
./dd
- gid:
cd srv/gid
go build
./gid
- passport:
cd srv/passport
go build
./passport
- user:
cd srv/user
go build
./user
- gate micro api:./micro api --handler=api
- api:
cd api/dd
go build
./dd
4. 测试:使用客户端工具或代码测试API接口,验证服务的正确性。示例如下(web服务默认端口8082,api服务默认端口8080):
curl -X POST \
'http://localhost:8082/dd/passport/SmsLogin' \
-H 'Content-Type: application/json' \
-d '{
"appid": 1,
"plat": 1,
"mobile": "13705918888",
"code": "123456"
}'
5. 部署:将服务部署到生产环境,进行监控和维护。
注意事项
- 安全性:确保服务间的通信安全,防止敏感信息泄露。
- 性能监控:使用监控工具如Prometheus、Grafana对服务进行性能监控。
- 错误处理:确保服务能够正确处理错误,并返回友好的错误信息。
- 日志管理:使用日志库如logrus、zap进行日志管理,方便排查问题。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】