什么是微服务

由原来的单体服务按照业务需求/模块将一个个业务模块拆分成一个个“服务”,即微服务,最终将这些“微服务”统一集合成为一个“服务集群”,但这是不够的,我们还需要去考虑这些“微服务”之间怎么构建联系,怎么去管理,怎么去部署,怎么去访问等,这些都是由微服务提供解决方案,微服务包含很多技术栈负责不同的方面,最终这些技术栈都被整合一个方案,即微服务解决方案

image-20230116194132052

服务架构演变

单体——分布式——微服务

image-20230116181051535

微服务技术栈

整体逻辑

image-20230116183112281

分门别类技术栈

image-20230116183211197

微服务技术对比

  • 早期国内对微服务没有真正的认识,啊里推出了个Dubbo(主要是远程调用,并不是真正完整的微服务——没有实现自己专业的注册中心而是使用一些缓存中间件来代替)❌
  • SpringCloud真正实现了理想的微服务架构,有自己的注册中心、兼容性更强的服务远程调用协议、服务网关和服务监控✔️
  • 最近些年阿里巴巴奋起直追,基于SpringCloud体系,推出了SpringCloudAlibaba,属于Spring技术体系的一部分(并致力整合、兼容Dubbo原先的一些特性)✔️

image-20230116182238996

企业选择方案

image-20230116181924128

微服务治理-服务拆分、调用、统一

  • 服务注册发现
  • 远程调用
  • 配置管理
  • 统一网关

Docker容器技术

  • Docker原理
  • Docker使用
  • Dockerfile
  • DockerCompose

MQ异步通信

  • 同步和异步
  • MQ技术选型
  • SpringAMQP
  • 消费者限流

Elasticsearch分布式搜索

  • ES的基本用法
  • 中文、拼音搜索
  • 聚合和统计
  • 高可用集群

微服务保护

  • 流量控制
  • 系统保护
  • 熔断降级
  • 服务授权

分布式事务

  • 分布式事务
  • TCC模型
  • AT模型
  • Seata实战

分布式缓存

  • 数据持久化
  • 主从复制
  • Lua脚本
  • Redis集群

多级缓存

  • OpenResty
  • Lua
  • 多级缓存
  • 缓存安全问题

可靠消息服务

  • 消息可靠性
  • 消息幂等性
  • 延迟消息
  • MQ集群