Turbine、zuul、config配置中心

本文详细介绍了Spring Cloud中的Turbine如何搭建和聚合监控数据,Zuul API网关的功能,如统一调用入口、权限校验、负载均衡,并探讨了Feign和Zuul的区别。此外,还讲解了Config配置中心的使用,包括从远程仓库拉取、推送配置以及解决版本冲突等操作。
摘要由CSDN通过智能技术生成

一、Turbine

1、介绍

Turbine:聚合多台服务器的监控数据,提供给仪表盘进行展现。

2、搭建Turbine服务

(1)添加Turbine依赖

<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-netflix-turbine</artifactId>
</dependency>

(2)yml文件配置

  • 1、聚合的服务id
  • 2、集群名:聚合之后的数据的命名,默认名:defalut
  • 3、添加注解:@EnableTurbine、@EnableDiscoveryClient(可省略)
  • 4、监控路径:
  • http://localhost:4001/hystrix
  • http://localhost:5001/trubine.stream
turbine:
  # 集合的服务id
  app-config: order-service
  # 给聚合的数据命名
  cluster-name-expression: new String("default")

hystrix dashboard 一次只能监控一个服务实例,使用 turbine 可以汇集监控信息,将聚合后的信息提供给 hystrix dashboard 来集中展示和监控

二、zuul ZPI网关

1、API网关

为微服务应用提供统一的调用入口,简化客户端的访问。

在微服务架构中,通常会有多个服务提供者。设想一个电商系统,可能会有商品、订单、支付、用户等多个类型的服务,而每个类型的服务数量也会随着整个系统体量的增大也会随之增长和变更。作为UI端,在展示页面时可能需要从多个微服务中聚合数据,而且服务的划分位置结构可能会有所改变。网关就可以对外暴露聚合API,屏蔽内部微服务的微小变动,保持整个系统的稳定性。

当然这只是网关众多功能中的一部分,它还可以做负载均衡,统一鉴权,协议转换,监控监测等一系列功能。

2、zuul

Zuul是Spring Cloud全家桶中的微服务API网关。

所有从设备或网站来的请求都会经过Zuul到达后端的Netflix应用程序。作为一个边界性质的应用程序,Zuul提供了动态路由、监控、弹性负载和安全功能。Zuul底层利用各种filter实现如下功能:

  • 认证和安全 识别每个需要认证的资源,拒绝不符合要求的请求。
  • 性能监测 在服务边界追踪并统计数据,提供精确的生产视图。
  • 动态路由 根据需要将请求动态路由到后端集群。
  • 压力测试 逐渐增加对集群的流量以了解其性能。
  • 负载卸载 预先为每种类型的请求分配容量,当请求超过容量时自动丢弃。
  • 静态资源处理 直接在边界返回某些响应。

3、zuul API网关

在这里插入图片描述

  • 统一的调用入口,简化客户端访问,代理转发
  • 统一的权限校验。eg:登录访问权限
  • 集成ribbon:负载均衡、重试
  • 集成Hystrix:降级、熔断、调用容错

3.1、统一调用入口

(1)添加zuul依赖
<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-netflix-zuul</artifactId>
</dependency>
(2)yml配置转发规则

zuul 路由配置可以省略,缺省以服务 id 作为访问路径

zuul:
  routes:
  # 服务id    :  路径的映射规则 
    item-service: /item-service/** //任何访问
    user-service: /user-service/**
    order-service: /order-service/**

zuul的默认规则:自动配置,serviceId直接映射成一个子路径
可以根据注册表信息自动配置这个默认规则,刚启动只配置一次,内容不全,尽量不使用自动配置,为了防止注册信息不全,最好手动配置。

(3)主启动类加注解:@EnableZuulProxy@EnableDiscoveryClient(可省略)

@EnableZuulProxy:代理
多个zuul服务器集群
Nginx前端F5硬件,处理服务器X引擎

3.2、统一权限校验

(1)、zuul请求过滤

使用zuul过滤器实现权限验证
eg:登录权限—>?token=。。。有token则已登录,可访问
过滤器:pre(过滤器)、routing(路由过滤器)、post(后置过滤器)、custom(自定义过滤器)、origin(开源过滤器)、error(错误过滤器)
在这里插入图片描述

添加过滤器

(1)只需要添加一个zuul过滤器子类,添加@Component注解,没有任何配置,zuul可以自动配置
(2)继承zuulProxy父类:ZuulFilter
(3)实现抽象方法

package cn.tedu.sp11.filter;

import cn.tedu.web.util
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值