Go-kit
Go-kit是一套强大的微服务开发工具集,解决分布式开发过程中所遇到的问题,使用transport、endpoint和service三层结构组织项目:
- transport层,指定项目提供服务的方式,比如http或者grpc等
- endpoint层,负责接受请求并返回响应,对于每一个服务接口,endpoint层都使用一个抽象的endpoint来表示
- service层,提供具体的业务实现接口,endpoint层中的endpoint通过调用service层的接口方法处理请求
对象概念:
- VO(View Object): 视图对象,用于展示层
- DTO(Data Transfer Object): 数据传输对象,泛指用于展示层与服务层之间的数据传输对象
- DO(Domain Object): 领域对象,就是从现实世界抽象出来的业务实体
- PO(Persistent Object): 持久化对象,它跟持久化的数据结构形成一一对应的映射关系
简单项目示例:
1 | ├── README.md |
2 | ├── go.mod |
3 | ├── main.go 应用主入口 |
4 | └── user |
5 | ├── dao 提供数据持久化能力 |
6 | ├── endpoint 负责接受请求,并调用service业务接口处理请求 |
7 | ├── redis 提供redis数据层能力 |
8 | ├── service 提供主要业务实现接口 |
9 | └── transport 对外暴露项目的服务接口 |