微服务实战:基于Go的Micro-TodoList项目搭建指南
项目概述
Micro-TodoList 是一个用 Go 语言编写的微服务项目,结合 go-micro、gin、gorm、rabbitMQ 等技术栈构建的一个简单备忘录系统。此项目涵盖了服务发现(使用 ETCD)、JWT 认证、熔断器设计等微服务架构的关键元素。
1. 项目目录结构及介绍
Micro-TodoList 的项目结构精心设计,便于扩展和维护:
micro-todolist
│
├── app # 微服务模块,包括网关、任务和服务模块
│ ├── gateway # API 网关服务
│ ├── task # 任务处理微服务
│ └── user # 用户服务
├── bin # 编译后的可执行文件存放目录
├── config # 配置文件目录
│ └── config.ini # 主配置文件
├── consts # 常量定义
├── doc # 文档资料
├── idl # IDL文件,用于gRPC和protobuf
│ └── pb # 生成的protobuf文件
├── logs # 日志文件目录
├── pkg # 包集合,包含工具类、JWT处理等
│ ├── ctl # 控制器相关
│ ├── e # 错误码定义
│ ├── logger # 日志处理
│ └── util # 公共工具函数
└── types # 数据类型定义
# 重要文件解析:
# - gateway 目录下的 cmd/main.go:网关服务启动入口
# - user/task 下的 cmd/main.go:各自服务的启动脚本
# - config/config.ini:基础配置信息
2. 项目启动文件介绍
网关服务启动:
位于 app/gateway/cmd/main.go
,这是启动API网关的入口点,负责接收HTTP请求,并转发至相应的微服务。
用户服务与任务服务启动:
分别在 app/user/cmd/main.go
和 app/task/cmd/main.go
,这些文件各自负责启动用户模块与任务模块的服务进程。
启动流程:
- 确保环境:首先需启动ETCD和rabbitMQ服务。
- 环境准备:通过
make env-up
命令设置开发环境。 - 运行服务:使用
make run
来启动所有必要的服务,确保依次执行各个模块下的main.go
文件。
3. 项目的配置文件介绍
配置文件主要位于 config/config.ini
。该文件包含了服务运行的基础配置,如:
[service]
区块定义了服务模式和端口。[mysql]
存储数据库连接参数。[rabbitmq]
提供了消息队列连接信息。[etcd]
设置服务发现的相关配置。[server]
指定了不同服务的地址。[redis]
用于缓存或消息存储的Redis配置。
使用时,可以通过复制 conf/config.ini.example
到 config.ini
并按实际需求调整参数来完成配置。
以上就是Micro-TodoList项目的基本结构、启动方式与配置指导。在部署或开发过程中,确保仔细阅读配置文件,并遵循项目文档中提到的步骤来正确启动与使用服务。