项目简介
本项目是基于Go语言的微服务学习项目,致力于让开发者通过实践掌握微服务架构的设计与实现。项目覆盖服务注册与发现、RPC通信、消息队列、缓存、日志收集、认证与权限管理等微服务核心功能,还借助Docker进行容器化部署,展示了微服务应用的构建与运行方式。
项目的主要特性和功能
- 服务注册与发现:利用gRPC实现服务间通信,通过服务注册与发现机制动态管理服务实例。
- RPC通信:采用gRPC实现服务间的远程过程调用,支持四种不同的gRPC通信模式。
- 消息队列:借助消息队列实现不同服务间的异步通信,提高系统的解耦性和扩展性。
- 缓存:使用Redis作为缓存中间件,提升系统响应速度。
- 日志收集:通过日志中间件实现日志的收集与管理,方便系统监控与故障排查。
- 认证与权限管理:运用JWT(JSON Web Token)进行用户认证,通过Casbin中间件实现权限管理。
- 请求限流:通过限流中间件限制请求频率,防止系统过载。
- Docker容器化:使用Docker进行容器化部署,支持多副本服务的高可用性。
安装使用步骤
环境准备
- 确保已安装Go语言环境(建议使用Go 1.16及以上版本)。
- 安装Docker和Docker Compose,用于容器化部署。
下载项目源码
bash
cd go_micro_learn
配置依赖
- 设置Go模块代理:
bash export GOPROXY=https://goproxy.io,direct export GO111MODULE=on
- 下载项目依赖:
bash go mod vendor
构建Docker镜像
- 构建项目镜像:
bash docker build -t go_micro_learn:1.0 .
运行项目
- 使用Docker Compose启动服务:
bash docker-compose up -d
- 或者直接运行Docker容器:
bash docker run -p 8086:8086 go_micro_learn:1.0
测试服务
- 使用
curl
命令测试服务:bash curl -XPOST -d'{"S":"hello, world"}' localhost:8080/hello
查看日志
- 查看容器日志:
bash docker logs <container_id>
扩展与部署
- 使用Docker Swarm进行多副本部署:
bash docker service create --replicas 3 -p 8086:8086 --name go_micro_learn go_micro_learn:1.0
通过以上步骤,可成功运行并测试本项目的微服务功能。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】