1、工程架构
层次设计大致分为:Remote层、Manager层、Service层、Cache层、DAO层、DTO\DO。
各层次功能描述:
- Remote层:对外暴露dubbo接口;
- Manager层:多表业务;
- Service层:单表业务;
- Cache层:缓存业务;
- DAO层:数据库访问操作;
- DTO:暴露服务操作对象;
- DO:数据库操作对象;
2、开发规范
- Remote层:只允许操作Manager层和Service层,命名规范为Remote*Service;
- Manager层:只允许Service 层,可以使用缓存和事务;
- Service层:只允许DAO 层和Cache层,一个Service对应一个DAO;
- Cache层:只允许DAO 层,封装有降级策略的业务;
3、注意事项:
对外暴露的服务(Remote层),不允许抛出异常(异常需要发送堆栈信息),减小网络开销;
消费者获取DubboResult后,必须先判断调用是否成功,成功则进行正常业务处理,失败应该抛出异常或其他处理;
服务端在RemoteService层应该始终返回DubboResult;
内部Service层的业务异常应该使用BusinessException