2024年9月

  • 2024.09.11 | cuithink | 66次围观
    计数器固定窗口算法
    计数器固定窗口算法是最简单的限流算法,实现方式也比较简单。就是通过维护一个单位时间内的计数值,每当一个请求通过时,就将计数值加1,当计数值超过预先设定的阈值时,就拒绝单位时间内的其他请求。如果单位时间已经结束,则将计数器清零,开启下一轮的计数。但是这种实现会有一个问题,举个例子:假设我们设定1s内允许通过的请求阈值是100,如果有用户在时间窗口的最后几毫秒发送了99个请求,紧接着又在下一个时间窗口开始时发送了99个请求,那么这个用户其实在一秒显然超过了阈值但并不会被限流。其实...
  • 2024.09.11 | cuithink | 66次围观
    微服务基本概念
    2. 微服务架构图3. 微服务常见概念3.1. 服务治理服务治理就是进行服务的自动化管理,其核心是服务的自动注册与发现。服务注册:服务实例将自身服务信息注册到注册中心。 服务发现:服务实例通过注册中心,获取到注册到其中的服务实例的信息,通过这些信息去请求它们提供的服务。 服务剔除:服务注册中心将出问题的服务自动剔除到可用列表之外,使其不会被调用到3.2. 服务调用在微服务架构中,通常存在多个服务之间的远程调用的需求。目前主流的远程调用技术有基于HTTP的RESTful接口以及...
  • 2024.09.11 | cuithink | 52次围观
    cpu突然飙高,怎么定位
    通过top -p <pid> 显示Java进程的内存情况,pid是Java进程号,比如19663按H获取该进程下每个线程的内存情况找到内存和cpu占用最高的线程tid,比如19664转为16进制得到0x4cd0,此为线程id的十六进制表示执行jstack 19663|grep -A 10 0x4cd0,得到线程堆栈信息中4cd0这个线程所在行的后面10行,从堆栈中可以发现导致cpu飙高的调用方法查看对应的堆栈信息中的可能存在问题的代码...
  • 2024.09.11 | cuithink | 19次围观
    Spring由哪些模块组成
    spring core:提供了框架的基本组成部分,包括控制反转(Inversion of Control,IOC)和依赖注入(Dependency Injection,DI)功能。spring beans:提供了BeanFactory,是工厂模式的一个经典实现,Spring将管理对象称为Bean。spring context:构建于 core 封装包基础上的 context 封装包,提供了一种框架式的对象访问方法。spring jdbc:提供了一个JDBC的抽象层,消除了烦琐...
  • 2024.09.11 | cuithink | 101次围观
    适配器模式
    将一个类的接口转换为客户期望的另一个接口,适配器可以让不兼容的两个类一起协同工作。适配器模式的主要作用就是把原本不兼容的接口,通过适配修改做到统一,使得用户方便使用,就想我们提到的万能充 多接口数据线等待, 他们都是为了适配各种不同的接口做的兼容。适配器模式(Adapter)包含以下主要角色:目标(Target)接口:当前系统业务所期待的接口,它可以是抽象类或接口。适配者(Adaptee)类:适配者即被适配的角色,它是被访问和适配的现存组件库中的组件接口。适配器(Adapte...
  • 2024.09.11 | cuithink | 51次围观
    策略模式
    定义一系列算法,将每一个算法 封装起来,并使它们可以相互替换。策略模式让算法可以独立于使用它的客户端而变化。在策略模式中可以定义一些独立的类来封装不同的算法,每一个类封装一种具体 的算法,在这里每一个封装算法的类都可以被称为一种策略,为了保证这些策略在使用时具有一致性,一般会提供一个抽象的策略类来做算法的声明.而每种算法对应一个具体的策略类。策略模式的主要角色如下:抽象策略(Strategy)类:这是一个抽象角色,通常由一个接口或抽象类实现。此角色给出所有的具体策略类所需的接...
  • 2024.09.11 | cuithink | 86次围观
    代理模式
    9. 代理模式对一个对象提供一个代理对象,使用代理对象控制对原对象的引用。透明的控制对象的访问 , 代理模式的作用是隐藏对象的复杂性,控制对对象的访问,并在必要时增加一些额外的功能。静态代理与动态代理的区别实现方式不同: 静态代理是在编译期就已经确定代理对象的类型,代理类需要手动编写。而动 态代理是在运行时动态生成代理对象,代理类不需要手动编写,而是由框架自动生成。适用范围不同: 静态代理只适用于代理对象类型固定、接口较少的情况下。因为每增加一个被 代理的接口,就需要编写一个...
  • 2024.09.11 | cuithink | 26次围观
    xmind版并发三大特性
    ...
  • 2024.09.11 | cuithink | 100次围观
    idea快捷键
    ctrl + alt +B:查找接口的实现类ctrl + h:查看类或接口的继承关系Ctrl + Y:删除光标所在行 或 删除选中的行Ctrl + U:前往当前光标所在的方法的父类的方法 / 接口定义Ctrl + H: 显示当前类的层次结构 Ctrl + O:选择可重写的方法Ctrl + I:选择可继承的方法Alt + Enter:根据光标所在问题,提供快速修复选择,光标放在的位置不同提示的结果也不同Alt + Insert:代码自动生成,如生成对象的 set / get 方...
  • 2024.09.11 | cuithink | 100次围观
    redis 简图
    ...