微服务技术栈01-微服务整体介绍

1.微服务介绍

1.1.微服务是什么

  • 微服务是分布式架构的一种实践方案
  • 分布式架构即要把服务做拆分,拆分的过程中会产生各种问题,这些问题需要我们解决。
  • 例如:SpringCloud就是用于解决服务拆分后的服务治理问题,其他的问题也有各自的解决方案。
    在这里插入图片描述

1.2.微服务包括哪些组件

1、服务集群

  • 一个单体项目,代码高度耦合,不便管理
  • 所以一个大的互联网项目,一般都会将单体项目拆分成多个独立的项目
  • 每一个项目完成一部分功能和业务,对每一个独立开发和部署,我们将拆分后的每一个项目称为一个服务。
    在这里插入图片描述
    在这里插入图片描述

2、注册中心

  • 当服务特别多的时候,形成服务集群。
  • 而一个业务往往会用到多个服务,当业务逐渐复杂起来后,各个服务之间的调用关系也会越来越复杂,这么复杂的调用关系靠人记录和维护是不可能的,所以就需要一个组件:注册中心。
  • 注册中心负责记录微服务中每一个服务的ip、端口、能处理的业务功能等等。
  • 当一个服务需要调用另外一个服务时,只需要找注册中心即可拉取对应的服务信息,进而完成调用。
    在这里插入图片描述

3、配置中心

  • 随着服务越来越多,每一个服务都有自己的配置文件,要修改一个服务的配置,是不可能人为更改对应的配置文件的,所以需要一个组件:配置中心。
  • 配置中心可以统一的管理微服务里成千上百的配置,如果需要变更一些配置,只需要找配置中心即可,配置中心会通知相关的服务,实现配置的热更新。
    在这里插入图片描述

4、服务网关

  • 服务搭建好,用户来访问的时候,服务太多了,用户不知道该访问哪个服务,而且用户也不一定有权限访问某些服务,所以就需要一个组件:服务网关。
  • 服务网关:对用户的身份做校验、将用户的请求路由到对应的服务上,而且还可以做一些负载均衡。
    在这里插入图片描述

5、分布式缓存

  • 各个服务处理业务,该访问数据库时就访问数据库,数据库肯定要部署成集群。
  • 但是数据库集群依旧扛不住用户的访问量,所以还需要一个组件:分布式缓存。
  • 分布式缓存,将数据库的部分数据放入内存,提高响应速度。
  • 且缓存也要部署成分布式缓存。
    在这里插入图片描述

6、分布式搜索

业务中可能还会有一些复杂的搜索功能,简单查询可以走缓存,但是海量数据的复杂搜索、统计、分析,缓存做不了,就需要一个组件:分布式搜索。
在这里插入图片描述

7、异步消息队列

  • 分布式服务中,一个业务往往会跨越多个服务,比如一个请求调用了服务A,A又调用了B,B又调用了C,整个业务的链路就会很长,那么调用时长=每个服务时长之和,性能有所下降。因此需要一个异步消息队列来解决这个问题。
  • 异步消息队列,请求来了,调用了服务A,服务A要调用B,不会去直接调用,而是发个消息通知B去干活,A自己直接就结束了,业务链路就变短了,响应时间也缩短了,吞吐能力也就变强了。
  • 所以异步通信可以大大提高并发能力,在秒杀等场景下可以起到很好的作用。
    在这里插入图片描述

8、分布式日志服务

  • 这么庞大的微服务集群,如果出了异常、问题,很难定位,所以需要一个组件:分布式日志服务。
  • 分布式日志服务,可以统计整个集群中成千上百个服务的运行日志,统一进行存储、统计、分析。

9、系统监控、链路追踪

  • 系统监控、链路追踪组件,可以监控记录每一个服务节点的运行状态、CPU负载、内存占用等情况
  • 一旦出了什么问题,可以立即定位到具体的某个方法、栈信息,可以快速定位异常所在。

10、持续化集成

  • 这么庞大的系统,不可能手动的部署,所以要利用类似于Jenkins的工具进行自动化编译。
  • 然后使用docker进行打包,形成镜像。
  • 再基于kubernetes、rancher等工具实现自动化的部署。
  • 这一套就称为持续集成。

1.3 认识微服务

1.3.1.服务架构演变

1、单体架构

在这里插入图片描述

2、分布式架构

在这里插入图片描述
分布式架构虽有很多优点,但是也带来了很多问题。
在这里插入图片描述
为了解决分布式拆分带来的问题,涌现了很多的解决方案,不过近几年最火的还是微服务方案。
微服务架构是分布式架构的一种实现。

3、微服务架构的特征

在这里插入图片描述

4、总结

在这里插入图片描述

1.3.2 微服务技术对比

1、微服务的不同实现技术框架

在这里插入图片描述
既然都是微服务,他们包含的组件、实现的功能基本都是一致的,只不过实现的方式有所不同。

2、对比微服务技术框架

Dubbo、SpringCloud、SpringCloudAlibaba
在这里插入图片描述

3、企业开发用哪种?

在这里插入图片描述
上面4种都有可能遇到

1.3.3 SpringCloud

SpringCloud是目前国内使用最广泛的微服务框架。官网地址:https://spring.io/projects/spring-cloud
SpringCloud集成了各种微服务功能组件,并基于SpringBoot实现了这些组件的自动装配,从而提供了良好的开箱即用体验。
其中常见的组件包括:
在这里插入图片描述

  • 原生的微服务组件使用非常繁琐,而SpringBoot擅长整合第三方技术,所以SpringCloud就基于SpringBoot,对原生的微服务组件进行了整合,并且可以做到自动装配,大大简化了微服务的开发。
  • SpringCloud底层是基于SpringBoot的,所以他们有严格的版本对应关系。如下:
    在这里插入图片描述
    我们课堂学习的版本是 Hoxton.SR10,因此对应的SpringBoot版本是2.3.x版本。
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值