项目介绍
微服务架构实战系列实现一个简单的图书馆项目,只是为了验证、实现微服务的各项能力。此项目划分为三个微服务:
如图:
-
用户管理服务:提供用户管理的 Restful 接口,主要实现用户注册、根据用户ID或者 email 查询用户、查询用户所借书籍等功能。
-
书籍管理服务:提供书籍管理的 Restful 接口,主要实现保存书籍、根据书籍名称查询、书籍列表、用户借书等功能。
-
书籍管理内部服务:提供书籍管理的 rpc 接口,由用户管理服务通过 GRPC 调用此服务接口,主要实现了根据用户ID获取书籍列表的功能。
项目架构
架构图如下:
网关目前是自实现的简易版,与 Consul 结合实现 api 调用的转发,后续会加入优秀的开源网关,如:Kong 等。
服务注册与发现采用 Consul 框架,内置服务健康检查机制。
限流功能采用令牌桶算法实现。
日志采用 go-kit 自带的 log 功能。
熔断器采用 Hystrix 框架,后续会加入 Gobreaker