十七、服务网关-Zuul 的使用

一、 Zuul 的介绍
Zuul 一个基于 JVM 路由和服务端的负载均衡器,在云平台上提供动态路由,监控,弹性,安全等边缘服务的框架。
路由功能:相当于 nginx 的反向代理功能
比如:/ 可能需要映射到你的 web 应用, /api/users 映射到用户服务,/api/shop 映射到商城服务。

二、 新建项目(spring-cloud-gateway)
1、 加入依赖包

<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、 配置文件(application.properties)

# server 
server.port=9876 

# spring 
spring.application.name=spring-cloud-gateway 

# eureka 
#eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/ 
eureka.client.serviceUrl.defaultZone=http://drunck:123456@localhost:8761/eureka/ 

# info 自定义 
info.build.name=@project.name@ 
info.build.description=@project.description@ 
info.build.groupId=@project.groupId@ 
info.build.artifact=@project.artifactId@ 
info.build.version=@project.version@ 

eureka.instance.status-page-url-path=/info 
eureka.instance.instanceId=${spring.application.name}:${random.value} 
eureka.instance.prefer-ip-address=true 

#设置拉取服务注册信息时间,默认 60s 
eureka.client.registry-fetch-interval-seconds=30 

#指定续约更新频率,默认是 30s 
eureka.instance.lease-renewal-interval-in-seconds=15 

#设置过期剔除时间,默认 90s 
eureka.instance.lease-expiration-duration-in-seconds=45 

3、 主类

package com.drunck.education; 

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

@EnableZuulProxy 
@SpringBootApplication 
public class GatewayApplication { 

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

4、 启动访问:

http://localhost:7778/api/user/1 
http://localhost:8886/feign/user/1 
使用 zuul 
http://localhost:9876/spring-cloud-provider/api/user/1 
http://localhost:9876/spring-cloud-consumer2/feign/user/1 

说明:zull 可以调用提供者,也可以调用消费者,这里没有固定的规则,符合业务需求即可。很多时
候,提供者也会调用到另外的提供者(可能是多个),这里建议,最好不要超过三个应用之间的调用。

例如:一个下单 api 服务,当用户进行下单就会调用到订单服务,订单服务里面会调用到用户服务进行用
户信息的操作,也会调用积分服务进行积分的操作,也可能会有日志服务进行日志记录,最终才能下单。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值