zoukankan      html  css  js  c++  java
  • Nepxion discovery的一些使用

       最近在接入全链路灰度的测试,调研了nepxion discovery,研究了下nepxion discovery怎么接入的问题,在这里记录下心得。

       https://github.com/Nepxion/Discovery

       无需介绍,只要想做spring cloud灰度发布,肯定都会调研过这个神器,目测也有很多使用心得,这里只说一些自己接入的感受。

       1. 如果需要灰度,Nepxion discovery还是需要开发撸一些代码作为灰度规则的,也需要自己手动撸一些代码的,包括流量判断,环境判断,标记判断,版本判断等灰度发布的策略支持。

     在impl里,需要手动实现拦截器,进行拦截,举例如下:

       如果我需要根据版本灰度,我需要实现以下拦截器:

       

    public class MyDiscoveryEnabledStrategy extends DefaultDiscoveryEnabledStrategy {
    private static final Logger LOG = LoggerFactory.getLogger(MyDiscoveryEnabledStrategy.class);

    // 对REST调用传来的Header参数(例如:mobile)做策略
    @Override
    public boolean apply(Server server) {
    String mobile = strategyContextHolder.getHeader("mobile");
    String serviceId = pluginAdapter.getServerServiceId(server);
    String version = pluginAdapter.getServerVersion(server);
    String region = pluginAdapter.getServerRegion(server);
    String environment = pluginAdapter.getServerEnvironment(server);
    String address = server.getHostPort();

    LOG.info("负载均衡用户定制触发:mobile={}, serviceId={}, version={}, region={}, env={}, address={}", mobile, serviceId, version, region, environment, address);

    if (StringUtils.isNotEmpty(mobile)) {
    // 手机号以移动138开头,路由到1.0版本的服务上
    if (mobile.startsWith("138") && StringUtils.equals(version, "1.0")) {
    return true;
    // 手机号以联通133开头,路由到2.0版本的服务上
    } else if (mobile.startsWith("133") && StringUtils.equals(version, "1.1")) {
    return true;
    } else {
    // 其它情况,直接拒绝请求
    return false;
    }
    }

    return true;
    }
    }

       在这里,灰度版本是1.1,常规版本是1.0,也就是说,根据header的值来进行路由,到底是选择常规版本还是灰度版本。

       这是使用discovery在我们的demo项目上增加的filter。

       在压测中出现过一个问题,nepxion集成了zuul,在引用了nepxion的jar包后,需要自定义semaphore.maxSemaphores,否则,压测达到1k+并发的时候,就会触发我们的熔断了。

  • 相关阅读:
    JavaScript学习笔记(七) 跨域问题
    JavaScript学习笔记(六) 异步问题
    JavaScript学习笔记(五) jQuery
    查看Wii的系统版本信息
    运行你的应用
    创建一个Android工程
    构建你的第一个App
    Android Studio开发环境部署
    酷派D530刷机指引
    酷派D530刷机指引之民间ROM
  • 原文地址:https://www.cnblogs.com/spillage/p/11996710.html
Copyright © 2011-2022 走看看