{"id":15320372,"url":"https://github.com/cocainecong/micro-todolist","last_synced_at":"2025-04-13T06:36:45.237Z","repository":{"id":50281933,"uuid":"446629540","full_name":"CocaineCong/micro-todoList","owner":"CocaineCong","description":"Go语言微服务实战，go-micro+gin+gorm+rabbitMQ 构造简单备忘录，包括ETCD作为服务发现，JWT鉴权，降级熔断等等","archived":false,"fork":false,"pushed_at":"2024-01-31T12:34:56.000Z","size":341,"stargazers_count":158,"open_issues_count":4,"forks_count":48,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-26T23:05:45.923Z","etag":null,"topics":["etcd","gin","go","go-micro","golang","gorm","hystrix","microservice","mysql","rabbitmq","redis"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CocaineCong.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2022-01-11T00:48:03.000Z","updated_at":"2025-03-20T01:22:40.000Z","dependencies_parsed_at":"2024-01-31T13:50:18.392Z","dependency_job_id":null,"html_url":"https://github.com/CocaineCong/micro-todoList","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CocaineCong%2Fmicro-todoList","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CocaineCong%2Fmicro-todoList/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CocaineCong%2Fmicro-todoList/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CocaineCong%2Fmicro-todoList/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CocaineCong","download_url":"https://codeload.github.com/CocaineCong/micro-todoList/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248675303,"owners_count":21143763,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["etcd","gin","go","go-micro","golang","gorm","hystrix","microservice","mysql","rabbitmq","redis"],"created_at":"2024-10-01T09:08:20.372Z","updated_at":"2025-04-13T06:36:45.211Z","avatar_url":"https://github.com/CocaineCong.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# micro-todoList\n# Go-Micro V4 + RabbitMQ 构造简单备忘录\n\n将原项目的micro的v2升到v4，服务发现使用etcd，支持熔断机制，token验证，网关和各模块之间的rpc通信等\n\n# 项目的详细博客地址\n\n**[用户模块](https://blog.csdn.net/weixin_45304503/article/details/122286980)**\n\n**[备忘录模块](https://blog.csdn.net/weixin_45304503/article/details/122301707)**\n\n# 项目的视频介绍地址\n\n[Go-Micro+RabbitMQ 构建简单备忘录](https://www.bilibili.com/video/BV1h44y1L7LN)\n\n# 项目的主要功能介绍\n\n- 用户注册登录 ( jwt-go鉴权 )\n- 新增/删除/修改/查询 备忘录\n\n# 项目主要依赖：\n\n**Golang V1.18**\n\n- Gin\n- Gorm\n- mysql\n- go-micro\n- protobuf\n- grpc\n- amqp\n- ini\n- hystrix\n- jwt-go\n- crypto\n\n# 项目结构\n## 1.micro_todolist 项目总体\n```\nmicro-todolist/\n├── app                   // 各个微服务\n│   ├── gateway           // 网关\n│   ├── task              // 任务模块微服务\n│   └── user              // 用户模块微服务\n├── bin                   // 编译后的二进制文件模块\n├── config                // 配置文件\n├── consts                // 定义的常量\n├── doc                   // 接口文档\n├── idl                   // protoc文件\n│   └── pb                // 放置生成的pb文件\n├── logs                  // 放置打印日志模块\n├── pkg                   // 各种包\n│   ├── ctl               // 用户操作\n│   ├── e                 // 统一错误状态码\n│   ├── logger            // 日志\n│   └── util              // 各种工具、JWT等等..\n└── types                 // 定义各种结构体\n```\n\n## 2.gateway 网关部分\n```\ngateway/\n├── cmd                   // 启动入口\n├── http                  // HTTP请求头\n├── handler               // 视图层\n├── logs                  // 放置打印日志模块\n├── middleware            // 中间件\n├── router                // http 路由模块\n├── rpc                   // rpc 调用\n└── wrappers              // 熔断\n```\n\n## 3.user \u0026\u0026 task 用户与任务模块\n```\ntask/\n├── cmd                   // 启动入口\n├── service               // 业务服务\n├── repository            // 持久层\n│    ├── db               // 视图层\n│    │    ├── dao         // 对数据库进行操作\n│    │    └── model       // 定义数据库的模型\n│    └── mq               // 放置 mq\n├── script                // 监听 mq 的脚本\n└── service               // 服务\n```\n\n\n`config/config.ini`文件，直接将 `config.ini.example--\u003econfig.ini` 就可以了\nconf/config.ini 文件\n```ini\n[service]\nAppMode = debug\nHttpPort = :4000\n\n[mysql]\nDb = mysql\nDbHost = 127.0.0.1\nDbPort = 3306\nDbUser = micro_todolist\nDbPassWord = micro_todolist\nDbName = micro_todolist\nCharset = utf8mb4\n\n[rabbitmq]\nRabbitMQ = amqp\nRabbitMQUser = guest\nRabbitMQPassWord = guest\nRabbitMQHost = localhost\nRabbitMQPort = 5672\n\n[etcd]\nEtcdHost = localhost\nEtcdPort = 2379\n\n[server]\nUserServiceAddress = 127.0.0.1:8082\nTaskServiceAddress = 127.0.0.1:8083\n\n[redis]\nRedisHost = localhost\nRedisPort = 6379\nRedisPassword = micro_todolist\n```\n\n\n# 运行简要说明\n1. 启动环境\n\n```shell\nmake env-up\n```\n\n2. 运行服务\n\n```shell\nmake run\n```\n\n**注意：**\n1. 保证rabbitMQ开启状态\n2. 保证etcd开启状态\n3. 依次执行各模块下的main.go文件\n\n**如果出错一定要注意打开etcd的keeper查看服务是否注册到etcd中！！**\n\n# 导入接口文档\n\n打开postman，点击导入\n\n![postman导入](doc/1.点击import导入.png)\n\n选择导入文件\n![选择导入接口文件](doc/2.选择文件.png)\n\n![导入](doc/3.导入.png)\n\n效果\n\n![postman](doc/4.效果.png)\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcocainecong%2Fmicro-todolist","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcocainecong%2Fmicro-todolist","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcocainecong%2Fmicro-todolist/lists"}