day57_java_基础巩固

简介: 自己所掌握的基础知识加以巩固和记录!希望大家点赞收藏并能给予鼓励和支持!有任何建议或者帮助也可以来哦!!!虽然有些干货知识很通俗,但也是自己的必经之路i,加油!!!

消息重复消费如何解决?

影响消息正常发送和消费的重要原因是网络的不确定性。


出现原因

正常情况下在 consumer 真正消费完消息后应该发送 ack,通知 broker 该消息已正常

消费,从 queue 中剔除

当 ack 因为网络原因无法发送到 broker,broker 会认为词条消息没有被消费,此后会

开启消息重投机制把消息再次投递到 consumer。

消费模式:在 CLUSTERING 模式下,消息在 broker 中会保证相同 group 的 consumer 消

费一次,但是针对不同 group 的 consumer 会推送多次


解决方案

数据库表:处理消息前,使用消息主键在表中带有约束的字段中 insert

Map:单机时可以使用 map 做限制,消费时查询当前消息 id 是不是已经存在

Redis:使用分布式锁。

线上业务用消息中间件的时候,是否需要保证消息的顺序性?

如果不需要保证消息顺序,为什么不需要?假如我有一个场景要保证消息的顺序,你们

应该如何保证?

首先多个 queue 只能保证单个 queue 里的顺序,queue 是典型的 FIFO,天然顺序。

多个 queue 同时消费是无法绝对保证消息的有序性的。所以总结如下:

同一 topic,同一个 QUEUE,发消息的时候一个线程去发送消息,消费的时候 一个线

程去消费一个 queue 里的消息。


追问:怎么保证消息发到同一个 queue?

Rocket MQ 给我们提供了 MessageQueueSelector 接口,可以自己重写里面的接口,

实现自己的算法,举个最简单的例子:判断 i % 2 == 0,那就都放到 queue1 里,否则放

到 queue2 里。

相关文章
|
8月前
|
数据采集 自然语言处理 监控
拒绝“数据断层”:高质量舆情分析背后的隐形功臣——动态节点池
在AI与大数据时代,社交媒体数据是舆情监控、情感分析的核心资产。但再精妙的NLP模型也难逃“垃圾进、垃圾出”——数据断层导致的幸存者偏差,常源于爬虫被限流封禁。本文揭示动态代理IP池如何保障数据时序完整性、提升并发吞吐、规避风控,附可落地的Python实战代码,强调:稳定的数据管道,才是最高级的ROI。
767 4
|
人工智能 供应链 安全
AI驱动攻防升级,API安全走到关键档口
在AI与数字化转型加速背景下,API已成为企业连接内外业务的核心枢纽,但其面临的安全威胁也日益严峻。瑞数信息发布的《API安全趋势报告》指出,2024年API攻击流量同比增长162%,占所有网络攻击的78%。攻击呈现规模化、智能化、链式扩散等新特征,传统防护手段已难应对。报告建议企业构建覆盖API全生命周期的安全体系,强化资产梳理、访问控制、LLM防护、供应链管控等七大能力,提升动态防御水平,保障AI时代下的业务安全与稳定。
493 0
|
10月前
|
前端开发
基于开源多商户商城系统的多行业应用场景解析
多商户商城系统不仅是电商工具,更是灵活的平台型业务框架。只要满足“多主体入驻、独立经营、平台统管”三大条件,即可适配本地生活、垂直电商、品牌联营、知识付费、区域联盟等多元场景。开源特性支持规则定制与流程重构,让行业逻辑真正落地系统。(239字)
|
10月前
|
JavaScript 前端开发 Apache
如何用vue-echarts实现面积图?
本文介绍如何使用 Vue-Echarts 封装面积图组件,涵盖实现效果、思路及完整代码。通过配置 `areaStyle` 实现填充区域,并支持多条数据曲线与颜色自动循环,提升开发效率。附详细代码与配置说明,适合前端开发者参考学习。
411 0
|
机器学习/深度学习 计算机视觉
RT-DETR改进策略【Conv和Transformer】| GRSL-2024最新模块 卷积和自注意力融合模块 CAFM 减少图像中的噪声干扰
RT-DETR改进策略【Conv和Transformer】| GRSL-2024最新模块 卷积和自注意力融合模块 CAFM 减少图像中的噪声干扰
649 19
RT-DETR改进策略【Conv和Transformer】| GRSL-2024最新模块 卷积和自注意力融合模块 CAFM 减少图像中的噪声干扰
|
设计模式
SpringMVC常见组件之DataBinder数据绑定器分析
SpringMVC常见组件之DataBinder数据绑定器分析
953 0
|
SQL 资源调度 Kubernetes
【收藏+下载】Flink 年度学习资料大礼包!
大数据实时计算及 Apache Flink 年度Flink 年度学习资料大礼包,300+页实战应用精华总结!
【收藏+下载】Flink 年度学习资料大礼包!
|
Kubernetes 网络安全 网络架构
Docker不同宿主机网络打通
【8月更文挑战第20天】在不同宿主机上打通Docker网络可通过多种方法:1) 使用Docker原生的Overlay或Macvlan网络驱动实现跨主机通信,如Overlay网络利用VXLAN技术连接多台宿主机,Macvlan则让容器直接接入物理网络;2) 利用第三方工具如Weave Net或Flannel构建虚拟网络,Weave Net简化网络配置,Flannel则适用于Kubernetes环境并通过UDP封装数据包实现通信。实施前需确保宿主机间网络畅通且防火墙设置适当。
975 2
|
算法 Java 数据中心
分布式ID生成系统之雪花算法详解
在当今的云计算和微服务架构盛行的时代,分布式系统已成为软件开发的重要组成部分。随着系统规模的扩大和业务的复杂化,对数据一致性和唯一性的要求也越来越高,尤其是在全局唯一标识符(ID)的生成上。因此,分布式ID生成系统应运而生,成为保证数据唯一性和提高系统可扩展性的关键技术之一。雪花算法(Snowflake)是Twitter开源的一种算法,用于生成64位的全局唯一ID,非常适用于分布式系统中生成唯一标识符。下面我们将深入探讨雪花算法的原理、结构和实现方式。
1338 2
 分布式ID生成系统之雪花算法详解

热门文章

最新文章