1. pom依赖
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-zuul</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
</dependencies>
2. yml配置
server:
port: 9567
eureka:
client:
serviceUrl:
defaultZone: http://eureka-server-7001:7001/eureka/,http://eureka-server-7002:7002/eureka/,http://eureka-server-7003:7003/eureka/
instance:
instance-id: eureka-zull # 服务名称
prefer-ip-address: true # 显示ip地址
info: # 点击注册列表未服务出现的信息
app.name: springcloud
company.name: www.honor.com
build.artifactId: @project.artifactId@
build.version: @project.version@
spring:
application:
name: eureka-zuul
zuul:
routes:
consumer:
path: /consumer/**
serviceId: eureka-consumer
# 1.关闭默认的映射规则(默认配置服务名称相同的路由)
# 2.默认配置的路由规则:localhost:10000/eureka-rest-ribbon/hello
# 3.关闭以后localhost:10000/eureka-rest-ribbon/hello就不能提供访问了,但是依然可以直接访问微服务客户端localhost:10000/hello
# 4.原来的服务没法直接关闭访问,可以把服务层放在内网中,zuul放在公网中
ignored-services: "*"
prefix: /v1 # 统一前缀
3. 主启动类
@SpringBootApplication
@EnableEurekaClient
@EnableZuulProxy
public class EurekaZuul9567Application {
public static void main(String[] args) {
SpringApplication.run(EurekaZuul9567Application.class, args);
}
}
4. 测试
浏览器访问http://localhost:9567/v1/consumer/hello/kangkang,首先请求到达zull,zull默认与ribbon结合实现负载均衡,按照轮询算法到达其中一台消费者,然后消费者根据负载均衡算法选择其中一台服务提供者

本文详细介绍了如何使用Zuul作为微服务网关,包括pom依赖配置、yml配置参数设置、主启动类注解应用及测试流程。通过实例演示了Zuul与Eureka、Ribbon的集成,实现服务间的负载均衡与路由。
612

被折叠的 条评论
为什么被折叠?



