摘要
微服务是将单体应用分拆成多个小体量的的高内聚低耦合的软件服务,可以采用不同的软件语言,不同的数据存储,每个小服务独立部署运行,服务间采用轻量级的通信机制,由不同的团队开发和维护,大大提高了软件的可维护性、扩展性。采用微服务架构,可以帮助我们很好的解决实际业务场景中的问题:
- 从组织层面讲,系统的分工更加明确,责任更加清晰。
- 按照业务来划分服务,单个服务代码量小,业务单一,更易于维护。
- 服务能力更专一,代码重复度降低,可复用性高,使服务调用更加简便。
- 服务之间耦合性低,可随时加入服务,剔除过时服务。
- 单个服务也可以弹性扩展,容错能力更强,
- 更贴合云时代背景的软件开发运维环境,高效自动化构建部署。
- 数据存储解耦,不必将所有数据集中在一个大库中,不易拆分扩容。
本专栏主要通过介绍spring底层原理和springboot spring cloud相关原理来介绍微服务中的设计,帮助大家更好的掌握微服务的设计与实战。同时还有大厂面试问题,帮助大家在面试的过程中的更好的解释微服务的相关设计理念和原理。那专栏为什么选择 Spring Cloud?Spring Cloud 优点多多,从如下几点可以看出:
- 源于 Spring,社区活跃、生态丰富、功能稳定,资料多,遇到问题很容易找到解决方案
- 基于 Spring Boot,组件丰富,开箱即用,更便于业务落地。
- 相比于其它框架,Spring Cloud 对微服务周边环境的支持力度更大。
- 开发人员从业基数庞大,对于中小企业来讲,使用门槛较低。
- 相当一部分企业产品实践,已经在使用 Spring Cloud 作为技术选型来落地应用,支撑实际业务。
Spring Cloud 以全家桶的形式出现,提出了一整套的微服务解决方案,基本囊括了微服务体系中全部组件应用。每个组件又基于 Spring Boot 技术体系,提供开箱即用、约定优于配置的开发方案,可以使开发者们绕过繁琐的组件整合、环境配置等等,快速上手微服务。并且经过了 Spring 社区的整合,有大量的兼容性测试作基础,Spring Cloud 的稳定性是有保证的,我们也不用费尽心思的自己去拼微服务的各个积木块,而且也不一定比它更优秀。选择 Spring Cloud,不论是从开发人员储备、社区活跃度,还是厂商友好性、生态稳定性等角度考虑,都是做微服务架构选型一个良好选择。
一、spring知识学习脑图
二、Spring的源码专栏博文
2.1 Spring IOC源码分析
Spring——Spring IOC源码分析_庄小焱的博客
2.3 ApplicationContent与BeanFactory源码分析
2.4 Spring MVC源码分析
2.5 Spring Bean源码分析
2.6 Spring 循环依赖源码分析
2.7 Spring 注解源码分析
2.8 Spring 配置源码分析
2.9 Spring 事务源码分析
2.10 Spring 设计模式源码分析
2.11 Spring 缓存源码分析
2.12 Springboot的原理分析
三、Spring项目实战项目
Spring实战项目是利用深度学习并实战 spring boot
的项目。包括了springboot的实战项目。
- actuator(
监控
) - admin(
可视化监控
) - logback(
日志
) - aopLog(
通过AOP记录web请求日志
) - 统一异常处理(
json级别和页面级别
) - freemarker(
模板引擎
) - thymeleaf(
模板引擎
) - Beetl(
模板引擎
) - Enjoy(
模板引擎
) - JdbcTemplate(
通用JDBC操作数据库
) - JPA(
强大的ORM框架
) - mybatis(
强大的ORM框架
) - 通用Mapper(
快速操作Mybatis
) - PageHelper(
通用的Mybatis分页插件
) - mybatis-plus(
快速操作Mybatis
) - BeetlSQL(
强大的ORM框架
) - upload(
本地文件上传和七牛云文件上传
) - redis(
缓存
) - ehcache(
缓存
) - email(
发送各种类型邮件
) - task(
基础定时任务
) - quartz(
动态管理定时任务
) - xxl-job(
分布式定时任务
) - swagger(
API接口管理测试
) - security(
基于RBAC的动态权限认证
) - SpringSession(
Session共享
) - Zookeeper(
结合AOP实现分布式锁
) - RabbitMQ(
消息队列
) - Kafka(
消息队列
) - websocket(
服务端推送监控服务器运行信息
) - socket.io(
聊天室
) - ureport2(
中国式报表
) - 打包成
war
文件、集成 ElasticSearch(基本操作和高级查询
) - Async(
异步任务
) - 集成Dubbo(
采用官方的starter
) - MongoDB(
文档数据库
) - neo4j(
图数据库
) - docker(
容器化
) JPA多数据源
、Mybatis多数据源
、代码生成器
- GrayLog(
日志收集
) - JustAuth(
第三方登录
) - LDAP(
增删改查
) 动态添加/切换数据源
- 单机限流(
AOP + Guava RateLimiter
)/分布式限流(AOP + Redis + Lua
) - ElasticSearch 7.x(
使用官方 Rest High Level Client
) - HTTPS
- Flyway(
数据库初始化
) - UReport2(
中国式复杂报表
)
博文参考
https://github.com/2462612540/spring-boot-demo
标签:分析,服务,Spring,知识,脑图,源码,spring,Cloud From: https://blog.51cto.com/u_13643065/6169232