微服务的拆分原则
1.单一职责原则 单个服务只做一块或一类功能
2.共同封闭原则 变化仅限服务内
3.高内聚低耦合原则 内紧而外松
4.单向依赖原则 服务间单向依赖,避免或减少循环依赖
微服务开发注意事项
1.需求设计中避免出现微服务跨库关联的业务,如必须可通过设计冗余字段、数据定时同步、借助公共中间件存储。
2.控制整个链路不超过三层,网关就是一层,每增加一层就会多一次restful请求,一次大概耗时100ms
3.避免单个交易出现过多的restful请求
4.避免出现分布式事务
工程命名风格统一 项目名-工程名
工程结构风格统一 项目名-工程名-定位
starter 启动类及全部配置信息
core 核心业务代码
client 对外提供的sdk
api dto对象及接口类
微服务端口规划:
基础组件 约定俗成
中间件 约定俗成
技术组件 公司统一
业务应用 从某一应用开始,依次递增
微服务api规范:
遵从restful API 设计规范
url 主体部分,字母小写,使用/api 打头 ,参数部门用小驼峰命名方式
为了兼容 http1.0 使用get post 两种请求方式
GET list 查询列表 info 查询详情
POST save新增 delete删除 update 修改
有效性校验,除前端有相应校验外,接口层面也必须有自己的校验规则,可以借助于 hibernate-validator 开发的 yusp-commons-starter-validator 组件实现
git提交规范: 推荐idea下使用Git Commit Template 插件辅助做 git commit message编写