- 博客(94)
- 收藏
- 关注
原创 面向对象设计模式之代理模式详解
这时,“小红” 作为代理对象出现了。综上所述,代理模式作为面向对象设计模式中的重要一员,通过巧妙的中间层设计,为软件开发带来了更高的灵活性、可扩展性和可维护性。设计模式是开发者在长期实践中总结出来的通用解决方案,对于有 1 - 2 年经验的程序员来说,熟练掌握设计模式是提升自身技术水平的关键,也是进入大厂实习面试的重要考察内容,更是未来成长为架构师的必经之路。而在面向对象开发的实践过程中,人们总结出了 23 种经典的设计模式,其中代理模式凭借其独特的设计理念和广泛的应用场景,成为了开发者们不可或缺的工具。
2025-05-14 21:05:19
851
原创 RabbitMQ如何保证消息的顺序性
使用手动消息确认机制,消费者在处理好一条消息之后,显式的发送确认ack,这样rabbitmq才会移除并继续发送下一条消息。对消息设置一个序号,这个序号还可以排序,拿到这条序号后,要知道上一条消息有没有消费成功,如果消费了,那么进行消费。把这些序号存起来,在消费消息的时候,需要去数据库里查一下(redis):如果消费了,那么进行消费。把一个用户id的消息发送到听一个区,由一个消费者进行消费(rabbitmq不支持):在多个队列,多个消费者之间保证消息的顺序。:在单个队列里面保证消息的顺序。
2024-11-21 11:36:08
1568
原创 MQ的作用及应用场景
类似问题:项⽬什么场景下使⽤到了MQ, 为什么需要MQRabbitMQ 的作⽤?使⽤场景有哪些RabbitMQ的主要应⽤场景消息队列解耦应⽤程序的例⼦消息队列的应⽤场景为什么说消息队列可以削峰。
2024-11-15 09:48:51
606
原创 RabbitMQ实现延迟队列
缺点:存在消息顺序的问题,需要额外的逻辑处理上死信,增加了系统的复杂性。1.优点:通过插件可以直接插件延迟队列,简化了延迟队列的实现。2.缺点:依赖特定的插件,有运维工作;优点:灵活不需要额外的插件。1.TTL + 死信。
2024-11-15 09:48:08
593
原创 MQ的重试机制deliveryTag
要点1:把消息确认模式改为手动确认要点2:调用Channel对象的方法返回信息ACK:Acknowledgement,表示消息处理成功NACK:Negative Acknowledgement,表示消息处理失败Reject:拒绝,同样表示消息处理失败要点3:后续操作requeue为true:重新放回队列,重新投递,再次尝试requeue为false:不放回队列,不重新投递要点4:deliveryTag 消息的唯一标识,查找具体某一条消息的依据。
2024-11-13 16:50:45
394
原创 如何保证RabbitMQ的可靠性传输
默认情况下,消费端取回消息后,默认会自动返回ACK确认消息,所以在前面的测试中消息被消费端消费之后,RabbitMQ得到ACK确认信息就会删除消息。但实际开发中,消费端根据消息队列投递的消息执行对应的业务,未必都能执行成功,如果希望能够多次重试,那么默认设定就不满足要求了。消费者异常,消息还没到消费者,比如说消费者宕机,消费逻辑有问题。生产者端发送消息之后,回调confirm()方法。,因为原交换机转入备份交换机时并不会指定路由键。代码或者配置层错误,导致路由是失败。队列也是有一些特性:长度,有效期。
2024-11-13 16:48:15
1739
原创 NC313 两个数组的交集
通过boolean [] hash = new boolean[1010] 模拟hash。NC313 两个数组的交集。因为题目数据范围不大。
2024-11-06 08:48:17
199
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
2