Mg + ZnSO₄ == MgSO₄ + Zn

Find me on

Writing

海量消息堆积MQ

一、提高消费者的消费能力 ,可以使用多线程消费任务 @Bean public SimpleRabbitListenerContainerFactory rabbitListenerContainerFactory(        ConnectionFactory connectionFactor

RabbitMQ延迟队列

延迟队列就是用到了死信交换机和TTL(消息存活时间)实现的。 如果消息超时未消费就会变成死信,在RabbitMQ中如果消息成为死信,队列可以绑定一个死信交换机,在死信交换机上可以绑定其他队列,在我们发消息的时候可以按照需求指定TTL的时间,这样就实现了延迟队列的功能了。 @Bean public Q

RabbitMQ消息的重复消费问题

消费者设置了自动确认机制,当服务还没来得及给MQ确认的时候,服务宕机了,导致服务重启之后,又消费了一次消息。这样就重复消费了。 解决办法

RabbitMQ 保证消息不丢失

第一个是开启生产者确认机制,确保生产者的消息能到达队列,如果报错可以先记录到日志中,再去修复数据。 第二个是开启持久化功能,确保消息未消费前在队列中不会丢失,其中的交换机、队列、和消息都要做持久化。 第三个是开启消费者确认机制为auto,由spring确认消息处理成功后完成ack。 第四个是设置失败

分布式服务的接口幂等性

幂等:多次调用方法或者接口不会改变业务状态,可以保证重复调用的结果和单次调用的结果一致。 如果是新增数据,可以使用数据库的唯一索引。 如果是新增或修改数据 分布式锁,性能较低。 使用token+redis实现,性能较好。

分布式事务解决方案

主流的有阿里出的seata框架,和MQ XA模式 AT模式

CAP理论

CAP主要是在分布式项目下的一个理论。包含了三项,一致性、可用性、分区容错性 一致性(Consistency)是指更新操作成功并返回客户端完成后,所有节点在同一时间的数据完全一致(强一致性),不能存在中间状态。 可用性(Availability) 是指系统提供的服务必须一直处于可用的状态,对于用户的

微服务如何限流

1. nginx限流 nginx使用的漏桶算法来实现过滤,让请求以固定的速率处理请求,可以应对突发流量。可以根据IP进行限流,设置限流速度。 2. spring cloud gateway局部过滤器 spring cloud

微服务组件

微服务有五大组件 网关 Gate Way 注册中心/配置中心 Nacos

Volatile关键字

一旦一个共享变量(类的成员变量、类的静态成员变量)被volatile修饰之后,那么就具备了两层语义: 保证线程间的可见性 禁止进行指令重排序 保证线程间的可见性 public class ForeverLoop {