前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Eureka:扩展ClientFilter实现服务注册自定义过滤

Eureka:扩展ClientFilter实现服务注册自定义过滤

作者头像
冷冷
发布2018-02-08 12:13:54
1.5K0
发布2018-02-08 12:13:54
举报
文章被收录于专栏:冷冷冷冷

Jersey clientFilter 过滤

eureka-wiki

image
image

POM依赖:

代码语言:javascript
复制
<dependency>
    <groupId>com.sun.jersey</groupId>
    <artifactId>jersey-client</artifactId>
    <version>1.19.1</version>
</dependency>

实现抽象类ClientFilter的handle方法

代码语言:javascript
复制
public class IpCilentFilter extends ClientFilter {
    @Override
    public ClientResponse handle(ClientRequest clientRequest) throws ClientHandlerException {
        //响应对象的处理
        ClientResponse response = this.getNext().handle(clientRequest);
        return response;
    }
}

注入clientFilter

代码语言:javascript
复制
 @Bean
public DiscoveryClientOptionalArgs discoveryClientOptionalArgs() {
    DiscoveryClientOptionalArgs discoveryClientOptionalArgs = new DiscoveryClientOptionalArgs();
    discoveryClientOptionalArgs.setAdditionalFilters(Collections.singletonList(new IpCilentFilter()));
    return discoveryClientOptionalArgs;
}

自定义filter过滤

代码语言:javascript
复制
@Bean
public FilterRegistrationBean filterRegistrationBean() {
    FilterRegistrationBean registration = new FilterRegistrationBean(new ServerRequestAuthFilter());
    registration.addUrlPatterns("/*");
    return registration;
}

public class ServerRequestAuthFilter implements Filter {
    @Override
    public void doFilter(ServletRequest request, ServletResponse response,
                         FilterChain filterChain) throws IOException, ServletException {
        //业务实现,根据请求的IP或者参数判断是否可以执行注册或者访问
        filterChain.doFilter(request, response);
    }
}

拦截具体客户端注册、续约、下线请求,请参考 /eureka/apps

代码语言:javascript
复制
com.netflix.eureka.resources.ApplicationResource
image
image

总结:

代码语言:javascript
复制
eureka:
  client:
    fetch-registry: true
  1. 跟了下源码,第一种clientFilter只支持懒加载模式(版本1.6.2)
  2. 自定义filter过滤比clientFilter 更加灵活,因为clientfilter不会限制在eureka-server上的任何东西
  3. 源码可以参考:https://gitee.com/log4j/pig
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Jersey clientFilter 过滤
  • 自定义filter过滤
  • 总结:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档