当前位置: 首页 > news >正文

公司网站的管理和维护建筑设计公司logo

公司网站的管理和维护,建筑设计公司logo,特殊符号网站,智能搭建网站思路 补充一下#xff0c;为什么这里我会想到使用pre类型的过滤器实现流量复制/流量镜像。 刚开始的时候#xff0c;参考了阿里的流量镜像实现方案#xff1a; 配置流量复制策略#xff0c;阿里的方案本身是对基于云原生envoy做的#xff0c;这确实是istio原…思路 补充一下为什么这里我会想到使用pre类型的过滤器实现流量复制/流量镜像。 刚开始的时候参考了阿里的流量镜像实现方案 配置流量复制策略阿里的方案本身是对基于云原生envoy做的这确实是istio原生能力。istio原生是通过配置spec.-mirror这个参数开启流量复制功能阿里将这个功能白屏化并且对接了自己的监控不得不承认阿里对原生istio的很友好。 kubectl describe vs my-virtualservice随后我尝试了sidecar注入、修改envoy配置但皆以失败告终一是平台不支持VirtualService二是平台对Envoy做了一定的优化配置文件里的各种参数魔改的让我摸不着头脑。 直到上周突然想到流量复制使用envoy来做的原因之一是因为envoy充当了网关那可不可以用zuul来实现有了这个想法后立即搜索了一遍网上对于zuul的特性描述只有极少数的博客提到了zuul的复制功能但均无现成的实现。问题不大有可行性就行。 实现过程很容易联想到zuul的过滤器因为pre过滤器可以完整地访问和修改请求信息可以直接拿到请求并将其复制给镜像服务。有了这个思路一切就顺利多啦 Spring Cloud代码 在zuul端创建class TrafficCopyFilter ●假设provider-mirror是provider-demo的灰度应用 package com.tencent.tsf.msgw.zuul1.filter;import com.netflix.zuul.ZuulFilter; import com.netflix.zuul.context.RequestContext; import org.slf4j.LoggerFactory; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpMethod; import org.springframework.web.client.RestTemplate;import javax.servlet.http.HttpServletRequest; import java.util.Enumeration;import org.slf4j.Logger;public class TrafficCopyFilter extends ZuulFilter {private static final Logger LOG LoggerFactory.getLogger(TrafficCopyFilter.class);private RestTemplate restTemplate new RestTemplate();Overridepublic String filterType() {return pre;}Overridepublic int filterOrder() {return 1;}Overridepublic boolean shouldFilter() {return true;}Overridepublic Object run() {RequestContext ctx RequestContext.getCurrentContext();HttpServletRequest request ctx.getRequest();// 检查请求是否是发送给服务A的if (request.getRequestURI().contains(/provider-demo)) {LOG.info(复制请求到mirror服务);// 将请求复制到服务BString param request.getRequestURI().substring(request.getRequestURI().lastIndexOf(/) 1); // 提取参数String bServiceUrl http://svcb host ip:port/echo/ param; //这里写mirror服务的镜像地址后期可从配置文件中读入HttpMethod method HttpMethod.valueOf(request.getMethod());HttpHeaders headers new HttpHeaders();EnumerationString headerNames request.getHeaderNames();while (headerNames.hasMoreElements()) {String headerName headerNames.nextElement();headers.add(headerName, request.getHeader(headerName));}HttpEntityString entity new HttpEntity(headers);try {restTemplate.exchange(bServiceUrl, method, entity, Void.class);} catch (Exception e) {// 捕获异常避免影响客户端LOG.error(复制请求到mirror服务失败: {}, e.getMessage());}}return null;} } 配置类 package com.tencent.tsf.msgw.zuul1.filter;import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;Configuration public class ZuulConfig {Beanpublic TrafficCopyFilter trafficCopyFilter() {return new TrafficCopyFilter();} } 最后查看服务日志会发现通过zuul请求provider /echo 接口时流量会被复制到provider-mirror 遗留的问题 查看apm调用链的时候会发现调用链缺失分析原因是因为traceid是在流量入口的时候生成的使用zuul复制流量的过程相当于做了内部的流量转发不会在日志中生成traceid也就无法生成调用链。
http://wiki.neutronadmin.com/news/79855/

相关文章:

  • 那种非法网站怎么做的内部网站建设依据文件
  • wordpress首页筛选厦门seo外包平台
  • 潍坊公司网站模板建站公众号排版编辑器app
  • 网站开发常用插件怎么建立信息网站平台
  • 有没有工程外包的网站网站建设企业熊掌号
  • 中山做百度网站的公司吗数字创意设计包括哪些行业
  • 肥西县重点工程建设管理局网站wordpress教程文档
  • 网站建设平台的比较怎么开发自己的网站
  • 华为弹性云做网站查网站备案号
  • 南阳seo网站建设费用百度提交入口网站网址
  • 网站建设可行性分析报告南宁新站seo
  • 免费wordpress网站access 可以做网站不
  • 网站建设 自适应企业vi设计策划书
  • 网站推广效益怎么分析东莞品牌网站设计
  • 网站更改了资料 百度什么时侯来抓取wordpress 编辑器 空格
  • 制作企业网站的流程凡科能上传自己做的网站
  • 给人做ppt的网站吗软件工程培训班出来好就业吗
  • 做面点的网站网站建设工作策划方案
  • 做网站商城如何优化wordpress大前端模板下载
  • 淮北市建设局网站注册网站会有哪些风险
  • 网页模板怎么做网站买了域名不备案行吗
  • 自媒体自助下单网站怎么做去哪儿网站开发
  • 青岛专业网站制作设计杭州人才招聘网
  • 数据库网站建设教程wordpress自己写代码
  • 唐山网站建设冀icp备网址链接
  • 松原企业网站建设郑州七彩网站建设公司 交通
  • 西安市规划建设局网站网站加入wordpress
  • 赣州章贡区邮政编码是多少南宁企业网站排名优化
  • 中山营销型网站设计如何建立网上商城
  • 手机网站开放惠州百度搜索优化