• 浅析Spring Cloud Gateway中的令牌桶限流算法

    目录 前言 回顾限流算法 计数器/时间窗口法 漏桶法 令牌桶法 主要逻辑分析 前言 在一个分布式高并发的系统设计中,限流是一个不可忽视的功能点.如果不对系统进行有效的流量访问限制,在双十一和抢票这种流量洪峰的场景下,很容易就会把我们的系统打垮.而作为系统服务的卫兵的网关组件,作为系统服务的统一入口,更需要考虑流量的限制,直接在网关层阻断流量比在各个系统中实现更合适.Spring Cloud Gateway的实现中,就提供了限流的功能,下面主要分析下Spring Cloud Gateway中是如何

    2026-03-31
  • webpack实用小功能介绍

    上一次分享了vue2-webpack3,大多都是一些基础的内容,本期继续分享一些webpack比较实用的功能 1.overlay overlay属于devServer的属性,配置案例如下: devServer: { overlay: { errors: true, warnings: true } } 配置很简单,那它的作用是什么呢?overlay的作用是可以在浏览器打开的页面显示终端编译时产生的错误.通过配置该属性,以后在写代码的时候,编译如果出错了,我们就不需要打开终端看到底是什么报错了,可

    2026-03-31
  • 浅谈JVM系列之JIT中的Virtual Call

    Virtual Call和它的本质 有用过PrintAssembly的朋友,可能会在反编译的汇编代码中发现有些方法调用的说明是invokevirtual,实际上这个invokevirtual就是Virtual Call. Virtual Call是什么呢? 面向对象的编程语言基本上都支持方法的重写,我们考虑下面的情况: private static class CustObj { public void methodCall() { if(System.currentTimeMillis()==

    2026-03-31
  • JavaScript删除对象的不必要的属性

    目录 示例 方式一:delete 删除 方式二:解构 总结 补充 总结 Thinking系列,旨在利用10分钟的时间传达一种可落地的编程思想. 业务开发中,我们经常会遇到:基于后端返回接口数据,前端保存到对象 Object 中,前端开发过程中为了一些场景的便利性,需要在该对象中增加相应的属性,但这些属性对于后端没有意义,保存提交时希望删除掉. 真实业务代码:保存前需要删除对应的 *Value 字段 async saveData (type, data) { // 提交时删除多余字段 delete

    2026-03-31
  • nginx使用replace-filter-nginx-module实现内容替换的示例

    有时候我们想对响应(例如PHP接口)返回的内容做些字符串,虽然可以使用各语言代码相关方法(例如PHP的str_replace)进行替换,但是在nginx层面替换是更方便的,无需修改代码. 约定:本文源代码目录统一放在:/root/soft/src 里. 安装 安装此模块需要先安装 sregex 运行库: $ git clone https://github.com/agentzh/sregex $ cd sregex $ make $ make install 然后安装 replace-filt

    2026-03-31
  • node.js使用express-jwt报错:expressJWT is not a function解决

    目录 问题描述 控制台报错 问题原因 解决办法一 解决办法二 问题解决 总结 问题描述 node.js 使用 express-jwt 生成token报错 控制台报错 问题原因 由于express-jwt 版本的更新,之前的语法不适用于现在的 新版本 ,可以看到现在 是 7 开头的版本 解决办法一 简单粗暴,换更早版本的  express-jwt 卸载  npm uninstall express-jwt 安装先前版本 npm i express-jwt@5.3.3 解决办法二 因为版本问题,最新

    2026-03-31
  • IDEA2022性能优化的一些设置技巧

    目录 1. 关掉没用的插件 2. 关掉阿里编码规约 3. 调整Inspections检查 4. 调整内存占用 因为本人电脑配置比较低,导致IDEA用起来卡卡的,经过设置之后有所缓解,可以参考.我这里IDEA版本为 2022.1.2 ,注意区分版本. 1. 关掉没用的插件 IDEA预装的插件是很多的,有很多都用不上,比如说新版本会有 code with me 这样的插件,基本用不到,就可以取消掉,大家根据自己的需求搞. Settings>Plugins 2. 关掉阿里编码规约 虽然这个也是插件,但

    2026-03-31
  • 深入了解C语言结构化的程序设计

    目录 C语言是结构化的程序设计语言! if语句 1:单分支结构 2:多分支结构 悬空else while循环 总结 C语言是结构化的程序设计语言! 结构有三大类:顺序结构,选择结构,循环结构! 顺序结构:顺序结构是最简单的,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行. 举个例子: #include<stdio.h> int main() { int i=1;//这段代码中i依次为1,2,3 printf("%d\n",i);//同时打印1,2

    2026-03-31
  • javascript 基础篇4 window对象,DOM

    他的属性也很丰富,因为我很懒,我就直接复制手册里的东西了: closed 获取引用窗口是否已关闭. defaultStatus 设置或获取要在窗口底部的状态栏上显示的缺省信息. dialogArguments 设置或获取传递给模式对话框窗口的变量或变量数组. dialogHeight 设置或获取模式对话框的高度. dialogLeft 设置或获取模式对话框的左坐标. dialogTop 设置或获取模式对话框的顶坐标. dialogWidth 设置或获取模式对话框的宽度. frameElement

    2026-03-31
  • zabbix监控mysql的实例方法

    1.监控规划 在创建监控项之前要尽量考虑清楚要监控什么,怎么监控,监控数据如何存储,监控数据如何展现,如何处理报警等.要进行监控的系统规划需要对Zabbix很了解,这里只是提出监控的需求. 需求一:监控MySQL的状态,当状态发生异常,发出报警: 需求二:监控MySQL的操作,并用图表展现: 2.自定义脚本监控扩展Agent Zabbix Server与Agent之间监控数据的采集主要是通过Zabbix Server主动向Agent询问某个Key的值,Agent会根据Key去调用相应的函数去获取

    2026-03-31
  • java同步之如何写一个锁Lock

    问题 (1)自己动手写一个锁需要哪些知识? (2)自己动手写一个锁到底有多简单? (3)自己能不能写出来一个完美的锁? 简介 本篇文章的目标一是自己动手写一个锁,这个锁的功能很简单,能进行正常的加锁.解锁操作. 本篇文章的目标二是通过自己动手写一个锁,能更好地理解后面章节将要学习的AQS及各种同步器实现的原理. 分析 自己动手写一个锁需要准备些什么呢? 首先,在上一章学习synchronized的时候我们说过它的实现原理是更改对象头中的MarkWord,标记为已加锁或未加锁. 但是,我们自己是无

    2026-03-31
  • springboot 实现记录业务日志和异常业务日志的操作

    日志记录到redis展现形式 1.基于注解的方式实现日志记录,扫描对应的方法实现日志记录 @Inherited @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.METHOD}) public @interface BussinessLog { /** * 业务的名称,例如:"修改菜单" */ String value() default ""; /** * 被修改的实体的唯一标识,例如:菜单实体的唯一

    2026-03-31
  • 图文讲解如何解决App的iOS 7顶部状态栏适配问题

    首先说明下,ios7中,由于status bar不再占用单独的20px,如果app需要同时支持ios7和ios6.1以下,那就需要适配下了,适配开始: 先看用xcode新建项目后 IOS7和IOS6上的的运行效果: ps:一个empty application 里面+了一个rootcontroller,作为window的根控制器,view里面放了一个tableview; 是不是遇到的IOS7的新问题,状态栏跟tableview重叠了,OK,看见这个不想看到的结果,下面我们就开始正式的解决掉这个招

    2026-03-31
  • Vue实现数字时钟效果

    用Vue写了一个简单的时间钟,供大家参考,具体内容如下 此时钟内容包括年月日及星期和时分秒. 功能分析: 1.年份,日期,时间的显示2.动态的变化3.获取本地时间方法 效果图演示 代码演示 注意:引入vue.min.js架包 <script src="js/vue.min.js"></script> CSS样式 <script src="js/vue.min.js"></script> <style> ht

    2026-03-31
  • 快速掌握Go语言正/反向代理

    先重温一下什么叫反向代理,正向代理. 所谓正向,反向代理取决于代理的是出站请求,还是入站请求. 正向代理: 代理的出站请求, 客户端能感知到代理程序,架构上距离客户端更近.反向代理: 代理的是入站请求,客户端认为代理程序就是服务器,客户端感知不到代理逻辑,架构上距离服务端更近. 前几天利用golang实现了反向代理程序,引出了Host请求头在反代中的关键作用. 对于proxy.com的请求,都被透明无感代理到A.com package main import ( "fmt" "

    2026-03-31
  • vue.js移动端app之上拉加载以及下拉刷新实战

    上拉加载以及下拉刷新都是移动端很常见的功能,在搜索或者一些分类列表页面常常会用到. 跟横向滚动一样,我们还是采用better-scroll这个库来实现.由于better已经更新了新的版本,之前是0.几的版本,更新了一下发现,现在已经是1.2.6这个版本了,新版本多了些 比较好用的api,所以我也重写了之前的代码,用新的api来实现上拉加载以及下拉刷新. 首先把基本的样式写好,这里就略过了,然后引入better-scroll库 import BScroll from 'better-scroll'

    2026-03-31
  • Android开启ADB网络调试方法

    开启ADB网络调试 # setprop service.adb.tcp.port 5555 # stop adbd # start adbd 连接: $ adb connect 192.168.0.100 以上这篇Android开启ADB网络调试方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

    2026-03-31
  • Python统计节假日剩余天数的脚本

    目录 1.前言 2.倒计时脚本 1.前言 如何快速的想了解距离节假日还有多少天? 接下来使用Python脚本来解决这个问题. 2.倒计时脚本 脚本代码: #!/usr/bin/env python # -*- coding: utf-8 -*- from colorama import init, Fore from zhdate import ZhDate import datetime def get_week_day(date): week_day_dict = { 0: '星期一', 1

    2026-03-31
  • 基于C++实现一个日期计算器

    目录 一.日期计算器的功能 二.获取每个月的天数 三.Date类中的默认成员函数 1.构造函数 2.析构函数 3.拷贝构造 4.赋值运算符重载 四.运算符重载 1.+=.+.-=.- 2.==.!=.>.>=.<.<= 3.前置++和--.后置++和-- 五.日期类代码 一.日期计算器的功能 实现日期类的==.!=.+=.+.-=.-.>=.>.<=.<.前置++和--.后置++和--. 二.获取每个月的天数 int GetMonthDay(int year

    2026-03-31
  • Python实现寻找回文数字过程解析

    回文数字是很有意思的数字,不管从最高位开始念,还是从个位开始念,最终结果都一样,有一种对称美. 下面是回文数字的函数判断方式: def is_palindrome(n): str_num = str(n) len_num = len(str_num) if len_num <= 2 and str_num[0] == str_num[-1]: return True else: half_len = round(len_num/2) for i in range(half_len): if no

    2026-03-31
yixingzi wulianji zhihuizuan yunmashang pengyihao