简单的介绍了SpringCloud中的微服务技术栈。

微服务技术栈

SpringCloud01-微服务技术栈

  • 微服务拆分,形成微服务集群

  • 注册中心:拉取活注册服务信息(记录微服务的ip端口等,微服务调用关系访问注册中心获得对方信息)

  • 配置中心:拉取配置信息(统一的管理所有微服务的配置,实现配置的热更新)

  • 服务网关组件:身份校验,将请求路由到服务,可以进行负载均衡

  • 分布式缓存:实现高并发

  • 分布式搜索:进行复杂的搜索

  • 消息队列:异步通信,提高服务并发

  • 分布式日志服务:统计整个集群的日志,统一存储,统计进行分析

  • 系统监控链路追踪:实时监控整个集群中每个节点的运行状态,一旦出现问题可以快速定位异常所在

  • 自动化部署(Jenkins)

  • 打包(Docker) kuebernetes RANCHER

微服务简介

单体架构

将业务的所有功能集中在一个项目中开发,打成一个包部署。

优点:

  • 架构简单

  • 部署成本低

缺点:

  • 耦合度高

分布式架构

根据业务功能对系统进行拆分,每个业务模块作为独立项目开发,称为一个服务。

优点:

  • 降低服务耦合
  • 有利于服务升级拓展

缺点:

  • 服务治理
    • 服务拆分粒度?
    • 服务集群地址如何维护?
    • 服务之间如何实现远程调用?
    • 服务健康状态如何感知?

微服务架构特征

微服务是一种经过良好架构设计的分布式架构方案,微服务架构特征:

  • 单一职责:微服务拆分粒度更小,每一个服务都对应唯一的业务能力,做到单一职责,避免重复业务开发
  • 面向服务:微服务对外暴露业务接口
  • 自治:团队独立、技术独立、数据独立、部署独立
  • 隔离性强:服务调用做好隔离、容错、降级,避免出现级联问题

微服务结构

技术框架

  • SpringCloud

  • Dubbo

  • SpringCloudAlibaba

差异对比

Dubbo SpringCloud SpringCloudAlibaba
注册中心 zookeeper、Redis Eureka、Consul Nacos、Eureka
服务远程调用 Dubbo协议 Feign(http协议) Dubbo、Feign
配置中心 SpringCloudConfig SpringCloudConfig、Nacos
服务网关 SpringCloudGateway、Zuul SpringCloudGateway、Zuul
服务监控和保护 Dubbo-admin,功能弱 Hystrix Sentinel

SpringCloud

SpringCloud是目前国内使用最广泛的微服务框架。

SpringCloud基于SpringBoot

image-20231209195800727