一、什么是微服务
- 微服务是一种架构风格
- 一个应用拆分为一组小型服务
- 每个服务运行在自己的进程内,也就是可独立部署和升级
- 服务之间使用轻量级HTTP交互
- 服务围绕业务功能拆分
- 可以由全自动部署机制独立部署
- 去中心化,服务自治。服务可以使用不同的语言、不同的存储技术
二、微服务所需要的技术
- 服务调用
- 服务降级
- 服务注册与发先
- 服务熔断
- 负载均衡
- 服务消息队列
- 服务网关
- 配置中心管理
- 自动化构建部署
- 服务监控
- 全链路追踪
- 服务定时任务
- 调度操作
以京东的微服务架构为例:从下图我们可以看到,这一个商城的大服务被拆分成很多个比较小的服务(微服务),微服务之间相互配合组成商城这个大服务。
三、Spring Cloud 介绍
Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。
就是 Spring Boot 不是什么新的框架,它默认配置了很多框架的使用方式,就像 maven 整合了所有的 jar 包,Spring Boot 整合了所有的框架(不知道这样比喻是否合适)。
Spring Boot 简化了基于 Spring 的应用开发,通过少量的代码就能创建一个独立的、产品级别的 Spring 应用。Spring Boot 为 Spring 平台及第三方库提供开箱即用的设置,这样你就可以有条不紊地开始。
Spring Boot 的核心思想就是约定大于配置,多数 Spring Boot 应用只需要很少的 Spring 配置。采用 Spring Boot 可以大大的简化你的开发模式,所有你想集成的常用框架,它都有对应的组件支持。
四、Spring Cloud 技术栈
五、组件的停更说明
服务注册中心 (后期我们会经常使用阿里巴巴的Nacos)
× Eureka
√ Zookeeper
√ Consul
√ Nacos
服务调用 (两个目前都能使用)
√ Ribbon
√ LoadBalancer
服务调用2 (这两个组件其实是类似一个东西)
× Feign
√ OpenFeign
服务降级 (豪猪哥Sentienl 在国内用的比较多 resilience4j在国外用的比较多)
× Hystrix
√ resilience4j
√ sentienl
服务网关
× Zuul
! Zuul2
√ gateway
服务配置 (同样使用Nacos 简单方便)
× Config
√ Nacos
服务总线 (同上)
× Bus
√ Nacos