手记

教你使用Zuul反向代理访问微服务

说到微服务,自然而然的就会想到Spring Cloud,Spring Cloud这两年非常火爆,大家族中的成员不断的丰富,提供了各式各样的组件。今天主要给大家讲一讲Zuul这个组件。

首先我们要创建一个微服务应用,然后我们使用Zuul组件创建反向代理,转发请求到微服务的应用上。在这个过程中,你将了解如何使用Zuul完成反向代理。

创建微服务

我们使用Spring Boot创建微服务,搭建Spring Boot项目的过程略去,我们编写的服务代码如下:

@RestController  
@SpringBootApplication  
public class MicroApplication {  
 @RequestMapping("hello")  
 public String available() {  
 return "Hello,Spring Boot!";  
 }  
 public static void main(String[] args) {  
 SpringApplication.run(MicroApplication.class, args);  
 }  
}  

然后在application.properties文件中,写上应用的名字和启动的端口,如下:

#spring应用的名字  
spring.application.name=micro-service  
#启动的端口  
server.port=8090  

应用的名字叫做micro-service,启动端口为8090。我们启动项目,在浏览器中访问看看结果:

说明我们的服务没有问题。接下来我们搭建Zuul反向代理。

Zuul反向代理

我们继续在IDEA中使用SpringBoot搭建项目,在选择依赖的步骤中,选择Zuul依赖,如图:

接着,一路下一步,完成项目搭建。然后在启动类上添加@EnableZuulProxy注解,如下:

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

为了从网关应用转发请求,我们需要告诉Zuul,它需要检测什么路由,并将请求转发到什么服务中去。这些需要我们在网关应用中去配置,如下:

#访问/micro的请求,转发到http://localhost:8090  
zuul.routes.micro.url=http://localhost:8090  
#网关应用启动端口:8080  
server.port=8080  

所有访问http://localhost:8080/micro/xxx的请求,都会被转发到http://localhost:8090,我们启动网关应用,并在浏览器中访问 http://localhost:8080/micro/hello,结果如下:

我们看到已经将请求转发到微服务的应用上了。

总结

Zuul的入门教程就到这里,大家先有个印象,后续的文章中会深入介绍。

1人推荐
随时随地看视频
慕课网APP