![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SpringBoot/SpringCloud
SpringBoot或SpringCloud相关知识
数据驱动生活
希望能够为自己想要的去奋斗
展开
-
CAP理论
CAP分别表示一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)。CAP理论是分布式系统中非常重要的理论之一,在一个分布式系统中最多只能同时满足两个条件。分布式系统必须满足分区容错性,因为节点之间难免出现网络异常,不能因为局部网络异常导致整个系统不可用。当网络出现分区后,系统只能选择满足一致性或可用性:CP:系统保持一致性,可能会拒绝一些请求以保证数据一致性。AP:系统保持可用性,可能会返回旧值或部分数据。原创 2023-12-20 02:18:41 · 682 阅读 · 1 评论 -
BASE理论
BASE理论。BASE是指Basically Available(基本可用)、Soft state(软状态)和Eventually consistent(最终一致性)。BASE理论是对分布式系统的另一种理论性指导,它是对传统的ACID事务特性的一种补充。基本可用:当系统无法满足去全部可用时保证核心服务可用即可。软状态:是指可以存在中间状态。最终一致性:舍弃强一致性,满足最终一致性。原创 2023-12-20 02:10:20 · 325 阅读 · 1 评论 -
RocketMQ消息丢失问题
RocketMQ消息丢失问题。同步消息要同步刷盘才完成一次消息发送,一般不会消息丢失,但会增加一定的延迟。异步消息异步刷盘,先将消息存于缓冲区,达到一定大小才进行刷盘,存在消息丢失风险。实际开发中一般使用异步消息,防止消息丢失通常自己对消息进行持久化:日志记录在文件或记录数据库等。生产者发送消息后将消息记录在MySQL并添加状态,消费者处理完消息后更新MySQL中消息的状态,最后通过定时任务将设定时长内未消费的消息进行补发避免消息丢失,同时防止重复消费。原创 2023-12-19 01:34:31 · 788 阅读 · 1 评论 -
SpringBoot3集成RocketMQ
SpringBoot3集成RocketMQ。编辑配置文件,NameServer服务地址等。导入配置类,在SpringBoot3及其后续版本中,不会默认导入RocketMQ的配置类,可通过在启动类使用@Import导入或创建其配置类。生产者,通过RocketMQTemplate其API发送消息。消费者,添加@Component和@RocketMQMessageListener注解,注解中指定消费者的具体配置,实现RocketMQListener接口。原创 2023-12-14 22:22:33 · 1664 阅读 · 2 评论 -
RocketMQ死信消息解决方案
RocketMQ死信消息解决方案。当消息消费重试达到阈值后,将不再投递到消费者,而是存于名为"%DLQ%消费者组名"主题中为死信消息。死信消息解决方案:A、通过业务控制避免死信消息,当重试次数大于自定义时,将消息记录到特定位置或通知人工处理并完成消费,该方案使用较多。B、消费死信主题消息,将消息记录到特定位置或通知人工处理并完成消费,但对于过多的死信主题则需要很多的消费者,该方案使用较少。原创 2023-12-11 01:15:13 · 591 阅读 · 1 评论 -
RocketMQ重复消费问题
RocketMQ重复消费问题。问题产生原因:生产者重复发送消息。例如一次消息发送还未完成,但消息已存于Brocker时Brocker宕机,过后生产者会重试发送消息从而导致消息重复。消费者扩容进行重平衡后消息还未消费完成可能会导致消息重复消费。解决方案:首先生产者给消息携带唯一标记(自定义key等业务控制,消息的msgId一定是全局唯一标识符,但实际使用中可能会出现相同消息有两个不同的msgId)。然后通过消费者控制消息的幂等性,可通过MySQL自定义去重表或Redis实现。原创 2023-12-09 01:49:10 · 778 阅读 · 0 评论