- 博客(7)
- 收藏
- 关注
原创 分布式事务学习笔记(24.4.23随笔;入门简略理解版)
按照规律进行通知,不保证数据一定可以成功,但是提供可以查询操作接口进行核对,这种方案主要在第三方系统通讯时,比如:调用微信或者支付宝支付后的支付结果通知,这种方案也是结合MQ来进行实现,例如:通过MQ发送http请求,设置最大通知次数,达到通知次数后即不在通知。ACID只是解决单个服务的事务,但是解决不了分布式事务,例如:我们有一个订单服务和库存服务,那么用户下单我们会通过订单调用库存服务,如果我们的订单服务挂掉了,数据没有写进去,那么库存服务正在写数据,造成了分布式事务的问题。
2024-10-30 17:05:57
838
原创 RabbitMq如何保证消息的可靠性,消息的重复消费,消息堆积的问题
例如在开发中,商城订单和库存系统,当我们提交订单时,我们应该去锁定库存,但是由于网络原因,我们提交订单时没有反应,我们又提交了一次,此时减库存的操作执行2次,导致库存数量不对,这就是没有实现幂等。也就是根据业务逻辑来进行判断,我们收到消息然后更改订单状态,此时又收到一样的消息,因为我们查询订单状态为已经支付了,那么我们就不需要在修改状态了,这样就保证了同样的消息不会被消费。(1)我们可以增加消费者的数量,通过水平拓展,增加消费者的数量来提高消息处理能力(只要钱到位,都不是问题,如果没钱就用第四种,嘿嘿)。
2024-07-23 17:00:47
1201
原创 线程几种实现方式、异步编排笔记
handle是完成任务时对结果的处理,handle方法和thenApply方法处理的方式基本一样,不同的是handle是在任务完成之后去执行的,还可以处理异常任务,而thenApply只能处理执行正常的任务,任务执行异常则不执行thenApply。whenComplete:它的回调函数会在执行当前任务的线程上进行执行,也就是说,如果当前CompletableFuture是在某个特定的线程上完成的,,那么whenComplete的回调函数也会在该线程上执行。Function
2024-07-22 19:40:01
898
原创 RabbitMq的惰性队列(Lazy Queue)、优先级队列(Priority Queue)
RabbitMQ从3.6.0版本开始引入惰性队列,它是一种以惰性模式运行的经典队列。当设置“惰性”队列模式时,经典队列中的消息将尽可能早地移动到磁盘。这些消息只有在消费者请求时才被加载到RAM中。也就是说生产者发送消息到RabbitMq时,这些消息会直接写入到磁盘上,而不是先加载到内存中;当消费者需要消费消息时,RabbitMq会从磁盘上加载这些消息到内存中,然后交给消费者,所以惰性队列只有在消费者实际消费时,才会将消息从磁盘加载到内存中。
2024-07-01 14:54:07
2048
原创 SpringBoot简单实现RabbitMq的死信队列
死信队列是一种用于处理无法被正常消费的消息机制,当消息在队列中变成 '死信' 时,RabbitMq会自动将这些消息从新发送到另一个队列,即死信队列。那么在消息队列中,什么情况下会变成 '死信'?
2024-06-28 09:57:49
1306
原创 一文搞定springBoot集成RabbitMq
RabbitMQ 是一个开源的消息代理(message broker)和队列服务器(queue server),它基于高级消息队列协议(AMQP)标准进行开发。RabbitMQ 最初起源于 Erlang 语言,后来用一系列插件扩展了其功能,如消息确认、持久化、发布/订阅、路由、集群和高可用性。RabbitMQ 可以作为应用程序之间的消息中间件,用于解耦应用、异步通信和流量削峰。
2024-06-25 09:42:50
1800
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人