springCloud网关组件zuul和gateway

zuul

概述

什么是zuul?

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

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

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

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

路由的基本配置

新建Module模块springcloud-zuul-gateway-9527

pom文件

添加Eureka和zuul的配置

<dependencies>
    <!--Zuul-->
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-zuul</artifactId>
      <version>1.4.7.RELEASE</version>
    </dependency>
    <!--eureka相关-->
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-eureka</artifactId>
      <version>1.4.7.RELEASE</version>
    </dependency>
</dependencies>

application.yml配置

server:
    port: 9527

#spring的相关配置
spring:
    application:
      name: springcloud-zuul-gateway

#eureka配置
eureka:
    client:
      service-url:
        defaultZone:
http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/,http:/
/eureka7003.com:7003/eureka/
    instance:
      instance-id: gateway9527.com
      prefer-ip-address: false #true访问路径可以显示IP地址

#info配置
info:
    app.name: kuang-springcloud
    company.name: www.kuangstudy.com
    build.artifactId: ${project.artifactId}
    build.version: ${project.version}

主启动类

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

启动

  • Eureka集群
  • 一个服务提供类:springcloud-provider-dept-8001
  • zuul路由
  • 访问 :http://localhost:7001/

测试

gateway

概述

什么是gateway?

Gateway是一个构建于Spring Boot 2.x, Spring 5(Spring WebFlux), and Project Reactor的
Spring生态系统之上的网关,旨在提共一个简单有效的方式路由接口,并提供跨领域的关注点,比如安
全,监控,恢复能力。

能够使用网关去进行鉴权,日志记录等。

路由的基本配置

新建Project项目gateway

pom文件

添加Eureka和zuul的配置

<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

application.yaml配置

spring:
  application:
    name: gateway
  cloud:
    gateway:
      discovery:
        locator:
          enabled: true #开启当前项目服务注册与发现功能
          lower-case-service-id: true #是否把服务名都转化成小写,Eureka中默认都是大写
      #在yml中如果一个属性是list类型。且list的泛型为类类型。不是简单数据类型
      # - 标识一个对象
      routes:
        - id: msg
          uri: lb://gateway
          #如果list类型中也可使用逗号进行分割
          predicates: Path=/msg
server:
  port: 9000

主启动类

@SpringBootApplication
@EnableEurekaClient

public class GatewayApplication {

	public static void main(String[] args) {
		SpringApplication.run(GatewayApplication.class, args);
	}

}

启动

测试

posted @   枫叶红时  阅读(238)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
点击右上角即可分享
微信分享提示