上一页 1 2 3 4 5 6 7 8 9 10 ··· 33 下一页
摘要: ArrayList初始容量为0,当第一次添加数据的时候才会初始化容量为10- 扩容逻辑ArrayList在进行扩容的时候是原来容量的1.5倍,每次扩容都需要拷贝数组- 添加逻辑 - 确保数组已使用长度(size)加1之后足够存下下一个数据 - 计算数组的容量,如果当前数组已使用长度+1后的大于当前的 阅读全文
posted @ 2025-04-09 12:03 笠大 阅读(9) 评论(0) 推荐(0)
摘要: Mybatis的一级、二级缓存用过吗?MyBatis的一级缓存是基于PerpetualCache的HashMap本地缓存,作用域为Session,默认开启。 二级缓存需要单独开启,作用域为Namespace或mapper,默认也是采用PerpetualCache,HashMap存储。 阅读全文
posted @ 2025-04-09 12:00 笠大 阅读(11) 评论(0) 推荐(0)
摘要: 负载均衡是分布式系统架构设计中的关键因素,目的是将请求或数据均匀分配到多个操作单元上执行,核心在于“均匀”。常见的互联网分布式架构包括客户端层、反向代理层、站点层、服务层和数据层,每一层都有对应的负载均衡实现方式。 在客户端层到反向代理层,通过“DNS轮询”实现负载均衡。DNS服务器为一个域名配置多 阅读全文
posted @ 2025-04-09 11:58 笠大 阅读(23) 评论(0) 推荐(0)
摘要: @CrossOrigin @GetMapping("/ai/resetChatMemory") public String resetChatMemory() { String tokenValue = StpUtil.getTokenValue(); String userId = StpUtil 阅读全文
posted @ 2025-04-09 11:57 笠大 阅读(25) 评论(0) 推荐(0)
摘要: public AIController(ChatClient.Builder builder, ChatMemory chatMemory) { this.chatClient = builder .defaultSystem(""" 你现在是“心晴小屋”小跃助手。请以友好,乐于助人的方式与您正在沟 阅读全文
posted @ 2025-04-09 11:56 笠大 阅读(25) 评论(0) 推荐(0)
摘要: @Operation(summary = "根据文章id分页查询评论列表") @GetMapping("/page") public Result page(CommentDTO dto){ return commentService.pageByAid(dto); } @Operation(sum 阅读全文
posted @ 2025-04-09 11:55 笠大 阅读(6) 评论(0) 推荐(0)
摘要: 若出现消息堆积,可采取以下措施: 提高消费者消费能力,如使用多线程。 增加消费者数量,采用工作队列模式,让多个消费者并行消费同一队列。 扩大队列容量,使用RabbitMQ的惰性队列,支持数百万条消息存储,直接存盘而非内存。 阅读全文
posted @ 2025-04-07 23:27 笠大 阅读(26) 评论(0) 推荐(0)
摘要: 了解。我们项目中使用RabbitMQ实现延迟队列,主要通过死信交换机和TTL(消息存活时间)来实现。 消息若超时未消费则变为死信,队列可绑定死信交换机,实现延迟功能。 另一种方法是安装RabbitMQ的死信插件,简化配置,在声明交换机时指定为死信交换机,并设置消息超时时间。 阅读全文
posted @ 2025-04-07 23:26 笠大 阅读(8) 评论(0) 推荐(0)
摘要: 我们遇到过消息重复消费的问题,处理方法是: 设置消费者为自动确认模式,如果服务在确认前宕机,重启后可能会再次消费同一消息。 通过业务唯一标识检查数据库中数据是否存在,若不存在则处理消息,若存在则忽略,避免重复消费。 阅读全文
posted @ 2025-04-07 23:26 笠大 阅读(26) 评论(0) 推荐(0)
摘要: 我们使用RabbitMQ来确保MySQL和Redis间数据双写的一致性,这要求我们实现消息的高可用性,具体措施包括: 开启生产者确认机制,确保消息能被送达队列,如有错误则记录日志并修复数据。 启用持久化功能,保证消息在未消费前不会在队列中丢失,需要对交换机、队列和消息本身都进行持久化。 对消费者开启 阅读全文
posted @ 2025-04-07 23:25 笠大 阅读(18) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 7 8 9 10 ··· 33 下一页