当前位置: 首页 > 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://www.yutouwan.com/news/79855/

相关文章:

  • 网站建设下载模板之后怎么修改wordpress分类页面不显示内容
  • 东莞网站关键字郑州铭功路网站建设
  • 网站的手机客户端怎样做python手机版
  • 途牛旅游网站建设目的网站建设使用的基本技术
  • 请问聊城做网站网站建设后应该干什么
  • 邢台做企业网站wordpress导航链接地址都是主页
  • 为什么访问外国网站速度慢qq空间做宣传网站
  • 做网站协调国内搜索引擎排名第一的是
  • 品牌网站建设预算网站加入搜索引擎怎么做
  • 灵台县住房和城乡建设局网站wordpress seo模块
  • 网站工信部不备案吗c4d培训
  • 网站设计的公司概况简介discuz网站模板
  • 如何建立一个网站英语作文机关门户网站建设意义
  • 电子商务网站设计的书甜品售卖网站网页设计
  • 营业执照上有以上除网站制作网站设计与制作前景
  • 做一个自己的免费网站吗长春网站制作小程序
  • 环保网站建设公司排名甘肃平凉建设局网站
  • 网站排名西安自己怎样做网站文章关键词内链
  • 怎么做集团网站网页设计主题内容
  • 开发高端网站建设手机做炫光头像图的网站
  • 海淀做网站的公司考虑了软件开发过程中的风险
  • 第二章 营销型网站建设测验网销是什么工作好做吗
  • 购买营销型网站c2c电子商务网站策划
  • 邢台网站维护个旧市哪里有做网站
  • php手机网站怎么做适合前端做项目的网站
  • 上海建站shwzzz网站开发一个页面多少钱
  • 宝塔建设网站wordpress 媒体库插件
  • 网站推广营销效果怎么在百度上创建网站
  • 公司网站建设模块简介电子计算机哪个专业最吃香
  • 怎么在服务器里面做网站甘肃省城乡建设局网站首页