自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 收藏
  • 关注

原创 规则引擎-Drools

Drools是一款基于java的开源规则引擎,遵循RETE算法(模式匹配算法)。允许开发者用接近自然语言的方式定义规则,由引擎自动解析,匹配并执行规则,无需硬编码到业务逻辑中。if-else面对复杂,动态,大规模规则时,规则引擎的优势就显示出来了。当遇到电商大促的满减,优惠券叠加,会员折扣等规则,Drools的作用就是通过决策表管理促销规则,支持实时调整,避免每次促销都修改代码。为什么要有规则引擎,为什么要用规则引擎,if else也能做到规则分级。介绍一个规则引擎Drools。

2025-12-02 10:05:51 237

原创 python处理超出内存限制的数据

【代码】python处理超出内存限制的数据。

2025-11-17 11:35:44 275

原创 数组结构-记录

java数据结构基于接口+实现的设计模式,核心接口定义了数据结构的行为规范,具体实现类提供不同的存储逻辑,更新中。

2025-11-10 23:11:45 908

原创 分布式锁相关记录

/ 锁的唯一标识(支持SpEL表达式,如"#orderId")// 锁过期时间// 获取锁失败时重试次数// 重试间隔(毫秒)

2025-10-31 14:58:58 869

原创 23种设计模式-框架中的使用

Integer缓存: JDK对Integer类型实现了缓存池,默认范围是-128-127, 当使用Integer.valueof(n)或者自动装箱时,若数值在缓存范围内,会直接返回缓存中的对象而非新创建,避免重复创建相同的对象。Driver接口是实现部分,DriverManager是抽象部分,不同数据库厂商实现Driver, 应用通过DriverManager统一调用,不需要关心具体实现。用的时候,只需要通过getBean(“xxx”)获取对象,不需要关心Bean的创建依赖注入等细节,由工厂统一处理。

2025-10-30 22:27:48 410

原创 mysql锁整理

锁定整张表,加锁快,但是并发低,适合全表扫描场景,主要包括:表共享读锁,表独占写锁,意向共享锁,意向排他锁。其他事务可以获取s锁(共享读),但是不能获取x锁,写操作会阻塞。意向锁是表级锁,用于标识某个事务即将对表中的行加s锁或者x锁,避免行锁与表锁的冲突判断。幻读:同一事务中,两次查询同一范围的数据,结果行数不同(因其他事务插入了新行)。锁定满足条件的行,并发度高,但是加锁开销大,速度慢,适合高频更新少量数据的场景。事务获取某行的x锁后,可读写该行,其他事务无法获取s锁或者x锁(读写均阻塞)

2025-10-23 13:00:08 328

原创 JAVA25 Scoped Value替代ThreadLocal

ThreadLocal是java中一个用于线程私有数据存储的工具类,允许每个线程存储和访问只属于自己的数据,而不会和其他线程共享,可以将它理解成先尘封本地变量容器:每个线程都可以通过ThreadLocal对象存储自己私有数据,线程之间数据完全隔离,互不干扰。//定义一个ThreadLocal,存储String类型数据t.set("线程1的数据");t.remove();t.set("线程2的数据");t.remove();资源消耗与泄露风险父子线程数据传递难题。

2025-10-20 15:35:37 976

原创 机器学习算法部分demo

处理网络结构数据:专门为二维图像设计,扩展一维信号,三维视频,通过卷积操作提取局部特征,例如,图像中边缘纹理等局部特征是构成物体的基础,CNN能自动学习这些特征。”)逐步划分数据,最终得到分类或回归结果。处理序列数据: RNN最大的特点是引入时间维度,通过循环结构保留前序输入的信息,能够处理长度可变的序列数据,比如文件,语音,时间序列等。(树的深度)等参数,观察对模型性能的影响。计算机视觉: 图像分类(比如识别猫狗),目标检测(如检测照片中的行人,车辆),图像分割(比如医学影像中分割肿瘤区域),人脸识别。

2025-10-06 20:43:09 870

原创 线程&线程池&锁&JUC&源码相关总结

打断park()park()立即返回,线程唤醒。不抛异常,但中断状态被设为true。未清除中断状态时,后续park()可能失效(不阻塞)。这一特性使得比传统的wait()更灵活,但也需要注意处理中断状态,避免意外行为。另外与Object的wait与notify相比:wait,notify,notifyall必须配合Object Monitor一起使用,而park,unpark不必patk,unpark是以线程为单位来阻塞和唤醒线程,但是notify只能随机唤醒一个等待线程,不精确。

2025-09-28 11:57:34 818

原创 1mins看完euals&==&hashcode

检查 p2 是否存在时,HashSet 先根据 p2.hashCode() 计算位置(与 p1 不同),因此认为 p2 不存在,即使两者 equals() 返回 true。hashCode() 是 Object 类的方法,返回一个int 类型的哈希值,用于快速定位对象在哈希表(如 HashMap、HashSet)中的存储位置。若 a.equals(b) == true,则 a.hashCode() 必须等于 b.hashCode()==是判断两个变量存储的内存地址是否相同,即是否指向同一个对象。

2025-09-28 10:57:21 367

原创 5mins了解redis底层数据结构&源码

不保证有序,保证元素唯一,求交并差集, 底层是基于hashTable,也就是redis的dict, key存储元素,value统一为null。将dict.ht[1]赋值给dict.ht[0], 给dict.ht[1]初始化为空的哈希表,释放原来的dict.ht[0]的内存。将dict.ht[1]赋值给dict.ht[0], 给dict.ht[1]初始化为空的哈希表,释放原来的dict.ht[0]的内存。以 member 为 Key,score 为 Value,实现 O (1) 复杂度的查找和更新。

2025-09-26 22:15:29 1121

原创 kafka高可用&数据不丢失&不重复&分区内有序性

幂等性生产者可以避免分区内消息重复,保持消息的顺序性,即使飞行队列中有多个请求也不例外。借助producerBatch中的序列号,broker可以拒绝任何序列号不等于最后一个序列号+1的消息。但是幂等性只能保证单个绘画内消息不丢不重复不乱序, 如果producer端重启了,就不能保证了。幂等性不能跨多个topicPartition,只能保证producer在单个topicPartition内的幂等性。当涉及多个topicPartition时,这些状态信息并没有同步。

2025-09-21 16:24:30 965

原创 zk管理kafka&kafka-broker通信

集群运行中,一些broker节点压力过大,导致controller反应慢,由于没有超时,zk无法判断是否下线,但是导致某些分区选主超时,可以删除controller临时节点,zk触发controller重新选主。原因是,kafka0.9以后,zk的功能被弱化,用来帮助kafka集群选举controller节点等基本操作,zk节点宕机后,kafka集群只是不能再发现新的broker节点加入了,但是不影响既有的节点收发日志。“飞行中的请求”指的是请求发出去,尚未收到broker端的响应。具体是如何连接的呢?

2025-09-20 20:14:05 750

原创 什么是幂等设计

分布式系统,网络不稳定可能导致请求被重复发送,为了保证系统的一致性和可靠性,很多系统要求接口支持幂等性。幂等指的是:对同一个资源执行多次相同的操作,其结果和执行一次相同,换句话说,不管执行多少次,结果不变。有很多,根据具体业务来,对于高并发系统,可以使用缓存快速判断请求是否重复。使用唯一标识符token:客户端生成唯一token, 服务端记录并校验。用户下单接口:不能因为重复提交导致多笔订单。缓存记录:记录已经处理的请求id或者key。支付接口:不能因为重试导致重复扣款。版本号控制:比如乐观锁。

2025-08-31 12:13:05 239

原创 认识一位新朋友---数据库自增主键ID

在mysql中,自增主键是通过AUTO_INCREMENT实现的,其底层机制主要依赖于Innodb存储引擎的特性。所以innodb 的autoinc是非事务安全的,也就是说,在事务中使用insert 后回滚,自增id也不会回退。如果表被重启或者事务回滚,autoinc_val会被重新加载到内存中,可能导致id不连续。当插入一条记录的时候,如果没有显示指定该字段的值,则由数据库自动分配一个递增的数值。在高并发环境下,多个线程通过是插入数据,会出现ID冲突。插入时,先获取这个值,然后加1,作为新的ID。

2025-08-30 20:55:33 454

原创 有五个文件,每个文件里面有n行,用最快的速度读取所有文件中的数字并输出top50

这个函数不是一次性将整个文件加载到内存的,而是逐行读取的,每次只处理一行,并将数字添加到numbers列表,因此,它不会像File.readAllLines()或File.readAllBytes()那样一次性加载整个文件到内存。内存占用高,如果文件有上亿个整数,ArrayList会占用大量内存,解决方法:流式处理+最小堆维护Top50, 避免存储所有数字。使用最小堆动态维护最大的50个数字,而不是把数字都存起来,这样即使文件很大,也能高效处理。但是这个读取方法,依然存在缺点,尤其是面对GB级别。

2025-08-30 15:01:25 328

原创 多线程下单例如何保证

【代码】多线程下单例如何保证。

2025-08-24 23:38:48 243

原创 cookie,session,token之间有什么关系

http起初设计是无状态的,后来需要让请求和请求之间建立起有状态的联系,所以cookie应运而生,后面又有了session,token,但是最初我们想要解决的是,状态在哪里呢,要么在服务端,要么在客户端再专业一点描述:HTTP 协议最初是无状态的,这意味着服务器无法自动记住用户的状态。为了在多个请求之间建立有状态的联系,Cookie 应运而生,它将部分状态信息存储在客户端。随后,为了解决 Cookie 的安全性和扩展性问题,引入了 Session,它将状态信息存储在服务端。

2025-08-24 19:56:12 533

原创 Sqlserver存储过程

判断临时表中有没有city=xxx的行记录,没有就插入一个记录,如果有该行记录,就将这行记录num+1。遍历完成以后,根据分组字段city做排序,最终把结果返回给客户端。作用:用于计算条件列表的表达式,并返回可能的结果之一。全表扫描emp表记录,依次取出city=xxx的记录。创建临时表,表中有两个字段,city num。

2025-08-23 20:21:03 258

原创 Sentinel相关记录

在这里插入代码片@Component@OverrideR error = R.error(500, "服务不可用,请稍后再试!

2025-08-23 17:40:01 446

原创 OpenFeign相关记录

RestTemplate 是 Spring 框架提供的一个用于简化 HTTP 请求的客户端类,它封装了底层的 HTTP 请求逻辑,使得开发者可以通过面向对象的方式调用 RESTful API。虽然 RestTemplate 已被官方标记为 过时(deprecated),但在很多遗留项目中仍然广泛使用。它是基于 Reactor 的非阻塞、响应式客户端,性能更好,更现代。

2025-08-23 14:10:08 256

原创 Nacos相关记录

2025-08-23 11:17:11 233

原创 Gateway中Forward配置+源码观赏

【代码】Gateway中Forward配置。

2025-08-18 16:05:19 357

原创 浅谈OAuth

授权服务器:授权客户端访问由资源服务器暴露的用户资源的应用程序,当授权服务器决定授权客户端以用户名义访问资源时,他会发出一个令牌。客户端:以用户名义访问用户所拥有的资源的应用程序,客户端使用客户端ID和客户端密钥来标识自己,客户端在发出请求时需要自己的凭据来标识自己。客户端将用户重定向到需要进行身份验证的授权服务器端点,这里其实是用户和授权服务器交互,用户不会向客户端应用程序发送凭据。用户:拥有由资源服务器暴露的资源的个体,用户通常有一个用户名和密码,他们用用户名和密码来标识自己。3.调用受保护的资源。

2025-08-14 09:51:39 240

原创 五分钟玩转Docker

Docker 本质是一个 “程序打包和运行工具”,它通过 “标准化打包” 和 “隔离运行”,解决了 “程序在我这能跑,在你那跑不了” 的千古难题。

2025-08-13 11:22:12 343

原创 记录一下常用的linux命令

简单查看小型文件且只需向前滚动:用more(轻量快速)。查看大型文件、需要前后翻页或搜索:用less(功能全面,推荐日常使用)。记住less/关键词搜索、G到末尾、g到开头、q退出,基本能满足大多数场景。

2025-08-09 15:26:01 189

原创 一个不恰当数据结构引发的问题

kafka+storm,问题是storm侧出现Timeout of 60000ms expired before the position for partition xxx could be determined, Kafka 消费者(Spout)无法获取到某个 Kafka 分区(topic1)的 offset 位置。

2025-08-07 14:40:02 292

原创 一起来看DOM和事件流

最近在看到前端的书籍时,突然觉得这些设计很有趣,DOM,事件流等,随笔记录,供大家一起探讨。

2025-08-07 00:00:17 211

原创 有趣的this和new--JavaScript

以下代码片段来自于《深入了解JS重难点实例精讲》,很有意思,随手记录。

2025-08-06 15:14:09 239

原创 Kakfa开启幂等性+At Least Once保证分区内数据一致性

初始化事务后,生产者就会使用beginTransaction()启动事务,该方法会验证事务是否已经被初始化,以及是否存在存活的事务。

2025-08-04 10:16:11 164

原创 初探Spring Bean创建流程

drawio导出图片太小了。。。。。。附件已添加,持续更新中。

2025-08-03 19:08:25 191 1

原创 SQLServe---- Practice 001

张三 90 95 87。李四 98 85 90。张三 语文 95。张三 数学 96。李四 语文 90。李四 数学 76。王五 语文 89。王五 数学 88。name 语文 数学 英语。

2025-08-02 21:07:28 190

原创 Kakfa Sender子线程执行过程

【代码】Sender子线程执行过程。

2025-07-31 15:22:16 172

原创 kafka 中归还一个ByteBuffer源码探究

【代码】kafka 中归还一个ByteBuffer源码探究。

2025-07-28 22:11:16 341

原创 一条select的视角

一条select的视角

2025-07-27 18:58:29 146

原创 Linux中[ERROR] --initialize specified but the data directory has files in it. Aborting.

Linux中[ERROR] --initialize specified but the data directory has files in it. Aborting.:问题描述:Linux中安装mysql,由于之前安装过,卸载过,卸载的不干净,再次安装,,在进行初始化密码的时候,出现了以下错误2021-11-23T02:08:16.247240Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use

2021-11-23 10:27:18 8737 1

原创 自定义使用javaAPI进行文件的解压缩

使用javaAPI进行文件的解压缩前言二、代码前言二、代码代码如下(示例):package com.atguigu.mr.test;import static org.junit.Assert.*;import java.io.IOException;import java.io.InputStream;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.FSDataInputStream;

2021-11-22 11:00:24 854

原创 Zookeeper集群无法启动的原因分析

Zookeeper集群无法启动的原因分析:centos7上搭建三台zookeeper,相关文件配置没有问题问题描述:[atguigu@hadoop102 zookeeper-3.4.10]$ bin/zkServer.sh startZooKeeper JMX enabled by defaultUsing config: /opt/module/zookeeper-3.4.10/bin/../conf/zoo.cfgStarting zookeeper ... STARTED[atg

2021-11-21 10:23:27 2694

初探Spring Bean创建流程

初探Spring Bean创建流程

2025-08-04

初探Spring Bean创建流程

初探Spring Bean创建流程

2025-08-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除