3-2 单体应用
优点:
- 架构简单
- 开发、测试、部署方便
缺点:
- 复杂性高
- 部署慢,频率低
- 扩展能力受限
- 阻碍技术创新
3-3 微服务
特性:
- 每个微服务可独立运行在自己的进程中;
- 一系列独立运行的微服务共同构建起整个系统;
- 每个服务为独立的业务开发,一个微服务只关注某个特定的功能,例如订单管理、用户管理;
- 可使用不同的语言与数据存储技术;
- 微服务之间通过轻量的通信机制(socket就是重量的)进行通信,例如通过REST API进行调用;
- 自动化部署机制
优点:
- 单个服务更易于开发、维护;
- 单个服务启动较快;
- 局部修改容易部署;
- 技术栈不受限;
- 按需伸缩;
缺点:
- 运维要求高;
- 分布式固有的复杂性:网络延迟、分布式事务等;
- 重复劳动:可将util包封装引入;
适用场景:
- 大型、复杂的项目;
- 有快速迭代需求的项目;
- 访问压力大
不适用微服务的场景:
- 业务稳定
- 迭代周期长
3-13 整合Lombok简化代码编写
常见引入和使用:https://www.jianshu.com/p/2543c71a8e45
3-14 解决IDEA的红色警告
解决方法:参考https://www.imooc.com/article/287865
建议使用lombok的方式