草庐IT

SpringAOP原理

全部标签

13. 滑动时间窗口算法概念原理

1.时间窗介绍在之前的学习中,我们已经学习完成了Sentinel源码的Node关系、责任链调用,那么这节课我们就要学习Sentinel核心源码中的一个非常重要的算法“滑动时间窗口算法”,也就是结构图中的WindowLeapArray,它为Sentinel提供当前时间的数据支撑,如当前QPS,请求数,异常数等。2.固定时间窗口算法要学习滑动窗口,我们先要学习时间窗口算法,以循序渐进的方式了解滑动窗口,时间窗口算法也可以称之为:固定时间窗算法概念:固定时间窗口计数器算法思想:在固定的时间窗口内,可以允许固定数量的请求进入。超过数量就拒绝或者排队,等下一个时间段进入。那我们来看图分析:具体分析一下:

说一下线程池的核心参数,线程池的执行原理知道嘛

1.线程池的核心参数线程池七大核心参数如下所示:publicThreadPoolExecutor(intcorePoolSize,intmaximumPoolSize,longkeepAliveTime,TimeUnitunit,BlockingQueueworkQueue,ThreadFactorythreadFactory,RejectedExecutionHandlerhandler)corePoolSize: 核心线程数目maximumPoolSize: 最大线程数目 =(核心线程+救急线程的最大数目)keepAliveTime: 生存时间-救急线程的生存时间,生存时间内没有新任务,此

Kubernetes 中的服务注册与发现原理分析

对k8s有点了解技术人员,应该都只知道k8s是有服务注册发现的,今天就分析下这个原理,看看怎么实现的。什么是服务注册与发现服务注册与发现是一种机制,用于在集群中动态地发现和连接不同的服务,比如我们在开发微服务时,经常使用的Eureka、Nacos等ServiceB把自己注册到ServiceRegistry叫做服务注册ServiceA从ServiceRegistry发现ServiceB的节点信息叫做服务发现K8s中为什么需要服务发现动态性在K8s集群中,Pod和服务的数量和位置都是动态变化的,Pod有可能伸缩、重新部署或迁移,在这样的环境下,如果硬编码的服务地址是不可行的,所以服务注册与发现使得

SPI扩展点在业务中的使用及原理分析

1什么是SPISPI全称ServiceProviderInterface。面向接口编程中,我们会根据不同的业务抽象出不同的接口,然后根据不同的业务实现建立不同规则的类,因此一个接口会实现多个实现类,在具体调用过程中,指定对应的实现类,当业务发生变化时会导致新增一个新的实现类,亦或是导致已经存在的类过时,就需要对调用的代码进行变更,具有一定的侵入性。整体机制图如下:JavaSPI实际上是“基于接口的编程+策略模式+配置文件”组合实现的动态加载机制。2SPI在京喜业务中的使用2.1简介目前仓储中台和京喜BP的合作主要通过SPI扩展点的方式。好处就是对修改封闭、对扩展开放,中台不需要关心BP的业务实

云计算:从基础架构原理到最佳实实之:云计算容器化与微服务架构

作者:禅与计算机程序设计艺术1.背景介绍1996年贝尔实验室的计算机科学家尼克·皮特(Niemer-Phet)在美国IBM的一台计算机上实现了第一台真正意义上的“超级计算机”。这一计算机拥有超过3万个处理器核心,能够执行超过1亿条指令并处理复杂的数据。然而,当时仅靠这一台超级计算机还无法满足对海量数据进行快速分析和处理的需求。这就是所谓的“大规模并行计算”(MassivelyParallelComputing)问题。随着计算机性能的不断提高、存储设备的发展、互联网的普及以及云计算的出现,解决“大规模并行计算”问题变得越来越重要。1998年,AWS和阿里云等公共云平台服务商首先提出了将“计算资源

【Android】VirtualDisplay创建流程及原理

AndroidVirtualDisplay创建流程及原理AndroidDisplayManager提供了createVirtualDisplay接口,用于创建虚拟屏。虚拟屏可用于录屏(网上很多资料说这个功能),分屏幕(比如一块很长的屏幕,通过虚拟屏分出不同的区域)等等。创建VirtualDisplayDisplayManager中的函数原型如下。后两个Hide的API,只有平台的应用才可以使用。//frameworks/base/core/java/android/hardware/display/DisplayManager.javapublicVirtualDisplaycreateVir

SpringBoot——日志及原理

优质博文:IT-BLOG-CN一、SpringBoot日志选用SLF4j(接口)和logback(实现类),除了上述日志框架,市场上还存在JUL(java.util.logging)、JCL(ApacheCommonsLogging)、Log4j、Log4j2、SLF4j、jboss-logging等。SpringBoot在框架内部使用JCL,SpringBoot的spring-boot-starter-logging采用了SLF4j+logback的形式,SpringBoot也能自动适配(jul、log4j2、logback)并简化配置。其实logback是log4j的升级版,因为log4j

英飞凌AURIX 2G 系列MCU关于外设模块EVADC的实现原理及对应MCAL(EB Tresos)配置项详细讲解

目录一、版本控制二、功能概述三、主要模块及涉及EB配置项(一)通用时钟方案与控制(二)内部相关模拟模块的激活与控制1.模数转换器控制2.模拟信号缓冲3.校准4.降噪方法5.Alias功能(三)转换请求产生(四)请求源仲裁(五)快速比较通道操作(六)转换时间(七)转换结果处理(八)同步转换(九)中断服务请求产生四、其他EB配置项五、重要寄存器六、参考文档一、版本控制版本撰写日期撰写记录字体颜色V1.02023.07.12以当前时间点对EVADC模块的认识,撰写了此文档,旨在阐述AURIX2G系列单片机关于EVADC模块的实现原理及对应MCAL配置工具EB的重要配置项。黑色(有部分红色字体仅为辨识

Kubernetes 中的服务注册与发现原理分析

公众号「架构成长指南」,专注于生产实践、云原生、分布式系统、大数据技术分享。对k8s有点了解技术人员,应该都只知道k8s是有服务注册发现的,今天就分析下这个原理,看看怎么实现的。什么是服务注册与发现服务注册与发现是一种机制,用于在集群中动态地发现和连接不同的服务,比如我们在开发微服务时,经常使用的Eureka、Nacos等ServiceB把自己注册到ServiceRegistry叫做服务注册ServiceA从ServiceRegistry发现ServiceB的节点信息叫做服务发现K8s中为什么需要服务发现动态性在K8s集群中,Pod和服务的数量和位置都是动态变化的,Pod有可能伸缩、重新部署或

STM32循迹小车原理介绍和代码示例

目录1.循迹模块介绍2.循迹小车原理3.循迹小车核心代码4.循迹小车解决转弯平滑问题1.循迹模块介绍TCRT5000传感器的红外发射二极管不断发射红外线当发射出的红外线没有被反射回来或被反射回来但强度不够大时红外接收管一直处于关断状态,此时模块的输出端为高电平,指示二极管一直处于熄灭状态被检测物体出现在检测范围内时,红外线被反射回来且强度足够大,红外接收管饱和此时模块的输出端为低电平,指示二极管被点亮总结就是一句话,没反射回来,D0输出高电平,灭灯接线方式VCC:接电源正极(3-5V)GND:接电源负极DO:TTL开关信号输出0、1AO:模拟信号输出(不同距离输出不同的电压,此脚一般可以不接)