介绍
是Netflix的一个子项目
提供代理、过滤、路由等功能
编写第一个Zuul程序
建立服务项目:简单写一个restfull请求
@SpringBootApplication
@RestController
public class SourceApp {
public static void main(String[] args) {
SpringApplication.run(SourceApp.class, args);
}
@RequestMapping(value = "/hello/{name}", method = RequestMethod.GET)
public String hello(@PathVariable String name) {
return "hello, " + name;
}
}
建立网关项目:引入依赖,开启网关,配置转发规则
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zuul</artifactId>
</dependency>
<!--zuul底层采用httpclient转发请求的-->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.2</version>
</dependency>
@SpringBootApplication
//开启网关
@EnableZuulProxy
public class RouterApp {
public static void main(String[] args) {
SpringApplication.run(RouterApp.class, args);
}
}
server:
port: 9000
zuul:
routes:
zlt:
url: http://localhost:8080
启动并访问服务项目:http://localhost:8080/hello/zlt
启动并访问网关项目:http://localhost:9000/zlt/hello/zlt
项目结构
Zuul运行机制参考源码:ZuulServlet
以上为疯狂SpringCloud微服务架构实战学习笔记
感谢杨恩雄老师:https://my.oschina.net/JavaLaw