- 博客(502)
- 资源 (42)
- 问答 (1)
- 收藏
- 关注
原创 git commit Message 插件解释说明
build - 影响构建系统或外部依赖项的更改(例如作用域:gulp、broccoli、npm)- style - 不影响代码含义的更改(空白、格式化、缺少分号等)- refactor - 既不修复错误也不添加功能的代码更改。- revert - 恢复此更改之前的提交。- perf - 提高性能的代码更改。- feat - 一项新功能。- fix - 一个错误修复。- docs - 仅文档更改。
2025-04-04 00:00:00
173
原创 macOS 系统安装cloc 统计代码量
cloc(Count Lines of Code)是一款常用的统计代码量的工具,它能统计多种编程语言的代码行数。
2025-03-29 09:30:00
118
原创 XA规范及2PC 3PC 介绍
XA 规范的定位:是早期为解决分布式事务(一个系统操作多个数据库)问题制定的一套解决方案,定义了分布式事务模型。模型中的角色:AP(应用程序):发起分布式事务操作的应用主体。TM(事务管理器):负责统筹管理整个事务流程。RM(资源管理器):具体资源的管理方,如数据库(示例中以 MySQL 说明)。CRM(通信资源管理器):处理事务过程中的通信,属于可选组件(如消息中间件)。核心概念:全局事务。
2025-03-13 13:04:51
597
原创 简单工厂 、工厂方法模式和抽象工厂模式
简单工厂、工厂方法:侧重单个产品的创建。例如,创建 “手机” 这一产品,简单工厂通过条件判断决定具体手机类型,工厂方法通过子类工厂创建特定手机。抽象工厂:同样是创建型设计模式,聚焦 “产品族” 的创建,一个工厂类负责创建一组相关产品(如手机、耳机、充电器组成的电子产品族)。工厂方法:是标准的创建型设计模式,定义抽象创建接口,由子类决定实例化哪个具体产品类,强调 “单一产品” 的灵活创建。工厂方法:扩展性好。新增产品时,只需定义新的产品类和对应的工厂子类,无需修改原有工厂代码,完全符合开闭原则。
2025-03-11 11:47:30
1366
原创 Spring AOP、Java Agent 与 ASM 的作用和区别
【代码】Spring AOP、Java Agent 与 ASM 的作用和区别。
2025-03-11 10:29:28
252
原创 Java 字节码操纵框架 -ASM
ASM 是用于 Java 字节码操纵的框架,可动态生成新类或增强现有类的功能。它既能直接产生二进制 class 文件,也能在类被加载到虚拟机之前动态改变类行为,通过读取类文件信息来分析、修改类行为,甚至生成新类。许多流行框架如 cglib、Hibernate、Spring 都直接或间接地使用 ASM 来操作字节码。
2025-03-09 20:05:39
425
原创 JDK 的 SPI 和 Dubbo 的 SPI
SPI(Service Provider Interface)是一种服务发现机制,它允许在运行时动态加载服务实现。JDK自带的SPI机制主要定义在类中,通过配置文件的方式来指定服务的实现类。
2025-03-09 18:06:08
494
原创 对RocketMQ集群进行消息轨迹的追踪
启动这个Broker的时候会自动创建出来一个内部的Topic,就是RMQ_SYS_TRACE_TOPIC,这个Topic就是用来存储所有的消息轨迹追踪的数据的。接着消息到Broker端之后,Broker端也会记录消息的轨迹数据,包括如下:消息存储的Topic、消息存储的位置、消息的key、消息的。在订阅消息的时候,对于Consumer也是同理的,在构造函数的第二个参数设置为true,就是开启了消费时候的轨迹追踪。就会上报这个消息的一些数据到内置的RMQ_SYS_TRACE_TOPIC里去。
2025-03-09 16:21:47
675
原创 RocketMQ基于延迟消息机制优化大量订单的定时退款扫描问题
RocketMQ默认支持一些延迟级别如下:1s 5s 10s 30s 1m 2m 3m 4m 5m 6m 7m 8m 9m 10m 20m 30m 1h 2h。其实发送延迟消息的核心,就是设置消息的delayTimeLevel,也就是延迟级别。上面代码中设置延迟级别为16,也就是对应上面的30分钟。
2025-03-09 15:58:16
189
原创 Rocket MQ 实现消息的顺序生产和消费
对于有序消息的方案中,如果你遇到消息处理失败的场景,就必须返回SUSPEND_CURRENT_QUEUE_A_MOMENT这个状态,意思是先等一会儿,一会儿再继续处理这批消息,而不能把这批消息放入重试队列去,然后直接处理下一批消息,依然会存在消息错乱的问题。也就是说,Consumer会对每一个ConsumeQueue,都仅仅用一个线程来处理其中的消息。交给Consumer中的多个线程来处理的话,那还是会有消息乱序的问题。这里有两种方式: 1. 取模运算 2. hash 运算。
2025-03-09 15:23:14
409
原创 RocketMQ 中 使用 Half 消息
在Rocket MQ中,Half消息(半消息)是一种特殊的消息类型,通常用于分布式事务场景。在这种场景下,消息的生产者发送一条消息到消息队列,但这条消息在事务提交之前处于“预备提交”状态,即Half消息状态。在生产者发送消息时,需要设置消息为Half消息。这通常是通过在发送消息时指定事务属性来实现的。第一个参数是消息本身,第二个参数是用户自定义的事务上下文,可以为null。方法中,您需要实现本地事务逻辑,并根据事务执行的结果返回相应的。方法中,您可以检查本地事务的状态,并返回相应的。
2025-03-07 10:16:58
309
原创 千兆网卡的理论上限计算
那么 1000Mbps 换算成 MB/s 就是 1000÷8 = 125MB/s,在实际应用中,通常近似认为千兆网卡的理论上限是 128MB/s。需要注意的是,这只是理论传输上限,在实际网络环境中,由于网络开销(如协议包头、校验等)、服务器性能瓶颈(如 CPU 处理能力、内存读写速度等)以及网络拥塞等因素影响,实际传输速率往往会低于这个理论值。千兆网卡中的 “千兆” 指的是 1000Mbps(兆比特每秒),这里的 “b” 是小写,代表比特(bit)。
2025-03-03 16:35:47
233
原创 java 实现简易基于Dledger 的选举
/ Dledger 节点类,包含节点的状态、日志存储、选举和日志复制逻辑 class DledgerNode {// 选举超时时间的最小值(毫秒) private static final int ELECTION_TIMEOUT_MIN = 150;// 选举超时时间的最大值(毫秒) private static final int ELECTION_TIMEOUT_MAX = 300;
2025-03-03 13:16:32
275
原创 AI 创作歌曲网站整理
分离工程文件splitter:https://vocalremover.org/splitter-ai。makebestmusic: https://makebestmusic.com/ 制作歌曲。分轨:https://emastered.com/deepseek: 写歌词。
2025-03-02 11:57:34
2790
原创 pika 支持的redis接口及兼容情况
大小超过 50G、80G 等等这样的情况,会遇到启动恢复时间长,一主多从代价大,硬件成本贵,缓冲区容易写满等问题。Pika 就是针对这些场景的一个解决方案。Pika 主要解决的是用户使用 Redis 的。
2025-02-21 11:10:21
218
原创 我们来帮两个老板解决怎么安排会议的问题
张老板:10:00~11:00, 13:00~14:30, 16:00~19:00。李老板:10:15~12:30, 13:30~14:30, 19:00~20:00。请帮忙找出两个人都空闲可以安排时间段,并打印出来给两个人选择。
2025-02-19 19:55:53
137
原创 Redis 统计每个数据类型中占用内存最多的前 N 个 bigkey
【代码】Redis 统计每个数据类型中占用内存最多的前 N 个 bigkey。
2025-02-18 11:22:04
197
原创 民用无人驾驶航空器操控员考试
共 50道 单项 选择题,每选项3个,80分及格。3. 安全操控理论培训 -> 在线视频培训。2. 选择 操控员资质。学习完后选择 【在线考试】4. 查看 我的合格证。
2025-02-16 20:11:32
438
2
原创 RedisTimeSeries
Redis 本身支持多种数据类型,包括字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(Sorted Set)等。这些数据类型用于存储各种类型的数据,而 RedisTimeSeries 模块则是专门为时序数据设计的,提供了更高效的时间序列数据存储和查询功能。RedisTimeSeries 是一个开源的时序数据数据库模块,它提供了时间序列数据的存储和处理功能。
2025-02-16 16:30:57
310
1
原创 Java 实现 Redis中的GEO数据结构
LBS (基于位置信息服务(Location-Based Service,LBS))应用访问的数据是和人。或物关联的一组经纬度信息,而且要能查询相邻的经纬度范围,GEO 就非常适合应用在。LBS 服务的场景中。
2025-02-16 15:19:46
308
1
原创 查看 redis 主从数据库之间的延迟情况
命令会返回 Redis 复制相关的详细信息,其中包含了可以用于判断主从延迟的关键指标。命令,并记录主从偏移量,计算延迟。一些 Redis 监控工具可以更直观地展示主从延迟情况。),然后运行该脚本,就可以定期查看主从延迟情况。将上述脚本保存为 Python 文件(例如。
2025-02-13 16:37:41
392
原创 豆包如何自定义传输协议的
现象: 安装完豆包后,直接打开内置浏览器,协议自定义浏览器协议(也称为自定义 URL 方案)允许你创建一个特定的 URL 格式,用户可以通过该格式在浏览器中启动特定的应用程序或执行特定的操作。以下是如何自定义浏览器协议(例如)的步骤。首先,你需要定义一个唯一的协议名称,例如doubao。这个名称应该在你的应用程序中是唯一的,并且不应该与现有的协议冲突。注册自定义协议的方式取决于操作系统和浏览器。确保你的应用程序能够处理传递的 URL。浏览器中输入 URL打开浏览器,输入,看看是否能够启动你的应用程序。
2025-02-12 13:19:36
1279
原创 LeetCode-169多数元素
*进阶:**尝试设计时间复杂度为 O(n)、空间复杂度为 O(1) 的算法解决此问题。你可以假设数组是非空的,并且给定的数组总是存在多数元素。,返回其中的多数元素。多数元素是指在数组中出现次数。
2025-02-10 12:45:43
347
原创 MySQL 中常见字符集及其排序规则
选择合适的排序规则对于确保数据的正确排序和比较至关重要。根据你的具体需求(如是否区分大小写、是否支持多语言等),选择合适的排序规则。
2025-01-20 16:52:35
1056
1
原创 PostgreSql 创建稀疏索引
在订单表中,根据订单类型筛选出POP类型的订单,但是鉴于目前公司的情况,大部分的订单类型都是自营,只有少部分订单类型是POP的,此时只想给POP订单类型建立索引。如果是普通索引的话,则需要为这500万订单建立索引。根据索引选择性值这样的字段也不适合建立索引。使用稀疏索引只为2000+的数据建立索引,大大节省了存储空间,提高该类型的查询效率。假设平台日订单500万,POP类型的订单只有2000+;
2025-01-20 14:14:49
302
原创 Mysql 设置 慢SQL时间并触发邮件
如果你不想编写脚本,可以使用一些系统工具来监控文件变化并发送邮件。保存配置文件并重启MySQL服务以使更改生效。以上的问题,MySQL 服务重启后 失效。安装 inotify-tools。
2025-01-17 16:11:15
392
2
原创 Mysql 通过存储过程构造10万条数据
在MySQL中,存储过程本身并不直接支持多线程处理。MySQL的存储过程是单线程执行的,这意味着在一个存储过程中,所有的操作都是按顺序执行的,不能并行执行。在这个Java程序中,使用了多线程并发地插入数据,每个线程负责插入一部分数据。通过这种方式,可以显著提高插入性能。如果你希望使用多线程来提高插入性能,可以编写一个Java程序,使用多线程并发地插入数据。在这个示例中,每插入1000条记录就提交一次事务,这样可以减少事务的开销,提高插入性能。
2025-01-17 15:39:19
320
原创 MySQL 中的锁
比如,对于 MyISAM 这种不支持事务的引擎,如果备份过程中有更新,总是只能取到最新的数据,那么就破坏了备份的一致性,如果一个查询正在遍历一个表中的数据,而执行期间另一个线程对这个表结构做变更,删了一列,那么查询线程拿到的结果跟表结构对不上,肯定是不行的。当你需要让整个库处于只读状态的时候,可以使用这个命令,之后其他线程的以下语句会被阻塞:数据更新语句(数据的增删改)、数据定义语句(包括建表、修改表结构等)和更新类事务的提交语句。读写锁之间,写锁之间是互斥的,用来保证变更表结构操作的安全性。
2025-01-17 10:05:26
314
Editplus 4GL Progress 高亮配色方案
2024-05-29
主机编号检测工具V1.57.200116.zip
2021-01-19
js/jquery校验图片格式,宽高,大小
2015-08-24
TA创建的收藏夹 TA关注的收藏夹
TA关注的人