首页 > 其他分享 >springcloud 学习八、Zuul 路由网关、路由的基本配置、路由访问映射规则

springcloud 学习八、Zuul 路由网关、路由的基本配置、路由访问映射规则

时间:2022-12-30 18:10:05浏览次数:63  
标签:网关 Zuul http dept mydept org com 路由 microservicecloud


前言

案例的都是循序渐进的。案例的顺序:

  1. 微服务讲诉->
  2. 父工程maven的module建立和rest风格的请求->
  3. eureka的学习、三大组件,服务注册与消费->
  4. eureka的集群操作 ->
  5. ribbon的负载均衡。
  6. feign的负载均衡
  7. Hystrix断路器
  8. Zuul路由网关
  9. SpringCloud Config分布式配置中心

一、 Zuul概述

1. 是什么

Zuul包含了对 请求的路由和过滤 两个最主要的功能。

其中路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础而过滤器功能则负责对请求的处理过程进行干预,是实现请求校验、服务聚合等功能的基础.Zuul和Eureka进行整合,将Zuul自身注册为Eureka服务治理下的应用,同时从Eureka中获得其他微服务的消息,也即以后的访问微服务都是通过Zuul跳转后获得。

注意:Zuul服务最终还是会注册进Eureka;

提供=代理+路由+过滤三大功能

2. 能干嘛

  • 路由
  • 过滤

3. 官网

​https://github.com/Netflix/zuul/wiki/Getting-Started​

二、 路由基本配置

1. 案例讲解:新建Module模块microservicecloud-zuul-gateway-9527

2. POM

添加新依赖::zuul路由网关

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>microservicecloud</artifactId>
<groupId>com.atguigu.springcloud</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>

<artifactId>microservicecloud-zuul-gateway-9527</artifactId>

<dependencies>
<!-- zuul路由网关 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zuul</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<!-- actuator监控 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!-- hystrix容错-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<!-- 日常标配 -->
<dependency>
<groupId>com.atguigu.springcloud</groupId>
<artifactId>microservicecloud-api</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
<!-- 热部署插件 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>springloaded</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
</dependencies>

</project>

3. YML

server:
port: 9527
spring:
application:
name: microservicecloud-zuul-gateway
eureka:
client:
service-url:
defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka,http://eureka7003.com:7003/eureka
instance:
instance-id: gateway-9527.com
prefer-ip-address: true

info:
app.name: atguigu-microcloud
company.name: www.atguigu.com
build.artifactId: $project.artifactId$
build.version: $project.version$

4. Hosts修改

  • 位置:
  • 添加映射

5. 主启动类

添加新注解:@EnableZuulProxy

package com.atguigu.springcloud;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.zuul.EnableZuulProxy;

@SpringBootApplication
@EnableZuulProxy
public class Zuul_9527_StartSpringCloudApp {
public static void main(String[] args) {
SpringApplication.run(Zuul_9527_StartSpringCloudApp.class, args);
}
}

6. 启动

  1. 三个eureka 集群
  2. 一个服务器提供类microservicecloud-provide-dept-8001
  3. 一个路由
  4. springcloud 学习八、Zuul 路由网关、路由的基本配置、路由访问映射规则_maven


7. 测试

springcloud 学习八、Zuul 路由网关、路由的基本配置、路由访问映射规则_maven_03

三、 路由访问映射规则

1. 工程microservicecloud-zuul-gateway-9527

继续还是以microservicecloud-zuul-gateway-9527 这个工程为例。

2. 代理名称

1) YML

before
http://myzuul.com:9527/microservicecloud-dept/dept/get/2

zuul:
routes:
mydept.serviceId: microservicecloud-dept
mydept.path: /mydept/**

after
http://myzuul.com:9527/mydept/dept/get/1

2) 此时问题

路由访问OK

​http://myzuul.com:9527/mydept/dept/get/1​

springcloud 学习八、Zuul 路由网关、路由的基本配置、路由访问映射规则_maven_04


原路径访问OK

​http://myzuul.com:9527/microservicecloud-dept/dept/get/2​

springcloud 学习八、Zuul 路由网关、路由的基本配置、路由访问映射规则_微服务_05

3. 原真实服务名忽略

1) YML

zuul: 
ignored-services: microservicecloud-dept
routes:
mydept.serviceId: microservicecloud-dept
mydept.path: /mydept/**

springcloud 学习八、Zuul 路由网关、路由的基本配置、路由访问映射规则_spring_06

2) 单个具体,多个可以用"*"

zuul: 
ignored-services: "*"
routes:
mydept.serviceId: microservicecloud-dept
mydept.path: /mydept/**

4. 设置统一公共前缀

1) YML

zuul: 
prefix: /atguigu
ignored-services: "*"
routes:
mydept.serviceId: microservicecloud-dept
mydept.path: /mydept/**

​http://myzuul.com:9527/atguigu/mydept/dept/get/1​

springcloud 学习八、Zuul 路由网关、路由的基本配置、路由访问映射规则_maven_07

5. 最后YML

server:
port: 9527
spring:
application:
name: microservicecloud-zuul-gateway
eureka:
client:
service-url:
defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka,http://eureka7003.com:7003/eureka
instance:
instance-id: gateway-9527.com
prefer-ip-address: true

zuul:
prefix: /atguigu # 请求URI前带上前缀片段
ignored-services: "*" # 忽略某个URI片段
routes:
mydept.serviceId: microservicecloud-dept # 服务
mydept.path: /mydept/** # 请求URI片段


info:
app.name: atguigu-microcloud
company.name: www.atguigu.com
build.artifactId: $project.artifactId$
build.version: $project.version$




标签:网关,Zuul,http,dept,mydept,org,com,路由,microservicecloud
From: https://blog.51cto.com/u_15926676/5981024

相关文章

  • 基于AI边缘智能网关的工业质检应用
    成品质量检验是工业生产最后必不可少的环节,随着我国工业化的蓬勃发展,工业产品日益迈向高端化、精密化,对于工业产品的质量检验要求和投入成本也在不断提高,产品质检涉及到比......
  • 高性能网关基石——OpenResty
    什么是OpenRestyOpenResty一个基于Nginx的高性能Web平台,能够方便地搭建处理超高并发的动态Web应用、Web服务和动态网关。例如有名的Kong网关和国产新秀ApiSIX......
  • 基于边缘智能网关的智能售货机应用
    自动售货机是生活中很常见的商业基础设施,已经广泛部署在商圈、公园、写字楼等场景,为公众提供便利的零售服务。近年来随着物联网技术的发展,自动售货机的智能化水平也需要不......
  • Spring Cloud Netflix第一代网关之Zuul基本使用
    网关在微服务系统中起到一个门户的作用,主要作用如下:服务路由鉴权服务熔断流控灰度发布等常用的网关有Zuul、Gateway、OpenResty+Lua、Kong、ApiSIX等等。本文以Z......
  • Vue3:路由跳转产生默认a标签问题
    解决方案:在对应的标签下,添加a标签的默认设置例:   ......
  • IPSEC VPN网关构建高安全性的数据采集系统
    一、需求背景 在物联网飞速发展的当下,许多项目需求实现上位机软件远程实时监视现场设备运行的各项指标和参数,数据在传输过程中可能遭受篡改、数据泄露等风险,给企业造成一定......
  • Vue2下的多级路由
    多级路由(多级路由)配置路由规则,使用children配置项: routes:[{path:'/about',component:About,},{path:'/home',......
  • 路由协议ISIS第3篇---报文结构
    ISIS报文结构因为IS-IS协议是基于链路层的,所以IS-IS报文直接封装在链路层报文中。所有的IS-IS报文由三部分组成:IS-IS通用头,PDU固定专用头和PDUTLV,其中IS-IS通用头是8个......
  • 电犀牛R66s软路由体验
    产品简介[https://r68s.cn]登录后台192.168.100.1账户名:root密码:password修改用户名和密码系统->管理权密码qs**********保存&应用优化网络网络->TurboAC......
  • 基于边缘计算网关的空压机监测应用
    空压机是工业生产中常见的设备,要保障生产作业处于高效率状态,就需要实现对各种工业机械设备运行状态的实时监测、故障预警和及时保养维护。传统的人工巡检、抽检模式越来越......