- 博客(27)
- 收藏
- 关注
原创 【SpringBoot】集成kafka之生产者、消费者、幂等性处理和消息积压
以下是一个基于 SpringBoot 2.7.x 的 Kafka 集成方案,包含生产者、消费者、幂等性处理和消息积压解决等核心功能,通过这套完整的解决方案,可实现 Kafka 消息的可靠生产、幂等消费和高效积压处理,满足企业级应用的需求。
2025-05-13 17:31:19
598
原创 Spring重试机制 @Retryable 和 @Recover 注解的使用详解
Spring 框架@Retryable注解与@Recover注解的使用详解
2025-04-27 16:13:05
833
原创 面试之【Elasticsearch】
定义:通过程序扫描文本中的每一个单词,针对单词建立索引,并保存该单词在文本中的位置,以及出现的次数;在用户查询时,通过之前建立好的索引来查询,将索引中单词对应的文本位置,出现的次数返回给用户,有了位置就可以将具体的内容读取出来了。数据分类:结构化数据(mysql)、非结构化数据(word文档)、半结构化(xml、html)搜索分类:结构化数据(数据库查询)、非结构化(顺序扫描、全文检索)正排索引:根据数据的某一项(例如ID,标题)从而查找数据内容。倒排索引:根据数据的某一关键词(分词)从而查找数据内容。
2025-02-24 15:26:10
123
原创 面试之【RabbitMq】
produce只负责给type=fanout的exchange交换机发消息,由exchange决定将消息发送到哪个queue,然后由不同的consumer进行消费,将producer和consumer进行解耦。发送者可以在发送的时候定义一些键值对,接受者也可以在绑定时定义自己的键值对,当键值对匹配时,对应的消费者就能接收到消息,匹配的方式有两种:all(所有键值对都满足);交换机:数据路由组件,并不实际保存消息,与Queue之间建立绑定关系,消息发送到Exchange,将消息传递到队列中。
2025-02-24 14:59:52
436
原创 面试之【kafka】
实现partitioner接口,代码指定。(例如:顺序消费消息,可指定此类消息放入同一个partition中,队列特性保证了先入先出的顺序性)
2025-02-24 14:46:19
817
原创 面试之【redis】
5.缓存数据库双写不一致问题,设置过期时间(较短),延迟双删,在查询与更新数据库的过程中分布式锁,读写锁(读写互斥,读读不互斥) 4.突发性热点缓存重建导致压力暴增,提前缓存,或者加锁(redisson分布式锁)排队再查一次缓存不存在时,查询数据库。:单值缓存、对象缓存(json)、分布式锁(setnx命令)、计数器(incr)、分库分表(自增主键 incr)、 2.缓存击穿,缓存在同一时间过期,导致缓存同时失效,大量请求直接访问数据库,一般随机过期时间。
2025-02-24 14:44:37
799
原创 面试之【微服务】
定义:提供高性能和简单易用的分布式事务服务,为用户提供了AT、TCC、SAGA、XA事务模式,一站式分布式解决方案。作用:通过编写接口来定义对远程微服务的需求,只需编写接口和注解,常与ribbon一起使用实现负载均衡。 3.结果执行:根据计算结果,对流量进行控制、熔断降级、保护系统负载,保障服务的稳定性。工作原理:动态代理,拼装URL,发起http请求(依赖ribbon发现服务)工作原理:1. 数据采集:通过代理模式将流量数据采集到自身,并进行清洗和整合。作用: 限流、熔断、降级。
2025-02-24 14:40:32
234
原创 面试之【多线程】
AQS是Java并发的一个重要组件,是一个抽象类,提供了线程同步的底层实现机制,实现线程同步和互斥操作,提供了两种主要的锁机制,分别是排它锁和共享锁。CAS:Compare and Swap)是一种多线程同步的机制,通常用于实现无锁算法,特别是在多线程环境下对共享变量进行操作。共享锁:允许多个线程同时获的锁资源,但同一时刻只有一个线程可以获取到所得拥有权,其他线程需要等待该线程释放锁。排它锁:也称为独占锁,在多个线程中竞争同一共享资源时,同一时刻只允许一个线程访问该共享资源。ABA问题:配合版本号。
2025-02-24 14:20:49
269
原创 面试之【JVM优化】
是从GC Roots的直接关联对象开始遍历整个对象图的过程, 这个过程耗时较长但是不需要STW, 可以与垃圾收集线程一起并发运行。:开启用户线程,同时GC线程开始对未标记的区域做清扫。 将GC ROOTS对象作为起点,从这些节点开始向下搜索引用的对象,将其标记为标记为。:修正并发标记期间因为用户程序继续运行而导致标记产生变动的那一部分对象的标记记录(),这个阶段的停顿时间一般会比初始标记阶段的时间稍长,远远比并发标记阶段时间短。避免类的重复加载:父类加载该类时,子类不需要再重复加载,保证加载类的唯一。
2025-02-24 14:18:14
279
原创 【任务调度】之定时任务/周期任务ScheduledExecutorService
简单了解了 ScheduledExecutorService 定时任务类线程池的用法,帮助开发者创建高效、可靠的调度任务,提高系统的整体性能。
2024-12-19 15:48:30
477
原创 【SpringBoot】集成ShedLock实现分布式锁(JdbcTemplate)
分布式环境中通过@SchedulerLock和ShedLock库来防止定时任务的重复执行,及定时任务自定义异步执行
2024-12-13 15:45:03
373
原创 【@Transactional和@Async】填坑日记
讲述了@Transtctional @Async执行,本篇则详细讲述两者互存的各种场景及其使用注意事项
2024-12-04 09:03:12
1127
原创 【Springboot】之外置tomcat集成websocket
springboot 集成 websocket 解决使用外置tomcat运行出现的报错问题
2024-11-05 10:51:56
319
原创 【SpringBoot+SpringSecurity+Jwt】前后分离认证授权完整教程
SpringBoot + Spring Security + JWT 实现前后端分离登录认证及权限控制完整版。
2024-11-01 10:49:54
427
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人