当前位置: 首页>后端>正文

微服务项目实战派 微服务 入门


文章目录

  • 微服务总体知识体系图
  • 什么是微服务
  • 微服务优势
  • 微服务架构体系内容
  • 注册中心
  • Eureka
  • 搭建EurekaServer
  • 服务注册
  • 服务发现
  • Ribbon负载均衡
  • Eureka-client均衡负载流程
  • 均衡负载策略
  • 懒加载与饥饿加载
  • Nacos注册中心
  • Nacos-server安装
  • 服务注册
  • 服务发现
  • 配置集群
  • 负载均衡配置
  • 统一网关
  • SpringCloudGateway
  • 搭建步骤
  • 断言工厂
  • 网关过滤器


微服务总体知识体系图

微服务项目实战派 微服务 入门,微服务项目实战派 微服务 入门_服务器,第1张

什么是微服务

微服务是一种经过良好架构设计的分布式架构方案,主要有以下几个特征:

  1. 单一职责:微服务拆分粒度更小,每个服务都对应唯一的业务能力。
  2. 面向服务:对外暴露接口,供其他服务使用
  3. 自治:每个服务做到技术独立,数据独立,部署独立
  4. 隔离性强:服务调用做好隔离、容错、降级,避免出现级联问题

微服务优势

分布式微服务解决的主要问题:单体地狱,一旦应用大起来了,所有模块都集中在单个服务上会存在以下问题:
5. 维护困难,一个项目编译打包就要花上几小时
6. 耦合度过高,牵一发动全身,修一个bug或者改一些地方会引出其他问题

这时就需要对功能模块进行拆分,每一个服务对应一个小模块。

微服务架构体系内容

一个微服务体系包含以下几个部分:

  1. 服务集群:单体根据功能进行拆分后根据不同的功能部署到不同的服务,就会组成服务集群。
  2. 注册中心:这么多服务中间肯定需要通信,那么服务的信息都由注册中心进行管理。如A服务需要与B服务进行通信,首先会访问注册中心获取B服务的地址,之后根据地址发起http或者rpc请求进行通信。
  3. 配置中心:管理各种服务的各种配置信息
  4. 数据库:这个不说了,单体,分布式都需要
  5. 分布式缓存:当并发量上去之后,就需要缓存降低数据库的压力
  6. 分布式搜索:复杂搜索,就需要分布式搜索功能
  7. 消息队列:一个请求需要过很多服务,时间为所有服务之和,消息队列就可以进行异步操作,起到削峰的作用,提高服务的并发。
  8. 服务网关:类似nginx,一个请求过来,需要看看这个请求要打到哪个服务上进行处理
  9. 分布式日志处理:当服务多起来后,查看日志成了很麻烦的事情,分布式日志就可以解决这个问题
  10. 系统链路追踪:监控每个服务的cpu,内存,负载,占用

注册中心

当A服务调用B服务时,如果使用硬编码的方式将地址写在代码内,会存在以下问题:

  1. B服务的环境地址是变化的
  2. B服务如果存在集群,那么无法进行均衡负载
  3. 消费者无法获取服务的健康状态

为了解决上述问题,就需要注册中心

Eureka

Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。

  • 消费者如何获取服务提供者的具体信息?
  • 服务提供者启动时向Eureka注册自己的信息
  • 消费者根据服务名称向Eureka获取信息
  • 多个服务者如何选择
  • 使用均衡负载算法
  • 消费者如何感知服务者的健康状态
  • 服务提供者会每隔30秒发送心跳
  • 如果心跳不正常就会删除
  • 消费者可以拉取服务者最新信息

搭建EurekaServer

微服务项目实战派 微服务 入门,微服务项目实战派 微服务 入门_负载均衡_02,第2张

Eureka自己就是一个微服务,可以进行集群,具体见官方文档!

服务注册

在每个微服务需要做如下配置,将信息注册到server

微服务项目实战派 微服务 入门,微服务项目实战派 微服务 入门_服务发现_03,第3张

服务发现

微服务项目实战派 微服务 入门,微服务项目实战派 微服务 入门_服务发现_04,第4张

业务代码如下:启动类:

微服务项目实战派 微服务 入门,微服务项目实战派 微服务 入门_微服务项目实战派_05,第5张

service类

微服务项目实战派 微服务 入门,微服务项目实战派 微服务 入门_服务器_06,第6张

Ribbon负载均衡

Eureka-client均衡负载流程

微服务项目实战派 微服务 入门,微服务项目实战派 微服务 入门_负载均衡_07,第7张

均衡负载策略

Eureka-client中使用Ribbon组件进行负载均衡

微服务项目实战派 微服务 入门,微服务项目实战派 微服务 入门_服务器_08,第8张

如何修改均衡负载规则?

微服务项目实战派 微服务 入门,微服务项目实战派 微服务 入门_微服务项目实战派_09,第9张

懒加载与饥饿加载

微服务项目实战派 微服务 入门,微服务项目实战派 微服务 入门_微服务项目实战派_10,第10张

Nacos注册中心

相较于Eureka,Nacos功能更多,使用范围更广

Nacos-server安装

具体自己看官方文档

服务注册

微服务项目实战派 微服务 入门,微服务项目实战派 微服务 入门_微服务_11,第11张

服务发现

同eureka

配置集群

一套微服务应用部署在多地时,某一地区的所有微服务就叫一个集群,如上海集群,杭州集群。这样做的目的主要为了容灾。

Nacos提供服务集群配置,当其中一个微服务调用另一个服务时,优先调用相同集群的服务,如果集群内服务都挂了,再访问不同集群的服务。这个策略需要进行负载均衡配置

微服务项目实战派 微服务 入门,微服务项目实战派 微服务 入门_服务发现_12,第12张

负载均衡配置

默认为轮询策略,当这么配置时,优先进行集群内调用

微服务项目实战派 微服务 入门,微服务项目实战派 微服务 入门_微服务项目实战派_13,第13张

统一网关

网关功能:

  1. 身份验证
  2. 均衡负载
  3. 请求限流

SpringCloudGateway

搭建步骤

微服务项目实战派 微服务 入门,微服务项目实战派 微服务 入门_微服务项目实战派_14,第14张

微服务项目实战派 微服务 入门,微服务项目实战派 微服务 入门_负载均衡_15,第15张

断言工厂

类似于拦截器功能

微服务项目实战派 微服务 入门,微服务项目实战派 微服务 入门_负载均衡_16,第16张

网关过滤器

类似于过滤器功能,可以对请求进行拦截处理。如添加请求头。具体见官方文档

微服务项目实战派 微服务 入门,微服务项目实战派 微服务 入门_服务发现_17,第17张



https://www.xamrdz.com/backend/3gj1935876.html

相关文章: