- 博客(10)
- 收藏
- 关注
原创 redis+lua脚本防止超卖
一般情况下,uid一般会从threadlocal中获取,或者从上下文中,这里为了演示方便直接使用。本例中直接使用redis中lua脚本实现,也可以集成工具从外部引入lua脚本,如。使用简单的jmter测试工具。
2026-05-09 20:28:12
171
原创 Netty
后端主动向前端发送消息的实现方式同步与异步: 关注的是消息通知的机制。阻塞和非阻塞: 关注的是调用者的状态netty是一个异步的,基于事件驱动的网络应用框架用于快速开发可维护的,高性能Netty基于Reactor模式Reactor模式是一种典型的事件驱动+非阻塞I/O(NIO)的高并发网络编程模型,核心是利用I/O多路复用集中监听事件,并通过事件分发器调用对应的事件处理器完成业务逻辑,从而避免为每个连接创建线程的高开销IO多路复用是一种高效的网络编程技术,允许单个线程同时监控多个文件描述符的状态。当某个描述
2026-04-27 17:39:45
381
原创 milvus向量数据库和LangChain4j
Collection 存储数据的集合向量字段标量字段向量字段:向量字段存储文本、图像和音频等非结构化数据类型的嵌入。这些嵌入可能是密集型、稀疏型或二进制型,具体取决于数据类型和使用的检索方法。通常,密集向量用于语义搜索,而稀疏向量则更适合全文或词性匹配。表示密集向量,表示稀疏向量表示二进制向量标量字段:标量字段存储原始的结构化值,通常称为元数据,如数字、字符串或日期。这些值可以与向量搜索结果一起返回,对于筛选和排序至关重要。
2026-04-24 21:48:23
424
原创 分布式锁和源码解释
使用多个主从集群,加锁时,同时向所有的主发送加锁命令,只要有一半加锁成功,就认为成功。this.internalLockLeaseTime值是30s,每10s指定定时任务。为了防止使用一个主从集群,主挂了,锁数据没有同步到从的问题。,将锁的过期时间设置为小于等于0的值,看门狗机制才会生效。防止锁到期了,业务还没有执行完,通过看门狗机制。你贴的这段Lua脚本是Redisson实现。有执行完,重新设置key的过期时间为30s。加锁的核心,就是如下的lua脚本。同时设计键和过期时间。
2026-04-11 09:49:05
376
原创 RocketMQ
事务待提交:半事务消息被发送到服务端,和普通消息不同,并不会直接被服务端持久化,而是会被单独存储到事务存储系统中,等待第二阶段本地事务返回执行结果后再提交。此时消息对下游消费者不可见。提交待消费:第二阶段如果事务执行结果明确为提交,服务端会将半事务消息重新存储到普通存储系统中,此时消息对下游消费者可见,等待被消费者获取并消费。也有可能,发送成功,响应慢引起失败,如果响应慢引起失败,可能会出现消息重复发送的情况。消费者要设置ORDERLY,保证队列的消息不是并发消费,某个队列的顺序消息只能被一个消费者消费。
2026-04-09 22:03:13
346
1
原创 斐波那契散列,解决一般概率问题
经过多次测试,计算索引时,length长度必须是2^n(本博客只展示了部分测试代码,读者可以自行测试其他长度)分布均匀性:利用黄金分割比的数学特性,能够使哈希值在地址空间中分布更加均匀。计算效率:在硬件实现上通常只需要一次乘法和位移操作,效率较高。缓存 路由:在数据库索引或缓存系统中,提升查询效率。促销活动:为每个用户生成唯一优惠码,避免重复领取。减少冲突:相比传统除法散列,能有效降低哈希冲突概率。抽奖系统:生成公平的抽奖号码,确保概率均等。数组 长度128,相当于2^8。
2026-04-09 09:24:10
62
原创 JAVA中的方法设计
方法的语法, 以main方法为例return d;public , 公开的,目前每个方法都必须写static , 静态的,目前每个方法都必须写void , 空, 这个位置称为返回值数据类型,可以写学过的任何数据类型但是void 是空,即该方法没有返回值,所有没有类型后面如果方法有返回值,此处可以定义对应的类型main 此处是写方法名的,小驼峰,见名知意自己的方法不要写出main() 称为参数列表参数,就是方法执行需要的数据列表, 参数可以没有,也可以写多个,逗号隔开。
2025-12-16 15:58:57
579
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅