什么是微服务
微服务架构(MSA)的基础是将单个应用程序开发为一组小型独立服务,这些独立服务在自己的进程中运行,独立开发和部署。如图所示:
这些服务使用轻量级 API 通过明确定义的接口进行通信。这些服务是围绕业务功能构建的,每项服务执行一项功能。由于它们是独立运行的,因此可以针对各项服务进行更新、部署和扩展,以满足对应用程序特定功能的需求。
核心组件分析
Spring Cloud Alibaba 默认提供了如下核心功能(先了解):
服务限流降级:
默认支持 WebServlet、OpenFeign、RestTemplate、Spring Cloud Gateway, RocketMQ 限流降级功能的接入,可以在运行时通过控制台实时修改限流降级规则,还支持查看限流降级 Metrics 监控。
服务注册与发现:
基于Spring Cloud 服务注册与发现标准,借助Nacos进行实现,默认还集成了 Ribbon 的支持。
分布式配置管理:
基于Nacos支持分布式系统中的外部化配置,配置更改时自动刷新。
消息驱动能力:
基于Spring Cloud Stream 为微服务应用构建消息驱动能力。
分布式事务:
使用 @GlobalTransactional 注解, 高效并且对业务零侵入地解决分布式事务问题。。
分布式任务调度:
提供秒级、精准、高可靠、高可用的定时(基于 Cron 表达式)任务调度服务。同时提供分布式的任务执行模型,如网格任务。网格任务支持海量子任务均匀分配到所有 Worker上执行。
解决方案架构设计
解决方案架构设计
基于Spring Cloud Alibaba实现的微服务,解决方案设计架构如图所示:
SpringBoot2.2版本以后默认单元测试4
享元模式(Flyweight Pattern)主要用于减少创建对象的数量,以减少内存占用和提高性能。 这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式。 享元模式尝试重用现有的同类对象,如果未找到匹配的对象,则创建新对象。 我们将通过创建 5 个对象来画出 20 个分布于不同位置的圆来演示这种模式。 由于只有 5 种可用的颜色,所以 color 属性被用来检查现有的 Circle 对象。
核心知识点
1.微服务架构诞生的背景(软件即服务,将一个大型软件 ,拆分若干个小系统)
2.微服务架构解决方案(大厂基本自研)
3.微服务架构下Maven聚合项目的创建方式(Maven聚合项目~资源服用,简化编译,打包,部署方式)
4.微服务架构入门聚合项目创建(父工程和子工程)
5.微服务中聚合工程之间的应用设计(将一个工程作为依赖添加到其他工程~重点是坐标
工程中单元测试案例分析及实践)
常见问题分析
1.微服务需要哪些组件:服务注册,发现配置,限流降级,访问入口管理,分布式事务管理等
2.如何定义JDK编译和运行版本 配置maven插件:maven-compiler-piugin
3.@Autowired注解描述属性时,系统底层执行DI的过程是怎样的
创建Bug分析
1.maven配置错误(idea中指定你本地库)
2.maven依赖无法下载(首先要确保你的依赖是正确,maven配置正确,都正确就放大招)
3.单元测试@Test注解引入错误(junit4,junit5)
4.单元测试类写错了位置