统计接口调用耗时情况设计思路(大厂面试题)
gateway统计接口调用耗时情况设计思路(大厂面试题)
详情视频可以去看尚硅谷2024周阳老师的springCloud P86
知识出处自定义全局过滤器官网https://docs.spring.io/spring-cloud-gateway/docs/current/reference/html/#gateway-combined-global-filter-and-gatewayfilter-ordering
这是springCloud里面的内容源码
@Bean
public GlobalFilter customFilter() {return new CustomGlobalFilter();
}public class CustomGlobalFilter implements GlobalFilter, Ordered {@Overridepublic Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {log.info("custom global filter");return chain.filter(exchange);}@Overridepublic int getOrder() {return -1;}
}
`
@Component
@Slf4j
public class MyGlobalFilter implements GlobalFilter, Ordered {private static final String BEGIN_VISIT_TIME = "begin_visit_time";//开始访问时间/***第2版,各种统计* @param exchange* @param chain* @return*/@Overridepublic Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {//先记录下访问接口的开始时间 exchange.getAttributes() 返回一个map容器 BEGIN_VISIT_TIME被记录到map里面exchange.getAttributes().put(BEGIN_VISIT_TIME, System.currentTimeMillis());return chain.filter(exchange).then(Mono.fromRunnable(()->{Long beginVisitTime = exchange.getAttribute(BEGIN_VISIT_TIME);if (beginVisitTime != null){log.info("访问接口主机: " + exchange.getRequest().getURI().getHost());log.info("访问接口端口: " + exchange.getRequest().getURI().getPort());log.info("访问接口URL: " + exchange.getRequest().getURI().getPath());log.info("访问接口URL参数: " + exchange.getRequest().getURI().getRawQuery());log.info("访问接口时长: " + (System.currentTimeMillis() - beginVisitTime) + "ms");log.info("我是美丽分割线: ###################################################");System.out.println();}}));}// 数字越小优先级越高@Overridepublic int getOrder() {return 0;}
}
调用结果
2024-03-09T13:40:55.305+08:00 INFO 5392 --- [cloud-gateway] [ main] com.atguigu.cloud.Main9527 : Started Main9527 in 2.484 seconds (process running for 2.94)
2024-03-09T13:41:03.492+08:00 INFO 5392 --- [cloud-gateway] [ctor-http-nio-5] com.atguigu.cloud.MyGlobalFilter : 访问接口主机: 192.168.127.117
2024-03-09T13:41:03.492+08:00 INFO 5392 --- [cloud-gateway] [ctor-http-nio-5] com.atguigu.cloud.MyGlobalFilter : 访问接口端口: 9527
2024-03-09T13:41:03.492+08:00 INFO 5392 --- [cloud-gateway] [ctor-http-nio-5] com.atguigu.cloud.MyGlobalFilter : 访问接口URL: /pay/gateway/get/1
2024-03-09T13:41:03.492+08:00 INFO 5392 --- [cloud-gateway] [ctor-http-nio-5] com.atguigu.cloud.MyGlobalFilter : 访问接口URL参数: null
2024-03-09T13:41:03.492+08:00 INFO 5392 --- [cloud-gateway] [ctor-http-nio-5] com.atguigu.cloud.MyGlobalFilter : 访问接口时长: 133ms
2024-03-09T13:41:03.492+08:00 INFO 5392 --- [cloud-gateway] [ctor-http-nio-5] com.atguigu.cloud.MyGlobalFilter : 我是美丽分割线: ###################################################
相关文章:
统计接口调用耗时情况设计思路(大厂面试题)
gateway统计接口调用耗时情况设计思路(大厂面试题) 详情视频可以去看尚硅谷2024周阳老师的springCloud P86 知识出处自定义全局过滤器官网https://docs.spring.io/spring-cloud-gateway/docs/current/reference/html/#gateway-combined-global-filter-…...
Elasticsearch:什么是 DevOps?
DevOps 定义 DevOps 是一种现代软件开发方法,它将公司软件开发 (Dev) 和 IT 运营 (Ops) 团队的工作结合起来并实现自动化。 DevOps 提倡这样一种理念:这些传统上独立的团队在协作方面比在孤岛中更有效。 理想情况下,DevOps 团队共同努力改进…...
C语言基础练习——Day03
目录 选择题 编程题 记负均正 旋转数组的最小数字 选择题 1、已知函数的原型是:int fun(char b[10], int *a);,设定义:char c[10];int d;,正确的调用语句是 A fun(c,&d);B fun(c,d);C fun(&c,&d);D fun(&c,d); 答…...
膜厚测量仪在半导体应用中及其重要
随着科技的不断发展,半导体行业已成为当今世界的核心产业之一。在这个领域中,半导体膜厚测量仪作为关键设备,其精度和可靠性对于产品质量和生产效率具有至关重要的作用。本文将详细介绍半导体膜厚测量仪的工作原理、应用领域以及其在半导体制…...
【前端】-初始前端以及html的学习
💖作者:小树苗渴望变成参天大树🎈 🎉作者宣言:认真写好每一篇博客💤 🎊作者gitee:gitee✨ 💞作者专栏:C语言,数据结构初阶,Linux,C 动态规划算法🎄 如 果 你 …...
uni-app navigateTo路由传参传递对象
传递参数 先通过JSON.stringify将对象转成字符串 toNextPage(obj) {uni.navigateTo({url:/pages/nextpage/index?obj${JSON.stringify(obj)}}); },接收参数 再通过JSON.parse将传递过来的字符串转成对象 onLoad(options) {this.obj JSON.parse(options.obj) }...
99 centos 7 服务器上面 增加了 2181 的防火墙配置, 但是客户端连接不上
呵呵 最近部署 zookeeper 的时候出现这样的一个问题 centos 7 服务器上面 增加了 2181 的防火墙配置, 但是客户端连接不上 # 但是再 另外的一个虚拟机环境, ubuntu 16 的环境, docker 启动 2181 的服务, 然后 安装 firewalld, 配置 开放 2181 的 tcp 服务, 客户端能够正常连接…...
云计算科学与工程实践指南--章节引言收集
云计算科学与工程实践指南–章节引言收集 //本文收集 【云计算科学与工程实践指南】 书中每一章节的引言。 我已厌倦了在一本书中阅读云的定义。难道你不失望吗?你正在阅读一个很好的故事,突然间作者必须停下来介绍云。谁在乎云是什么? 通…...
探索Web中的颜色选择:不同取色方法的实现
在Web开发中,提供用户选择颜色的功能是很常见的需求。无论是为了个性化UI主题,还是为了图像编辑工具,一个直观且易用的取色器都是必不可少的。本文将介绍几种在Web应用中实现取色功能的方法,从简单的HTML输入到利用现代API的高级技…...
突破编程_C++_设计模式(策略模式)
1 策略模式的概念 策略模式(Strategy Pattern)是 C 中常用的一种行为设计模式,它能在运行时改变对象的行为。在策略模式中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为模式。 在策略模式中,需…...
【uniapp】uniapp小程序中实现拍照同时打开闪光灯的功能,拍照闪光灯实现
一、需求前提 特殊场景中,需要拍照的同时打开闪光灯,(例如黑暗场景下的设备维护巡检功能)。 起初我是用的uviewui中的u-upload组件自带的拍照功能,但是这个不支持拍照时打开闪光灯,也不支持从通知栏中打开…...
在python model train里如何驯服野生log?
关键词:python 、epoch、loss、log 🤖: 记录模型的训练过程的步骤如下: 导入logging模块。配置日志记录器,设置日志文件名、日志级别、日志格式等。在每个epoch结束时,使用logging模块记录性能指标、损失值、准确率等信…...
产品推荐 - Xilinx FPGA下载器 XQ-HS/STM2
1 FPGA下载器简介 1.性能优良 FPGA下载器XQ-HS/STM2采用Xilinx下载模块设计而成(JTAG-SMT2NC模块,该模块与Xilinx官方开发板KC705,KCU105,ZC702,ZC706,Zedboard等板载下载器一样,下载速度快…...
STM32 SDRAM知识点
1.SDRAM和SRAM的区别 SRAM不需要刷新电路即能保存它内部存储的数据。而SDRAM(Dynamic Random Access Memory)每隔一段时间,要刷新充电一次,否则内部的数据即会消失,因此SRAM具有较高的性能,但是SRAM也有它…...
手写分布式配置中心(六)整合springboot(自动刷新)
对于springboot配置自动刷新,原理也很简单,就是在启动过程中用一个BeanPostProcessor去收集需要自动刷新的字段,然后在springboot启动后开启轮询任务即可。 不过需要对之前的代码再次做修改,因为springboot的配置注入value("…...
记录一次排查负载均衡不能创建的排查过程
故障现象,某云上,运维同事在创建负载均衡的时候,发现可以创建资源,但是创建完之后,不显示对应的负载均衡。 创建负载均衡时候,按f12发现console有如下报错 后来请后端网络同事排查日志发现,是后…...
数据推送解决方案调研
需求 文档编辑类型的需求,左侧是菜单栏,右侧是内容块,现在的需求时,如果多人同时编辑这个方案,当添加章节/调整章节顺序/删除章节时,其他用户能够及时感知到。 解决方案调研 前端轮询 最简单的方案&…...
二、NLP中的序列标注(分词、主体识别)
一般来说,一个序列指的是一个句子,而一个元素指的是句子中的一个词。在序列标注中,我们想对一个序列的每一个元素标注一个分类标签。比如信息提取问题可以认为是一个序列标注问题,如提取出会议时间、地点等。 常见的应用场景&…...
seq2seq翻译实战-Pytorch复现
🍨 本文为[🔗365天深度学习训练营学习记录博客 🍦 参考文章:365天深度学习训练营 🍖 原作者:[K同学啊 | 接辅导、项目定制]\n🚀 文章来源:[K同学的学习圈子](https://www.yuque.com/…...
软考69-上午题-【面向对象技术2-UML】-关系
一、关系 UML中有4种关系: 依赖;关联;泛化;实现。 1-1、依赖 行为(参数),参数就是被依赖的事物,即:独立事物。 当独立事物发生变化时,依赖事务行为的语义也…...
魔兽争霸3优化终极指南:5分钟解决Windows 11兼容性问题
魔兽争霸3优化终极指南:5分钟解决Windows 11兼容性问题 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper WarcraftHelper是一款专为经典游戏…...
CefFlashBrowser:解决Flash内容访问与存档管理的完整解决方案
CefFlashBrowser:解决Flash内容访问与存档管理的完整解决方案 【免费下载链接】CefFlashBrowser Flash浏览器 / Flash Browser 项目地址: https://gitcode.com/gh_mirrors/ce/CefFlashBrowser 你是否还在为无法在现代浏览器中运行经典Flash游戏而烦恼&#x…...
【OpenCV 实战】LBP 统计直方图:从纹理特征到图像识别的关键一步
1. 为什么LBP统计直方图是图像识别的秘密武器? 第一次接触LBP(局部二值模式)时,我盯着那些黑白相间的纹理图看了半天——这不就是把像素点变成01编码吗?直到把统计直方图加进去,才发现这个组合简直是纹理识…...
Altium Designer 19编译原理图,别再被‘has only one pin’和‘off grid’警告搞懵了(附三种实战解法)
Altium Designer 19编译原理图:三大典型警告的深度解析与实战应对 刚接触Altium Designer的新手工程师们,在完成第一个原理图设计后点击"编译"按钮时,往往会遭遇这样的场景:满心期待瞬间被满屏英文警告浇灭。那些"…...
一级减速器正文、零件图、装配图、说明书
一级减速器是机械传动系统中的核心部件,通过齿轮啮合实现转速降低、扭矩增大的功能,广泛应用于机床、输送设备、工程机械等领域。其核心作用在于匹配动力源与负载的转速需求,例如将电机的高速旋转转化为设备所需的低速大扭矩输出,…...
安知鱼主题音乐播放器集成教程:打造个性化音乐空间
安知鱼主题音乐播放器集成教程:打造个性化音乐空间 【免费下载链接】hexo-theme-anzhiyu 安知鱼主题,这是一个简洁美丽的hexo主题。 项目地址: https://gitcode.com/gh_mirrors/he/hexo-theme-anzhiyu 安知鱼主题是一款简洁美丽的Hexo主题&#x…...
Neeshck-Z-lmage_LYX_v2企业级:支持审计日志与生成记录全链路追踪
Neeshck-Z-lmage_LYX_v2企业级:支持审计日志与生成记录全链路追踪 1. 项目简介:一个更懂你的本地绘画助手 如果你尝试过在本地运行一些AI绘画模型,可能会遇到几个头疼的问题:模型太大,显卡内存不够用;想换…...
SDMatte效果对比展示:普通抠图vs SDMatte+,叶片锯齿消除与羽化自然度
SDMatte效果对比展示:普通抠图vs SDMatte,叶片锯齿消除与羽化自然度 1. 效果展示概览 SDMatte作为一款专业级AI抠图工具,在处理复杂边缘和半透明物体方面展现出显著优势。本文将重点对比标准版SDMatte与增强版SDMatte在处理叶片锯齿和羽化效…...
构建企业级AI助手:Phi-4-mini-reasoning与SpringBoot微服务集成
构建企业级AI助手:Phi-4-mini-reasoning与SpringBoot微服务集成 1. 企业AI助手的价值与挑战 在数字化转型浪潮中,智能助手正成为企业提升效率的关键工具。传统客服系统每天需要处理大量重复性咨询,人工成本居高不下;内部知识库检…...
C++ MapViewOfFile 内存映射实战:解锁Windows大文件高效处理
1. 为什么需要内存映射技术? 如果你曾经尝试用传统方式读取几个GB的大文件,可能会遇到性能瓶颈。我做过一个实验:用fread逐块读取1GB的日志文件,耗时超过3秒;而改用内存映射方式,同样的文件仅需不到0.5秒。…...
