前言
不分层
当只有两个服务的时候,好好看的清楚,当有四个服务相互依赖的时候,已经晕了
当你有更多服务的时候.....你会?想死,
生产者与消费者分层
- 生产者与消费者,不是绝对的一一对应的。
- 生产者不能调用生产者,消费者也不能调用消费者。意思就是同层之间不允许相互调用,一旦相互调用,等于没有分层了。
- 生产者消费者可以有不同人开发
- 分层有利于业务演进,分离,解耦,
当系统体量大了怎么办?
部署目录规范
- 不部署在/home下的用户目录,这样不利于扩展维护等
- 在/(根) 目录下创建属于自己的目录。分别创建消费者,生产者,业务方三个目录
- 在对应目录下为服务创建各自的服务名
- 在服务目录创建log目录用于存放日志,config存放配置文件
.
├── business
│ └── user
│ ├── config
│ └── log
├── consume
│ └── user
│ ├── config
│ └── log
└── producer
└── user
├── config
└── log
微服务架构项目结构
模块依赖图
- entity
- common
- service Interface
- provider
- consumers
- service-consumers
- business
- task
项目结构
包路径应该定义为:
- com.dome.user.entity
- com.dome.user.common
- com.dome.user.service
- com.dome.user.provider
- com.dome.user.consumers
- com.dome.user.service-consumers
- com.dome.user.business
- com.deme.user.task