![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
小记
文章平均质量分 84
小鹿的周先生
这个作者很懒,什么都没留下…
展开
-
RabbitMQ不公平分发问题分析及问题解决
一旦数量达到配置的数量, RabbitMQ 将停止在通道上传递更多消息,除非至少有一个未处理的消息被确认,例如,假设在通道上有未确认的消息 5、6、7,8,并且通道的预取计数设置为 4,此时 RabbitMQ 将不会在该通道上再传递任何消息,除非至少有一个未应答的消息被 ack。但是实际上,可能由于消费者处理消息的速度不同(可能由于网络因素、配置因素等不同),可能就会导致有些消费者长时间处于空闲状态,有些消费者消息处理不过来,导致消息积压,导致负载不均衡等情况,会严重影响到整个系统的性能。原创 2023-12-17 15:51:46 · 2242 阅读 · 0 评论 -
RabbitMQ 消息持久化
默认情况下,exchange、queue、message 等数据都是存储在内存中的,这意味着如果 RabbitMQ 重启、关闭、宕机时所有的信息都将丢失。RabbitMQ 提供了持久化来解决这个问题,持久化后,如果 RabbitMQ 发送 重启、关闭、宕机,下次起到时 RabbitMQ 会从硬盘中恢复exchange、queue、message 等数据。原创 2023-12-17 14:43:05 · 1145 阅读 · 0 评论 -
Typora如何放大查看图片?
我的版本号是1.2.4,而文章中采用的版本号是0.9.98,不同版本的Typora集成LightBox插件的方式会有一些区别。右键Typora 打开文件所在的位置,即可打开Typora 的安装位置(E:\SoftWare\Typora\resources)。原创 2023-12-17 14:14:46 · 1098 阅读 · 0 评论 -
RabbitMQ 消息应答与发布
消息应答是 RabbitMQ 中的一项重要功能,它确保消息在被消费者处理后得到适当的确认。通过消息应答,消费者可以告知 RabbitMQ 它已经成功处理了一条或多条消息,并且可以安全地从消息队列中删除这些消息。这种机制保证了消息的可靠传递和处理,即使在消费者出现故障或网络问题的情况下也能确保消息不会丢失。本文将深入探讨 RabbitMQ 中的消息应答和发布的概念、原理和最佳实践。原创 2023-12-16 14:59:00 · 1761 阅读 · 0 评论 -
RabbitMQ入门案例
案例中生产者叫做 Task,一个消费者就是一个工作队列,启动两个工作队列消费消息,这个两个工作队列会以轮询的方式消费消息。假设生产者生产 AA BB CC DD这四条消息,理论上工作线程C1和工作线程C2轮询接收到消息,期望测试结果如下。轮询消费消息指的是轮流消费消息,即每个工作队列都会获取一个消息进行消费,并且获取的次数按照顺序依次往下轮流。创建一个类作为消费者,消费 RabbitMQ 队列的消息,消息消费是通过Channel来完成的。在运行第二个工作线程,此时已经开了两个工作线程,如下。原创 2023-12-15 22:58:42 · 1252 阅读 · 0 评论 -
你了解Redis 内存淘汰机制吗?你能讲一下LRU算法和LFU算法吗,如果让你分别实现你会怎么实现?
LFU是一种基于访问频率的内存淘汰策略(最不经常使用,会淘汰掉使用次数最少的数据它假设经常被访问的数据在未来仍然频繁被访问,而较少被访问的数据更可能不再被使用。根据这个策略,LFU算法会淘汰访问频率最低的数据,以释放内存空间。原创 2023-12-09 21:30:52 · 1178 阅读 · 0 评论 -
@Transactional小记
@Transactional注解只能应用到public可见度的方法上,可以被应用于接口定义和接口方法,方法会覆盖类上面声明的事务。配置:当我们新建Spring Boot项目时,引入引用spring-boot-starter或者spring-boot-starter-web依赖,框架会自动注入数据库事务相关的依赖(如:框架会自动默认分别注入DataSourceTransactionManager或JpaTransactionManager),此时就可以直接使用@Transactional注解了。使用.原创 2020-10-28 09:27:33 · 365 阅读 · 0 评论 -
JSON.toJSONString中序列化空字符串
最近用JSON.toJSONString处理时,发现JSON.toJSONString中序列化会把对象中某些为空的属性给清空。上示例代码段: if (list.size() == 1 && CollectionUtils.isNotEmpty(results)) { results.forEach(item -> { if ("全国".equals(item.getAreaname())) {原创 2020-05-08 21:36:08 · 1691 阅读 · 0 评论