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 里。

相关文章
|
5月前
|
数据采集 自然语言处理 监控
拒绝“数据断层”:高质量舆情分析背后的隐形功臣——动态节点池
在AI与大数据时代,社交媒体数据是舆情监控、情感分析的核心资产。但再精妙的NLP模型也难逃“垃圾进、垃圾出”——数据断层导致的幸存者偏差,常源于爬虫被限流封禁。本文揭示动态代理IP池如何保障数据时序完整性、提升并发吞吐、规避风控,附可落地的Python实战代码,强调:稳定的数据管道,才是最高级的ROI。
614 4
|
7月前
|
JavaScript 前端开发 Apache
如何用vue-echarts实现面积图?
本文介绍如何使用 Vue-Echarts 封装面积图组件,涵盖实现效果、思路及完整代码。通过配置 `areaStyle` 实现填充区域,并支持多条数据曲线与颜色自动循环,提升开发效率。附详细代码与配置说明,适合前端开发者参考学习。
292 0
|
机器学习/深度学习 计算机视觉
RT-DETR改进策略【Conv和Transformer】| GRSL-2024最新模块 卷积和自注意力融合模块 CAFM 减少图像中的噪声干扰
RT-DETR改进策略【Conv和Transformer】| GRSL-2024最新模块 卷积和自注意力融合模块 CAFM 减少图像中的噪声干扰
586 19
RT-DETR改进策略【Conv和Transformer】| GRSL-2024最新模块 卷积和自注意力融合模块 CAFM 减少图像中的噪声干扰
|
机器学习/深度学习 Oracle Java
Java 起源
Java 是由美国 Sun Microsystems 公司(现为 Oracle 公司子公司)的詹姆斯·高斯林(James Gosling)等人于1995年开发的一门编程语言。 当时,Sun 公司希望开发一种支持跨平台、具有移植性的语言,可以适用于各种计算机硬件和操作系统。于是,詹姆斯·高斯林领导的研发团队开发了 Java 语言,它既可以在 Windows、Linux 和 MacOS 等桌面操作系统上运行,也可以在服务器端和嵌入式系统上运行,具备非常好的跨平台能力,并且易于开发和维护。
586 0
Java 起源
|
设计模式
SpringMVC常见组件之DataBinder数据绑定器分析
SpringMVC常见组件之DataBinder数据绑定器分析
860 0
|
数据可视化 算法 Python
基于OpenFOAM和Python的流场动态模态分解:从数据提取到POD-DMD分析
本文介绍了如何利用Python脚本结合动态模态分解(DMD)技术,分析从OpenFOAM模拟中提取的二维切片数据,以深入理解流体动力学现象。通过PyVista库处理VTK格式的模拟数据,进行POD和DMD分析,揭示流场中的主要能量结构及动态特征。此方法为研究复杂流动系统提供了有力工具。
1297 2
基于OpenFOAM和Python的流场动态模态分解:从数据提取到POD-DMD分析
|
存储 人工智能 自然语言处理
高效档案管理案例介绍:文档内容批量结构化解决方案解析
档案文件内容丰富多样,传统人工管理耗时低效。思通数科AI平台通过自动布局分析、段落与标题检测、表格结构识别、嵌套内容还原及元数据生成等功能,实现档案的高精度分块处理和结构化存储,大幅提升管理和检索效率。某历史档案馆通过该平台完成了500万页档案的数字化,信息检索效率提升60%。
642 5
|
Kubernetes 网络安全 网络架构
Docker不同宿主机网络打通
【8月更文挑战第20天】在不同宿主机上打通Docker网络可通过多种方法:1) 使用Docker原生的Overlay或Macvlan网络驱动实现跨主机通信,如Overlay网络利用VXLAN技术连接多台宿主机,Macvlan则让容器直接接入物理网络;2) 利用第三方工具如Weave Net或Flannel构建虚拟网络,Weave Net简化网络配置,Flannel则适用于Kubernetes环境并通过UDP封装数据包实现通信。实施前需确保宿主机间网络畅通且防火墙设置适当。
904 2
|
SQL 资源调度 Kubernetes
【收藏+下载】Flink 年度学习资料大礼包!
大数据实时计算及 Apache Flink 年度Flink 年度学习资料大礼包,300+页实战应用精华总结!
【收藏+下载】Flink 年度学习资料大礼包!

热门文章

最新文章