微服务学习
1. 微服务技术栈
- 微服务治理
- 注册发现
- 远程调用
- 负载均衡
- 配置管理
- 流量控制
- 系统保护
- 服务授权
- 熔断降级
- 分布式事务
- TCC模型
- AT模型
- Seata
- 异步通信技术
- MQ消息模型
- SpringAMQP
- 消息堆积问题
- 消息可靠性
- 仲裁队列
- 延迟队列
- 镜像集群
- 数据持久化
- 缓存技术
- 缓存穿透,雪崩
- Redis主从复制
- 缓存数据同步
- 多级缓存分层
- Lua脚本
- Redis数据结构
- SpringDataRedis
- OpenResty
- Nginx本地缓存
- Redis持久化
- Redis分片集群
- DevOps
- Docker
- Kubernetes
- Jenkins
- Dockerfile
- DockerCompose
- GrayLog
- SkyWalking
- 搜索技术
- DSL语句
- ES集群
- RestAPI
- 竞价排名
- 集群脑裂
- 自动补全
- 拼音分词
- 地理坐标
2. 认识微服务
2.1 单体架构
单体架构:将业务的所有功能集中在在一个项目中开发,打成一个包部署。
- 优点
- 架构简单
- 部署成本低
- 缺点
- 耦合度高
2.2 分布式架构
分布式架构:根据业务功能对系统进行拆分,每个业务模块作为独立项目开发,称为一个服务。
- 优点
- 降低服务耦合
- 有利于服务升级拓展
- 缺点
- 架构复杂
但是分布式架构会有一些问题:
比如服务治理问题。
各个服务之间,不能相互调用。
为了解决这些分布式架构问题,出现了各种各样的技术:
比如WebService,ESB,Hession,Dubbo,SpringCloud,但是最火的就是微服务方案。
2.3 分布式架构方案——微服务
微服务是一种经过良好架构设计的分布式架构方案。微服务架构有以下特征:
- 单一职责:微服务拆分粒度更小,每一个服务都对应唯一的业务能力,做到单一职责,避免重复业务开发。
- 面向服务:微服务对外暴露业务接口。
- 自治:团队独立、技术独立、数据独立、部署独立。
- 隔离性强:服务调用做好隔离、容错、降级、避免出现级联问题
2.4 微服务技术框架
微服务这种方案需要技术框架来落地,全球的互联网公司都在尝试自己的微服务落地技术。在国内最知名的就是SpringCloud和阿里巴巴的Dubbo。
微服务技术架构 :
微服务技术框架实现对比 :
企业需求:
2.5 SpringCloud
- SpringCloud是目前国内使用最多的微服务框架。官网:spring.io/projects/spring-cloud。
- SpringCloud集成了各种微服务功能组件,并基于SpringBoot实现了这些组件的自动装配,从而提供了良好的开箱即用体验。
SpringCloud把那些开源的框架整合进来,通过SpringBoot实现自动装配。 无需要复杂的配置。
- SpringCloud与SpringBoot的版本兼容关系如下: