- 博客(27)
- 收藏
- 关注
原创 Kafka集群
Kafka集群是一个分布式消息系统,其核心概念包括Broker(服务器节点)、Topic(消息分类单位)、Partition(物理分段)、Offset(消息编号)、Producer(生产者)、Consumer(消费者)、Consumer Group(消费者组)、Zookeeper/KRaft(集群管理)、Replication(副本机制)、Retention(保留策略)、Log(日志文件)、ISR(同步副本集)、LEO(日志末尾偏移量)和HW(高水位)。
2025-05-17 18:46:50
823
原创 kafka的安装及简单使用
kafka是一个分布式事件流平台,核心功能有发布/订阅消息系统、实时处理数据流等,Kafka非常适合超大数据量场景。
2025-05-10 14:33:43
1092
原创 高并发架构及场景解决方案
CQRS(Command Query Responsibility Segregation,命令职责查询分离)一、高并发定义与核心要素定义系统在短时间内处理大量并发请求的能力,目标是确保高负载下稳定高效运行,核心体现为高性能、高可用、可扩展。必要条件高性能:提升并行处理能力,降低响应时间(如优化算法、减少IO)。高可用:系统长期稳定运行,通过冗余、故障转移等机制减少宕机(可用性=正常运行时间/总时间)。可扩展性:通过水平扩容(增加节点)线性提升吞吐量(可扩展性=吞吐量提升比/节点增加比)。
2025-05-06 16:32:16
1349
原创 双亲委派机制
如果父类加载器能加载这个类,就直接返回;如果父类加载器无法加载(包括父类加载器为空的情况),子类加载器才会自己尝试加载。,同时避免类的重复加载,是JVM类加载体系的基石。即使没学过JVM,记住“父类优先,自顶向下”的逻辑,就能抓住本质。双亲委派机制就像“层层上报的审批流程”:子类遇到问题先问父类,父类解决不了再自己处理。双亲委派机制是Java类加载器(ClassLoader)的核心机制,用于确保。当一个类加载器收到“加载某个类”的请求时,,由父类加载器逐层向上委托,直到最顶层的。,而是先将请求“委托”给。
2025-04-29 13:07:10
1031
原创 初窥Java内存模型(JMM)
如果两个操作访问同一个变量,这两个操作中有一个为写操作,此时这两个操作就存在数据依赖关系。有三种类型,写后读、写后写、读后写。在单线程中执行时重排序会遵守数据依赖,编译器和处理器不会改变存在数据依赖关系的两个操作之间的执行顺序。在判断语句当中例如下列伪代码中,操作1和操作2之间存在着数据控制依赖关系。当存在控制依赖关系时,会影响指令序列执行的并行度。因此编译器和处理器会采用猜测执行来克服控制相关性对并行度的影响。
2025-04-25 16:30:06
574
原创 HeavyKeeper 算法
二维数组:算法维护一个二维数组,里面有 d 个数组,每个数组里有 w 个桶,桶里记录哈希指纹和计数值。如果发生冲突,以概率P(decay) = 1/(b^C)衰减已有计数,b为衰减因子,C 为计数值。计数衰减机制:核心创新点,当发生哈希冲突时,不是简单的覆盖,而是通过概率衰减原有计数。堆结构:维护一个大小为 k 的最小堆,用于记录当前观测到的TopK项。如果桶为空或已存储的哈希指纹与当前哈希指纹相同,增加计数器。对Key应用d个哈希函数,映射到d个数组中的对应桶。维护最小堆,保留最大的k个计数项。
2025-04-20 16:40:13
281
原创 redis+lua脚本
2. 返回值Lua脚本的最后一个值会作为执行结果返回给客户端。可返回、数值、字符串、表(自动转为Redis多行回复)。3. 脚本编写原则禁止使用全局变量:所有变量需用声明。避免长耗时操作:Lua脚本会阻塞Redis其他请求,需确保高效性。三、常用Lua脚本操作1. 数据操作操作示例代码StringHashSetZSetList2. 条件判断3. 循环操作4. 错误处理四、注意事项场景解决方案
2025-04-20 10:11:48
712
原创 什么?我的MySQL挂了?
由于我的xxx选笔记本直接死机了,导致我的虚拟机异常关闭,当时虚拟机MySQL还在运行,今天在使用docker启动MySQL时发现MySQL好像挂了,通过使用命令查看日志时发现多次以及断言失败表示事务系统检测到回滚段数量异常,进一步说明元数据损坏。
2025-04-13 20:58:21
373
原创 分布式事务
XA(eXtended Architecture)是由 X/Open 组织提出的分布式事务处理(DTP,Distributed Transaction Processing)标准,旨在解决跨多个资源管理器(如数据库、消息队列等)的事务一致性问题。在 Seata 框架中,XA 模式是其支持的分布式事务处理模式之一,它利用数据库本身提供的 XA 协议来实现分布式事务。AT(Automatic Transaction)模式是 Seata 提供的一种无侵入的分布式事务解决方案。
2025-04-02 21:56:43
923
原创 微服务中雪崩问题的常见解决方案(sentinel)
服务故障最重要原因,就是并发太高!解决了这个问题,就能避免大部分故障。当然,接口的并发不是一直很高,而是突发的。因此请求限流,就是限制或控制接口访问的并发流量,避免服务因流量激增而出现故障。
2025-04-01 21:45:35
350
原创 网关(gateway):自定义过滤器(filter)
Component@Override@Override// 获取请求// 编写过滤器逻辑System.out.println("过滤器执行了");// 放行//多加一个实现接口Ordered是为了实现排序,例如用户校验应该是微服务转发之前执行。
2025-04-01 11:11:50
180
原创 接上篇虚拟机外部扩容之后需重新进行分区之虚拟机卡在启动界面
4)查看磁盘使用情况df -h,可以看到sda3已满,通过sudo du -h --max-depth=1 / | sort -rh查看具体使用情况并按文件大小降序显示--,删除该目录下不必要的文件释放磁盘空间。使用root安装apt-get install gparted,打开。1)重新启动虚拟机长按shift进入grub模式如下图。3)选择root进入黑命令窗口输入root密码。1)选择/dev/sda3,resize。原因:磁盘使用率已满。
2025-03-29 20:02:42
495
原创 虚拟机扩容时提示:指定的虚拟磁盘需要进行修复
使用vmware-vdiskmanager工具修复磁盘文件,-R后面路径需替换成你的虚拟机安装目录的磁盘文件路径即“xxx.wmdk”,xxx一般为你虚拟机名称。1、找到VMware安装目录打开在文件路径处输入cmd回车,或者直接打开cmd使用cd 命令到VMware安装目录。
2025-03-29 16:12:42
456
原创 git错误记录
在idea中git commit 时报错git索引文件损坏。1)删除项目目录.git文件夹下的index文件。2)再使用git reset重新生成即可解决。
2025-03-26 10:23:14
296
原创 在Idea中使用git push 提交到远端github仓库报错,修复
使用start命令编辑C:\Windows\System32\drivers\etc\hosts文件加入如下内容。打开命令提示符(管理员)
2025-03-26 10:18:06
417
原创 Spring Boot Starter+SDK开发
五、使用maven的install即可使用,会将依赖保存到本地maven仓库中,如需提供给他人使用需要上传到远端的maven仓库。四、在resources目录下新建META-INF包,在改包下新建spring.factories。勾选依赖(使的我们在使用配置文件中进行配置可以有一些提示(元信息))在pom.xml去除掉build因为我们不需要构建直接运行的jar包。2、编写配置类(从配置文件当中的获取配置信息,获得对象)3、在配置文件当中配置相关属性。一、回忆在使用第三方客户端SDK时流程。
2025-03-19 15:41:47
161
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人