1.RabbitMQ-如何保证消息不丢失1.生产者确认机制RabbitMQ提供了publisher confirm机制来避免消息发送到MQ过程中丢失。消息发送到MQ以后,会返回一个结果给发送者,表示消息是否处理成功消息失败之后如何处理:1回调方法即时重发 2记录日志 3保存到数据库然后定时重发,成功发送后即刻删除表中的数据2.消息持久化MQ默认是内存存储消息,开启持久化功能可以确保缓存在MQ中的消
1.Seata框架(XA、AT、TCC)TC (Transaction Coordinator) - 事务协调者:维护全局和分支事务的状态,协调全局事务提交或回滚。TM (Transaction Manager) - 事务管理器:定义全局事务的范围、开始全局事务、提交或回滚全局事务。RM (Resource Manager) - 资源管理器:管理分支事务处理的资源,与TC交谈以注册分支事务和报告分
幂等: 多次调用方法或者接口不会改变业务状态,可以保证重复调用的结果和单次调用的结果一致。需要幂等场景:用户重复点击(网络波动) MQ消息重复 应用使用失败或超时重试机制1.数据库唯一索引(新增)不建议使用2.token+redis(新增、修改)3.分布式锁(新增、修改)快速失败(抢不到锁的线程)控制锁的粒度分布式锁,性能较低使用token+redis来实现,性能较好第一次请求,生成一个唯一tok
CAP1998年,加州大学的计算机科学家 Eric Brewer 提出,分布式系统有三个指标:Consistency(一致性) Availability(可用性) Partition tolerance (分区容错性)Eric Brewer 说,分布式系统无法同时满足这三个指标。这个结论就叫做 CAP 定理Consiste
Nginx限流1.控制速率(突发流量)参考漏桶算法(桶有固定大小,超过大小,多余请求会等待或抛弃)nginx配置limit_req_zone:标识,表示设置一个请求的区域,用于限制对指定资源的请求频率key:定义限流对象,binary_remote_addr就是一种key,基于客户端ip限流Zone:定义共享存储区来存储访问信息,10m可以存储16wip地址访问信息service1RateLimi
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号