- 博客(682)
- 资源 (2)
- 收藏
- 关注
原创 使用reactor-rabbitmq库监听Rabbitmq
摘要: Reactor RabbitMQ 是基于 Project Reactor 的响应式 RabbitMQ 客户端,支持非阻塞、背压友好的消息处理,适用于高并发场景。核心特性包括响应式流(Flux/Mono)、自动背压管理和声明式配置。与 AMQP-Client 和 Spring AMQP 相比,它更适合响应式微服务架构,但需掌握 Reactor 编程模型。提供消息发送/接收、集群监听、手动/自动ACK及错误处理等能力,可通过 Maven 快速集成。示例代码展示了连接创建、消息收发及高级配置(如集群监听)
2025-07-04 17:12:34
710
原创 @Bean属性的destroyMethod解释
摘要:Spring 4.3+ 的 @Bean 默认使用 destroyMethod = "(inferred)",自动检测并调用 Bean 的 close() 或 shutdown() 方法进行销毁。适用于 CuratorFramework、JDBC 连接等资源管理,开发者无需显式配置。若需禁用自动推断,可设置 destroyMethod = "",或通过 @PreDestroy 自定义销毁逻辑。最佳实践建议对关键资源显式指定销毁方法以提高可读性,确保资源正确释放。(
2025-07-03 15:12:34
454
原创 RabbitMQ简单消息发送
本文介绍了使用RabbitMQ发送简单消息的实现方法。首先需要添加Spring Boot AMQP依赖,然后通过代码示例展示了如何建立连接、创建通道、声明队列以及发送消息。示例中包含了RabbitMQ的基本配置参数(地址、用户名、密码等),并详细说明了queueDeclare和basicPublish方法的参数含义。最后还展示了如何正确关闭通道和连接。该代码实现了一个完整的RabbitMQ消息发送流程,适合初学者快速上手使用RabbitMQ进行消息队列操作。
2025-07-01 15:07:54
274
原创 RabbitMQ简单消息监听和确认
RabbitMQ消息监听实现 摘要:本文介绍了使用Spring Boot监听RabbitMQ队列的简单方法。首先需要添加spring-boot-starter-amqp依赖,然后通过配置类实现消息监听功能。核心配置包括:1) 创建ConnectionFactory连接工厂;2) 配置SimpleMessageListenerContainer指定要监听的队列;3) 设置消息监听器处理接收到的消息。示例代码展示了如何监听queue1和queue2队列,并在收到消息时打印日志。这种方法适用于需要实时处理Rabb
2025-07-01 14:47:37
394
原创 zookeeper Curator(6):集群中的Follower和Observer
Zookeeper中的Observer节点不参与投票是为了优化集群性能与扩展性。Observer的核心作用是分担读请求负载,而非参与写入一致性维护。其设计考量包括:避免写入性能下降(投票需半数以上节点确认)、减少网络通信开销、防止脑裂风险、简化故障恢复流程。Observer适用于读多写少场景,通过异步同步数据提升读取吞吐量,同时不影响集群写入性能。这种设计在扩展性和一致性之间取得了平衡,使得Zookeeper更适合大规模分布式系统的需求。
2025-06-29 01:01:09
1080
原创 zookeeper Curator(5):集群架构和集群搭建
Zookeeper集群是一个由奇数节点(3/5/7)组成的分布式协调系统,采用Leader-Follower架构确保高可用性和数据一致性。核心机制包括ZAB协议的原子广播和崩溃恢复功能,保证写操作有序执行和数据最终一致。Leader选举基于EPOCH、ZXID和SID三级优先级规则触发。部署时需要配置服务器列表、端口和节点ID,通过心跳机制维持集群健康。优势在于强一致性和故障容忍,但存在写性能瓶颈和运维复杂度等挑战。Zookeeper广泛应用于配置管理、分布式锁等场景,是分布式系统的基础组件。
2025-06-29 00:57:47
544
原创 zookeeper Curator(4):分布式锁
摘要 分布式锁是解决分布式系统中跨JVM进程同步问题的关键技术。本文介绍了分布式锁的实现方式,包括基于缓存(如Redis)、Zookeeper和数据库(乐观锁、悲观锁)的方案。重点分析了Zookeeper分布式锁的原理,通过创建临时顺序节点和监听机制实现锁的获取与释放。此外,详细阐述了Curator提供的五种分布式锁API(如可重入锁、读写锁、信号量等)及其适用场景,并对比了各类锁的特性。最后以12306售票系统为例,演示了使用Curator的InterProcessMutex解决高并发下超卖问题的实践方案
2025-06-29 00:18:48
925
原创 zookeeper Curator(1):认识zookeeper和操作命令
ZooKeeper是一个分布式的树形目录服务,作为Hadoop生态系统的核心协调组件,用于管理配置、分布式锁和集群。其数据模型采用层次化节点结构,支持持久化、临时、顺序等节点类型。安装过程包括下载解压、环境配置、启动服务等步骤,支持Linux和Windows平台。常用命令涵盖服务管理(启动/停止)、节点操作(创建/删除)、监控和集群管理。ZooKeeper通过临时节点和监听机制实现分布式协调,适用于构建高可靠的分布式系统。注意节点数据限制(1MB)和ACL权限控制等特性。
2025-06-28 23:22:25
994
原创 zookeeper Curator(3):Watch事件监听
摘要:Zookeeper通过Watcher机制实现分布式协调服务,支持事件监听功能。Curator提供了三种监听方式:1) NodeCache监听单个节点变化;2) PathChildrenCache监听子节点变化;3) TreeCache结合前两者功能,监听节点及其所有子节点变化。每种方式都通过注册监听器实现事件响应,需要开启监听并保持程序运行。代码示例展示了如何创建监听器、注册事件处理器以及处理节点数据变化。这些功能简化了原生Zookeeper Watcher的使用,为分布式系统开发提供了便利的监听机制
2025-06-28 19:54:07
817
原创 zookeeper Curator(2):Curator的节点操作
Curator 是Apache Zookeeper 的java 客户端库常见的Zookeeper Java API原生Java APIZkClientCuratorCurator 项目的目标是简化Zookeeper 客户端的使用。Curator 最初是Netfix 研发的,后来捐献给了Apache基金会,目前属于 Apache顶级项目。
2025-06-28 18:06:22
511
原创 textarea右下角有小黑点
这个是浏览器自带功能,那个区域属于滚动条的占位区使textarea可以调整size,添加 style="resize:none"即可,添加多行文字时还是会出现滚动条的。
2025-06-11 14:45:03
322
原创 ipad获取时间NaN
摘要 在JavaScript中处理日期字符串时,iPad设备对"2025-05-01"格式的解析存在问题,返回NaN。而PC和iPhone则能正常解析。解决方案是将日期分隔符从"-"替换为"/",使用dateStr.replace(/\-/g, "/")转换格式后,iPad也能正确解析时间戳。这个差异源于不同设备对ISO日期格式支持的差异,强制转换为"/"分隔格式可确保跨设备兼容性。
2025-06-06 11:36:37
221
原创 PDF.js无法显示数字签名
PDF.js 从 v2.9.359 版本开始正式支持数字签名的渲染与显示,此前版本需通过修改源代码实现基础兼容。建议升级pdfjs组件大于等于v2.9.359。
2025-06-03 16:53:32
559
2
原创 easyui进度条
/ 显示带自定义样式的加载提示。'正在上传大文件...''系统处理中...'// 显示模态遮罩层。// 模拟分步骤加载。// 更新进度和文本。
2025-04-18 11:18:33
952
原创 IDEA加载项目时依赖无法更新
在排除仓库问题后,如果IDEA 提示无法import maven ,那么可能的问题是maven的版本和IDEA不匹配。以下是。
2025-04-03 16:42:24
904
原创 mybatis insert语句获取新增的id
配置了xml文件的 标签配置了:useGeneratedKeys=“true” keyProperty=“id”
2025-03-12 15:58:25
340
原创 svn忽略文件
wps打开文件时,会产生~$测试文件.doc 这种文件,这些文件是临时产物,没有实际意义。但是有时候却会莫秒奇妙的出现在提交列表中,如何取消?打开Git Settings,配置Global ignore parttern 即可(多个规则以空格分隔)
2025-02-27 10:00:28
331
原创 不同地图坐标系转换
目前常用的地图坐标系有多种标准,几家主流地图(如百度地图,高德地图和QQ地图等)使用的坐标系标准也各不相同。假如您有GPS坐标,想在百度地图上显示;或者有百度地图的坐标,但想在微信地图上显示,这时就需要使用一些算法或通过官方的API来转换坐标,在目标地图上正确显示。
2025-01-26 11:02:26
391
原创 checkbox的使用
示例声明了一个name为extendName的多选框,第一个checkbox为checked选中状态。推荐使用prop,attr可能不行。
2024-12-25 10:18:36
539
原创 访问ipv6的坑
本机ipv6回环地址:类似ipv4的127.0.0.1查看本机的ipv6地址使用ipconfig命令查看需要去掉%符号后面的内容。
2024-12-25 09:31:18
384
原创 js时间字符串转时间戳
使用正则表达式提取日期的各个部分,然后使用Date.UTC()函数获取时间戳。使用new Date()构造函数来获取时间戳。使用内置的Date.parse()函数。
2024-12-24 11:35:53
404
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人