文档章节

Zuul路由入门

专送一血的码农
 专送一血的码农
发布于 2016/04/15 20:57
字数 353
阅读 1493
收藏 16

一 .首先打开http://start.spring.io/

一看就知道怎么搞了吧,不用多少了 首先建一个Springboot的Demo工程

首先建立一个BookApplication 代码如下很简单

package com.example;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@SpringBootApplication
public class BookApplication {

    @RequestMapping(value = "/available")
    public String available() {
        return "Spring in Action";
    }

    @RequestMapping(value = "/checked-out")
    public String checkedOut() {
        return "Spring Boot in Action";
    }

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


然后在application.properties配置文件配置端口号

spring.application.name=book
server.port=8090

完成

二 在建立一个Demo2项目,SimpleFilter可以加也可以不加,

package com.example;

import com.example.filter.SimpleFilter;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.zuul.EnableZuulProxy;
import org.springframework.context.annotation.Bean;

@EnableZuulProxy
@SpringBootApplication
public class Demo2Application {

    @Bean
    public SimpleFilter simpleFilter() {
        return new SimpleFilter();
    }

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


}



Filter代码如下

package com.example.filter;

import com.netflix.zuul.ZuulFilter;
import com.netflix.zuul.context.RequestContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.servlet.http.HttpServletRequest;

public class SimpleFilter extends ZuulFilter {

  private static Logger log = LoggerFactory.getLogger(SimpleFilter.class);

  @Override
  public String filterType() {
    return "pre";
  }

  @Override
  public int filterOrder() {
    return 1;
  }

  @Override
  public boolean shouldFilter() {
    return true;
  }

  @Override
  public Object run() {
    RequestContext ctx = RequestContext.getCurrentContext();
    HttpServletRequest request = ctx.getRequest();

    log.info(String.format("%s request to %s", request.getMethod(), request.getRequestURL().toString()));

    return null;
  }

}

最后配置下application.properties


测试访问

http://localhost:8080/books/available

日志

2016-04-15 20:17:36.095  INFO 5033 --- [nio-8080-exec-1] o.s.c.n.zuul.web.ZuulHandlerMapping      : Mapped URL path [/books/**] onto handler of type [class org.springframework.cloud.netflix.zuul.web.ZuulController]

2016-04-15 20:17:58.587  INFO 5033 --- [nio-8080-exec-4] com.example.filter.SimpleFilter          : GET request to http://localhost:8080/books/available

由结果可以看已经帮你重定向到了8090

代码地址

github: https://github.com/smartxing/zuul-demo


© 著作权归作者所有

共有 人打赏支持
专送一血的码农
粉丝 20
博文 23
码字总数 14447
作品 0
杭州
程序员
加载中

评论(2)

专送一血的码农
专送一血的码农

引用来自“李景枫”的评论

能否给一个非spring版的路由demo
这个官网有官网提供的就是没有Spring的。 其实可以看到 zuul就是大量的filter。 也可以参考下https://github.com/spring-cloud/spring-cloud-netflix
李景枫
李景枫
能否给一个非spring版的路由demo
程序猿DD/swagger-butler

Swagger Butler Swagger Butler是一个基于Swagger与Zuul构建的API文档汇集工具。通过构建一个简单的Spring Boot应用,增加一些配置就能将现有整合了Swagger的Web应用的API文档都汇总到一起,...

程序猿DD
05/25
0
0
springCloud(14):使用Zuul构建微服务网关-路由端点与路由配置详解

一、Zuul的路由端点 当@EnableZuulProxy与SpringBoot Actuator配合使用时,Zuul会暴露一个路由管理端点/routes。借助这个端点,可以方便、直观地查看以及管理Zuul的路由。 /routes端点的使用...

我爱大金子
2017/08/22
0
0
Spring Cloud Gateway 整合Eureka路由转发

前面我们对Spring Cloud Gateway进行了一个入门的学习,具体文章可以查看《Spring Cloud Gateway 网关尝鲜》进行学习。 网关负责转发工作,那么它需要知道后端的服务信息,今天我们来学习下S...

尹吉欢
07/13
0
0
Spring Cloud各组件超时

Ribbon的超时 全局设置: 局部设置: 其中, 是Ribbon所使用的虚拟主机名,一般和Eureka Server上注册的服务名称一致,即:与 一致。 Feign的超时 从Spring Cloud Edgware开始,Feign支持使用...

周立_itmuch
2017/11/28
0
0
zuul动态配置路由规则,从DB读取

前面已经讲过zuul在application.yml里配置路由规则,将用户请求分发至不同微服务的例子。 zuul作为一个网关,是用户请求的入口,担当鉴权、转发的重任,理应保持高可用性和具备动态配置的能力...

yunlielai
07/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

WinDbg

参考来自:http://www.cnit.net.cn/?id=225 SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols ctrl + d to open dump_file Microsoft (R) Windows Debugger Version 6.12.0002.633......

xueyuse0012
今天
2
0
OSChina 周五乱弹 —— 想不想把92年的萝莉退货

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @罗马的王:分享松澤由美的单曲《地球ぎ》 很久没看圣斗士星矢了 《地球ぎ》- 松澤由美 手机党少年们想听歌,请使劲儿戳(这里) @开源中国首...

小小编辑
今天
14
1
springBoot条件配置

本篇介绍下,如何通过springboot的条件配置,控制Bean的创建 介绍下开发环境 JDK版本1.8 springboot版本是1.5.2 开发工具为 intellij idea(2018.2) 开发环境为 15款MacBook Pro 前言 很多时候,...

贺小五
今天
1
0
javascript source map 的使用

之前发现VS.NET会为压缩的js文添加一个与文件名同名的.map文件,一直没有搞懂他是用来做什么的,直接删除掉运行时浏览器又会报错,后来google了一直才真正搞懂了这个小小的map文件背后的巨大...

粒子数反转
昨天
1
0
谈谈如何学Linux和它在如今社会的影响

昨天,还在农耕脑力社会,今天已经人工智能技术、大数据、信息技术的科技社会了,高速开展并迅速浸透到当今科技社会的各个方面,Linux日益成为人们信息时代的到来,更加考验我们对信息的处理程...

linux-tao
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部