1.在项目中pom.xml添加
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.4.RELEASE</version>
</parent>
<dependencies>
<!--加入Spring boot-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<!--Zuul-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zuul</artifactId>
<version>1.3.1.RELEASE</version>
</dependency>
<!--添加eureka注册服务-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
<version>1.3.1.RELEASE</version>
</dependency>
</dependencies>
2.创建boot启动程序,关键字@SpringBootApplication ,其实现main方法,做为进程入口SpringApplication.run(ZuulApplication.class, args);
3.将其注册为Zuul代理,关键字@EnableZuulProxy,eureka客户端,关键字@EnableEurekaClient
4.创建filter
5.boot启动程序中注册filter,例如
@Bean
public ZuulFilter perFiler() {
return new PreFilter();
}
6.application配置文件application.porperties
#应用名称
spring.application.name=zuul
#服务端口
server.port=5001
#代理注册 url
zuul.routes.eureka.path=/eur/**
zuul.routes.eureka.url=http://localhost:8080/eureka/
#代理注册 服务
zuul.routes.demo.path=/demo/**
zuul.routes.demo.serviceId=node
zuul.routes.demo.stripPrefix=true
#eureka服务器
eureka.client.serviceUrl.defaultZone=http://localhost:8080/eureka/v2/
7.启动node服务对应程序,启动本程序即可。
8.测试结果如下:
Node对应服务:IP1 10000端口,IP1 10001端口,IP1,IP实现/node/hello路径下方法,IP1同时实现/hello路径方法
情况1:输入:http://ip:5001/demo/node/hello
结果:IP1和IP2服务轮训返回,输出/node/hello路径下方法
情况2:输入:http://ip:5001/node/node/hello
结果:和情况一相同
输入:http://ip:5001/node/hello
结果:输出IP1/hello路径方法内容
输入:http://ip1:10000/node/hello
结果:正常
输入:http://ip1:10000/hello
结果:正常
有代理后:端口后第一个参数其解析为代理path或注册服务,注意前提为 zuul.routes.demo.stripPrefix=true
git地址:https://github.com/leaf-it/demo-zuul.git
分享到:
相关推荐
《SpringCloud实战:初探Eureka、Config、Zuul与Ribbon》 SpringCloud作为微服务架构的重要组件,为开发者提供了丰富的工具和框架来构建分布式系统。本篇将通过"spring-cloud-root.zip"这个Demo,深入探讨Spring ...
【初探微服务与Spring Boot】 微服务架构是一种软件开发方法,它将应用程序设计为一组小型、独立的服务,每个服务都专注于一个特定的业务功能,且可以独立部署、扩展和维护。这种架构模式有助于提高软件的可伸缩性...
2. **API网关**:Zuul是Spring Cloud的边缘服务,它可以处理所有客户端请求,并转发到相应的后端服务。在微服务架构中,Zuul可以实现负载均衡、路由控制、过滤器等功能,简化客户端的访问逻辑。在我们的项目中,可能...
《Spring Cloud与Spring Boot结合构建微服务初探》 在当今的互联网开发环境中,微服务架构已经成为企业级应用开发的主流选择。Spring Cloud与Spring Boot的结合,为开发者提供了强大的工具,使得构建、部署和管理...
《Spring Cloud深度解析:从clouds.zip初探分布式微服务架构》 在现代软件开发领域,微服务架构已经成为主流,而Spring Cloud作为Java生态中的重要一环,为构建分布式系统提供了全面的工具集。本文将基于名为...
6. **Spring Cloud Zuul**:Zuul是边缘服务和API网关,它可以处理路由、过滤、安全等任务,对外统一接口,隐藏后端服务细节。 在"微服务架构springboot demo"中,可能包含了一个简单的SpringBoot应用,展示了如何...