Zuul网关

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

代理+路由+过滤

Zuul网关简单使用
1、创建Zuul网关工程,并在pom文件中加入相关依赖
在这里插入图片描述

		<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>

2、修改配置文件,将其注册到Eureka中

server:
  port: 9527
  
spring: 
  application:
    name: microservicecloud-zuul
      
eureka:
  client: 
    service-url: 
      defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/
  instance:
    instance-id: microservicecloud-zuul9527
    prefer-ip-address: true
    
info: 
  app.name: microserviceclod
  app.company: cmzy
  build.artifactId: $project.artifactId$
  build.version: $project.version$

3、创建主启动类,添加Zuul相关注解

@SpringBootApplication
@EnableZuulProxy
public class Zuul9527_app {

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

4、访问时通过网关访问,由于没有配域名映射,所以使用localhost:9527,后面跟需要访问的微服务名,然后跟具体的url映射
http://localhost:9527/microservicecloud-dept/dept/get/3

5、设置隐藏真实的微服务名,使用别名代替,在zuul配置文件中配置相关属性

zuul:
  ignored-services: microservicecloud-dept #设置不能通过microservice-dept为服务名访问
  #ignored-services: "*"表示对所有微服务名屏蔽
  #prefix: /cmzy #用于增加前缀,访问地址http://localhost:9527/cmzy/myService/dept/get/3
  routes:
    myService.serviceId: microservicecloud-dept   
    myService.path: /myService/**         #设置通过myService来代替microservicecloud-dept微服务名

所以访问地址为:http://localhost:9527/myService/dept/get/3

### 如何搭建Zuul网关 #### 1. 添加依赖 为了实现微服务架构中的API网关功能,首先需要在项目的`pom.xml`文件中引入必要的Maven依赖项。这些依赖项包括用于启动Zuul的starter包以及Eureka客户端支持[^4]。 ```xml <dependencies> <!-- Zuul Starter --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-zuul</artifactId> </dependency> <!-- Eureka Client Support --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> </dependencies> ``` #### 2. 配置应用基本信息 在`application.properties`或`application.yml`文件中定义基础信息和服务发现的相关配置。这一步骤确保了Zuul作为独立的服务运行并能够与其他微服务通信[^1]。 ```properties # 应用名称与端口设置 spring.application.name=api-gateway server.port=2006 # 注册到Eureka Server eureka.client.service-url.defaultZone=http://localhost:1111/eureka/ ``` #### 3. 定义路由规则 通过指定路径匹配模式和目标服务ID来创建路由规则。以下是面向服务的路由示例[^3]: ```properties zuul.routes.api-a.path=/api-a/** zuul.routes.api-a.serviceId=feign-consumer zuul.routes.api-b.path=/api-b/** zuul.routes.api-b.serviceId=hello-service ``` 此配置表示当请求访问`/api-a/*`时,流量会被转发至名为`feign-consumer`的服务;同理对于`/api-b/*`则指向`hello-service`。 #### 4. 启动类注解启用功能 最后,在主程序入口处添加特定的Spring Boot注解以激活Zuul代理及Eureka客户端的功能[^2]。 ```java @EnableEurekaClient @EnableZuulProxy @SpringBootApplication public class ZuulApplication { public static void main(String[] args) { SpringApplication.run(ZuulApplication.class, args); } } ``` 以上步骤涵盖了从项目初始化到具体实施细节的过程描述,帮助开发者快速构建基于Spring Cloud框架下的Zuul网关解决方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值