0
点赞
收藏
分享

微信扫一扫

Zuul API 网关

Yaphets_巍 2022-01-20 阅读 60

统一的入口

统一的权限校验

继承Ribbon

继承Hystrix

统一的入口

1.新建spring模块 sp06zuul

2.添加pom依赖

zuul

eureka client 需要注册注册中心

sp01 继承

3.yml

路由转发规则

#下面这段是默认配置   zuul 根据注册表的注册信息可以实现默认配置
#尽量手动配置,防止注册表不全
zuul:

routes:

          item-service: /item-service/** #包含当前包路径和所有子路径
user-service: /user-service/**
order-service: /order-service/**

4.启动类的注解:@Enable

统一的权限校验

模拟登录检查

http://localhost:3001/item-service/qweqw 没有登录,不允许访问

http://localhost:3001/item-service/qweqw?token=wqeqw 已经登录,允许访问

1.新建过滤器,继承ZuulFilter

2.按照规则实现zuulFilter

3.添加注解:@Component

zuul的自动配置类 会自动配置过滤器

zuul集合 Ribbon

默认启动了负载均衡

默认不启用重试

一般不在网关添加重试功能,否则可以后台服务压力翻倍,出现大面积故障。(越靠后越好)

重试功能 应该尽量靠后添加

Zuul启用重试

1.添加依赖:spring-retry

2.yml配置:zuul.retryable=true

重试默认得参数

        MaxAutoRetries:0

        MaxAutoRetriesN

1.新建降级类,实现FallbackProvider 接口

2.按接口规则进行实现

3.添加注解:@Component

zuul 得自动配置类可以完成自动配置

Hystrix 熔断

流量过大,出现故障,可以熔断,断开链路,减轻后台服务得压力

       熔断得触发条件:

               10秒20次请求 (必须首先满足) if (20) 才会去判断50% 失败

                50%请求出错

断路器打开后一段时间,会进去“半开状态”

        半开状态下: 会尝试发送一次客户端调用

                调用成功,关闭断路器恢复正常

                调用失败,继续保持打开状态

Hystrix数据监控-Hystrix Dashboard

        1.新建spring模块,sp07-hystrix-dashboard

        2.添加依赖:hystrix dashboard

        3.yml配置:

                 允许抓取的服务器列表:localhost

4.启动类的注解: @EnableHystrixDashboard

        访问:http://localhost:4001/hystrix

Turbine

从多台服务器抓取日志,进行聚合

Hystrix Dashboard 可以从turbine抓取聚合后的日志数据

1.新建spring模块:sp08-turbine

2.添加pom依赖:

        1.turbine    ----通过服务ID来抓取的

        2.eureka client  

3.yml配置:

        抓取的服务ID:(多个)zuul,a,b,c,

        为聚合后的数据命名:new String("default")

4.启动类注解:@EanbleTurbine

5.访问聚合日志: http://localhost:5001/turbine.stream

spring cloud config 配置中心

eureka 注册中心

config 配置中心

nacos是注册中心也是配置中心

集中的管理和维护配置文件

准备git仓库

限制本地准备一个文件夹存放2.3.4的配置文件,在吧文件夹放到git仓库

1.在gitee创建仓库(已经有仓库的同学不用重复做)

        srping cloud1

        开源

2.分别把3个yml配置文件丢在一个当前项目的文件夹内

3.创建本地仓库(已经有仓库的同学不用重复做)

搭建配置中心

1.新建springmokuai :sp09-config

2.添加依赖:

        eurekaclient 

        config server

3.yml

        git仓库地址:https://gitee.com/oky12000/springcloud1.git

        仓库中的文件夹:config

4.启动类注解:@EnableConfigserver

配置中心的客户端

1.把,2,3,4中的application.yml都注释掉

2.添加依赖:config lient

3.添加新的配置文件:bootstrap.yml

        eureka地址--需要得到euraka配置主机的地址

        设置配置中心的服务id

        下载的配置文件

检查确认

1.按顺序启动项目

2.09-config

3.03-user

2.检查配置中心

        1.注册表中又config-server

        2.http://localhost:6001/item-service/dev

        3.http://localhost:6001/user-service/dev

        4.http://localhost:6001/order-service/dev

RabbitMQ

消息服务,消息队列,消息中间件 brokeer

常见的消息服务器:

        rabbitmq

        acivemq

rocktmq  --- 阿里的服务器

kafka

tubemq

搭建rabbitmq服务器 

1.vMware  16以上

##nat网络网段

192.168.64.0

编辑--虚拟网络编辑器---选择vmnet8--左下角 192.168.64.0

     centos-8-2105.zip

     centos-7-1908.zip

1.解压缩,双击.

虚拟机

已经做了几步基础配置

1.阿里的yum安装源和配置

2.

举报

相关推荐

0 条评论