- 博客(9)
- 收藏
- 关注
原创 RabbitMQ 和 Kafka的相同点和不同点?
使用 Exchange 绑定队列的路由模式(Direct/Fanout/Topic/Headers),支持复杂的路由逻辑。RabbitMQ 适合对延迟敏感的场景(如实时交易),而 Kafka 适合海量数据流(如日志分析)。基于分区的日志结构,消息按顺序追加到分区尾部,消费者通过偏移量主动拉取(Pull 模式)。需要高吞吐、持久化存储、流式处理,且允许较高延迟的场景(如日志聚合)。需要低延迟、复杂路由、事务性消息,且数据量适中的场景(如金融交易)。通过消息确认(ACK)和持久化保证可靠传输。
2025-04-01 22:36:32
519
原创 同步阻塞和异步阻塞的区别
同步阻塞定义:程序在执行I/O操作时,如果操作不能立即完成,程序会一直等待,直到操作完成后才返回结果并继续执行后续代码。特点:程序在等待I/O操作完成时处于阻塞状态,无法执行其他任务。这会导致CPU资源的浪费,因为等待期间CPU可能处于空闲状态。异步阻塞定义:程序在发起一个I/O操作后,可以立即返回并继续执行后续代码,但是程序仍然需要等待I/O操作完成后才能获取操作结果。特点:虽然程序可以立即返回并执行其他任务,但在获取I/O操作结果之前,它仍然需要在某个点等待操作完成。
2025-03-10 09:43:24
302
原创 MySQL 数据库中 MyISAM 和InnoDB 的区别
MyISAM 在写入时会阻塞所有读写操作,InnoDB 的行级锁仅锁定修改的行,适合高并发场景(如电商、社交应用)。是两种最常用的存储引擎,它们在功能、性能和适用场景上有显著区别。InnoDB 适合需要事务的场景(如支付、订单系统),MyISAM 仅适合非事务性操作。对于全文搜索需求,MyISAM 在旧版本中更优,但现代 InnoDB 已足够强大。InnoDB 的聚簇索引提升主键查询效率,但插入数据时可能需要页分裂优化。InnoDB 的缓冲池可显著提升频繁读写场景的性能(如 OLTP 系统)。
2025-02-27 18:10:34
799
原创 @Component, @Controller, @Repository, @Service 有何区别?
都是Spring框架中用于组件扫描和依赖注入的注解,但它们各自有不同的用途和适用场景。在Spring框架中,这些注解通常与组件扫描()一起使用,以实现高效的分层开发和管理。
2025-02-24 09:24:51
294
原创 怎么理解hashSet中的元素必须是可哈希的,即元素类必须正确地实现了hashCode()和equals()方法这句话?
是基于哈希表(或称为散列表)实现的集合类。哈希表的工作原理是通过一个哈希函数将元素映射到表中的某个位置,从而实现对元素的快速存取。这通常意味着这两个方法应该基于对象的内部状态来计算哈希码和进行相等性比较,并且这些计算应该是一致的、可重复的。中正确地存储和检索元素,这些元素必须满足一定的条件,即它们必须是“可哈希的”。这两个方法共同定义了元素在哈希表中的行为。如果元素类没有正确地实现这两个方法,那么。能够正确地工作,元素类必须正确地实现。的行为可能会变得不可预测。
2025-02-11 09:57:01
307
原创 遍历一个 List 有哪些不同的方式?每种方法的实现原理是什么?Java 中 List遍历的最佳实践是什么?
提升代码可读性,适合链式操作或并行处理,但注意性能开销。)的迭代器均按顺序高效访问元素,时间复杂度。实现,编译器将其转换为显式迭代器调用。:通过流式处理遍历元素,可并行执行(随机访问性能最佳,但需确保列表类型为。:迭代器直接递增索引访问数组元素。:需要链式操作、过滤或并行处理。直接访问数组索引,时间复杂度为。:需要遍历时删除元素或兼容所有。:需要反向遍历或同时修改元素。类型,推荐作为默认遍历方式。:迭代器维护当前节点的引用,,但支持双向移动和修改元素。:代码简洁,支持函数式编程。或其他支持随机访问的列表。
2025-02-10 15:47:28
716
原创 Nginx漏洞(CVE-2024-7347),Linux系统平滑升级Nginx版本
Nginx漏洞(CVE-2024-7347),Linux系统平滑升级Nginx版本
2024-11-26 16:27:33
1920
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人