Java面试之消息中间件
消息队列
-
- 优缺点
- 特点
- 解耦
- 异步
- 削峰
- 缺点
- 系统可用性降低
- 兜底:代码中try、catch 异常捕捉后直接进行数据库操作,或者 搭建高可用集群,Kafka集群、RocketMQ集群
- 提高复杂度
- 消息重复(消费端的幂等性设计)、消息丢失(主要集中RabbitMQ)、消息的顺序(业务:1,下单 2,支付 3,发送物流 4,通知)
- 一致性问题
- a,b,c三个系统,a、b两个写入数据库成功了,c系统写库失败?使用分布式事务来控制。RocketMQ提供了,其他的seta方式
- 系统可用性降低
- 特点
- 解耦
- 异步
- 削峰
- 缺点
- 系统可用性降低
- 兜底:代码中try、catch 异常捕捉后直接进行数据库操作,或者 搭建高可用集群,Kafka集群、RocketMQ集群
- 提高复杂度
- 消息重复(消费端的幂等性设计)、消息丢失(主要集中RabbitMQ)、消息的顺序(业务:1,下单 2,支付 3,发送物流 4,通知)
- 一致性问题
- a,b,c三个系统,a、b两个写入数据库成功了,c系统写库失败?使用分布式事务来控制。RocketMQ提供了,其他的seta方式
- 系统可用性降低
- 特点
- RabbitMQ、Kafka、RocketMQ 对比
- 性能角度
- RabbitMQ 1.2w
- Kafka 100w
- Rocket MQ 10w
- 集群扩展支持
- Rabbit MQ集群很弱(确保高可用 不能扩展性能)
- Kafka 天生分布式,支持动态扩展
- Rocket MQ 天生分布式,支持动态扩展
- 功能
- Rabbit MQ比较丰富(死信消息、延迟消息)
- Kafka比较弱
- Rocket MQ比较丰富(死信、延迟、消息回溯、消息过滤)
- 性能角度
- 常见问题及解决方案
- 重复消费
- 死信消息
- MVCC(多版本控制)
- 对整体业务改动较大,使用很不便利,代价较高
- 去重表(MySQL、Redis)
- 表上构建唯一性索引
- try{处理业务:插入数据/判断是否存在}catch(exception e){return
- 重复消费
- 优缺点
相关文章:
Java面试之消息中间件
消息队列 优缺点 特点 解耦异步削峰缺点 系统可用性降低 兜底:代码中try、catch 异常捕捉后直接进行数据库操作,或者 搭建高可用集群,Kafka集群、RocketMQ集群提高复杂度 消息重复(消费端的幂等性设计)、消息丢失(主要集中RabbitMQ)、消息的顺序(业务:1,下单 2,支付 3,发…...
网工学习 DHCP配置-接口模式
网工学习 DHCP配置-接口模式 学习DHCP总是看到,接口模式、全局模式、中继模式。理解起来也不困难,但是自己动手操作起来全是问号。跟着老师视频配置啥问题没有,自己组建网络环境配置就是不通,悲催。今天总结一下我学习接口模式的…...
【GO】语言特点 | Go和Java的对比
while循环 go语言中没有while循环,一般都是用for循环替代 while (条件) {} // Java的for循环for true {} // go 语言中会用一个为真的表达式作为是否 会进入循环的条件,也就是把其他语言的for和while合并了for循环 for (Type item : list) {} // j…...
USB2.0设备检测过程信号分析
1.简介 USB设备接入的Hub端口负责检测USB2.0设备是否存在和确定USB2.0设备的速度。检测设备是否存在和确定设备速度涉及一系列的信号交互,下面将分析该过程。 2.硬件 USB低速设备和全速/高速设备的连接器在硬件结构上有所不同,而主机或者Hub接收端连接…...
Go语言物联网开发安科瑞ADW300/4G电能表数据上传mqtt平台-电表接线到传输数据完整流程
电能表功能说明 ADW300是方便用户进行用电监测、集抄和管理,可灵活安装在配电箱中,可用于电力运维、环保监管等在线监测类平台中。我们本案例是用于工业售电公司对出售电的管理,设备可以监控用电情况、故障监控及警报,售电公司可…...
LabVIEW质谱仪开发与升级
LabVIEW质谱仪开发与升级 随着科技的发展和实验要求的提高,传统基于VB的质谱仪系统已经无法满足当前的高精度和高效率需求。这些系统通常存在着功能不全和操作复杂的问题,影响了科研和生产的进度。为了解决这些问题,开发了一套基于LabVIEW开…...
SwiftUI之DragGesture
SwiftUI中的DragGesture是一种手势识别器,用于捕捉用户拖拽操作。通过DragGesture,我们可以监听用户在视图上的拖拽行为,并对其进行响应。 在SwiftUI中,我们可以将DragGesture应用于任何视图,以便捕捉拖拽手势。在Dra…...
主网NFT的发布合约
1.什么是nft? NFT:Non-fungible-token 非同质化货币 2.新建suimove项目 使用sui move new 项目名命令新建sui move项目 sui move new nft_qyx项目结构如下: 3.写nft合约 module qyx123::nft{use sui::object::{Self, UID};use sui::transfer;use sui::tx_context::{Sel…...
分享2024年在家轻松兼职赚钱的5个副业
今天在网上看到这么一句话,真的让我深有感触:“职场人一定要有居安思危的意识,创业的人一定要三思而后行”。在这个瞬息万变的时代,连被视为铁饭碗的公务员、教师等体制内工作都不能保证一辈子的稳定。发展副业,似乎成…...
电脑小问题:Windows更新后黑屏
Windows 更新后黑屏解决方法 在 Windows 更新后,伴随了一个小问题,电脑启动后出现了桌面黑屏。原因可能是火绒把 explorer.exe 当病毒处理了。 下面讲解 Windows 更新后黑屏的解决方法,步骤如下: 1. 按 ctrl alt delete 组合键…...
C++指针(四)万字图文详解!
个人主页:PingdiGuo_guo 收录专栏:C干货专栏 前言 相关文章:C指针(一)、C指针(二)、C指针(三) 本篇博客是介绍函数指针、函数指针数组、回调函数、指针函数的。 点赞破六…...
商品管理系统设计100问?
你的系统是用于哪种类型的商品管理?比如电子商品、实体商品、服装、食品等等?你需要管理哪些商品信息?比如名称、描述、价格、库存等等?你是否需要对商品进行分类?如果是,分类的结构是怎样的?你…...
Python的反射
通过字符串的形式操作对象的属性 class Person(object):def __init__(self,name,age) -> None:self.namenameself.ageagedef walking(self):print("walking......")获取对象的属性 pPerson("Recardo",12) # 获取队形的name属性 agetattr(p,"nam…...
【Spring云原生系列】Spring RabbitMQ:异步处理机制的基础--消息队列 原理讲解+使用教程
🎉🎉欢迎光临,终于等到你啦🎉🎉 🏅我是苏泽,一位对技术充满热情的探索者和分享者。🚀🚀 🌟持续更新的专栏《Spring 狂野之旅:从入门到入魔》 &a…...
UE5.1_Varest_Warning
UE5.1_Varest_Warning LogVaRest: Warning: UVaRestRequestJSON::GetResponseContentAsString(637): Response content string is cached LogVaRest: Warning: UVaRestRequestJSON::GetResponseContentAsString(637): Response content string is cached是警告也是报错&#…...
硬盘温度过高会怎么办?机箱温度多少算正常?
硬盘温度 硬盘在使用过程中,断电很容易导致数据丢失,但如果温度过高,也可能对硬盘造成损坏。 硬盘的温度是决定电脑能否正常使用的重要因素。 如果长时间读取和存储数据,硬盘的温度会升高。 那么,硬盘的正常温度是多少…...
fs模块_写入文件
fs:file system(文件系统) fs 模块可以实现与硬盘的交互例如文件的创建、删除、重命名、移动,还有文件内容的写入、读取,以及文件夹的相关操作 // 需求: // 新建一个文件,座右铭.txtÿ…...
flutter无法在windows平台上拖拽文件到它的窗口中
我碰到的问题是调试模式下没办法拖拽。 即便使用了第三方包desktop_drop和cross_file,还是这样。 但是一旦构建之后就能正常运行了。 推测是在构建的过程中,flutter往windows包裹代码中加了东西。 跟AI对话之后,推测一个可能的解决方法是修改…...
[递归、搜索、回溯]----递归
前言 作者:小蜗牛向前冲 专栏:小蜗牛算法之路 专栏介绍:"蜗牛之道,攀登大厂高峰,让我们携手学习算法。在这个专栏中,将涵盖动态规划、贪心算法、回溯等高阶技巧,不定期为你奉上基础数据结构…...
XS2100S:IEEE 802.3af/at 兼容、用电设备接口控制器,集成功率MOSFET V1.0.3
XS2100S:IEEE 802.3af/at 兼容、用电设备接口控制器,集成功率MOSFET V1.0.3 北京冠宇铭通 肖小姐 概述 XS2100S 为用电设备 (PD) 提供符合以太网供电 (PoE)系统 IEEE802.3af/at 标准的完整接口。 XS2100S 为 PD 提供检测信号、分级信号以及带有浪…...
从AlexNet到ChannelNets:图解Channel-Wise卷积如何解决通道信息隔离这个老大难问题
从AlexNet到ChannelNets:通道信息交互的进化之路 卷积神经网络(CNN)的发展史,本质上是一部如何高效处理通道间信息交互的探索史。早期的AlexNet像两条平行铁轨,组卷积间的通道老死不相往来;MobileNet用1x1卷…...
从零开始构建水下机器人仿真环境:UUV Simulator实战指南
从零开始构建水下机器人仿真环境:UUV Simulator实战指南 【免费下载链接】uuv_simulator Gazebo/ROS packages for underwater robotics simulation 项目地址: https://gitcode.com/gh_mirrors/uu/uuv_simulator UUV Simulator是一个基于Gazebo和ROS的开源水…...
别再手算拉普拉斯变换了!用Matlab的laplace/ilaplace函数5分钟搞定信号分析
别再手算拉普拉斯变换了!用Matlab的laplace/ilaplace函数5分钟搞定信号分析 信号与系统课程里最让人头疼的作业是什么?十有八九会有人提到拉普拉斯变换。那些冗长的积分公式、复杂的收敛域分析,以及稍不留神就会出错的代数运算,简…...
保姆级教程:用SageMath复现CTF中的AMM算法,手算有限域开方
密码学实战:用SageMath攻克RSA中的AMM算法与有限域开方难题 密码学竞赛中那些看似无解的RSA题目,往往隐藏着令人着迷的数学奥秘。当遇到e与φ(n)不互质的特殊场景时,传统解密方法失效,我们需要搬出数论中的"重型武器"—…...
Visual C++运行库终极修复指南:5分钟解决Windows软件运行错误
Visual C运行库终极修复指南:5分钟解决Windows软件运行错误 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过软件无法启动࿰…...
SDXL 1.0多模态协同:灵感画廊输出图像与配套生成的诗意文案同步创作演示
SDXL 1.0多模态协同:灵感画廊输出图像与配套生成的诗意文案同步创作演示 1. 引言:当AI成为你的艺术搭档 想象一下,你脑海中浮现出一个绝美的画面:黄昏时分,一位身着长裙的舞者,在空旷的剧院里,…...
5个技巧让foobar2000歌词体验升级:ESLyric-LyricsSource完全指南
5个技巧让foobar2000歌词体验升级:ESLyric-LyricsSource完全指南 【免费下载链接】ESLyric-LyricsSource Advanced lyrics source for ESLyric in foobar2000 项目地址: https://gitcode.com/gh_mirrors/es/ESLyric-LyricsSource 想让你的foobar2000播放器拥…...
图片格式转换革命:如何用右键菜单实现三秒智能适配
图片格式转换革命:如何用右键菜单实现三秒智能适配 【免费下载链接】Save-Image-as-Type Save Image as Type is an chrome extension which add Save as PNG / JPG / WebP to the context menu of image. 项目地址: https://gitcode.com/gh_mirrors/sa/Save-Imag…...
Mac新手必看:从bash切换到zsh后,Maven、Brew命令失效的保姆级修复指南
Mac开发者必备:zsh环境变量迁移全攻略与效率提升指南 刚把Mac的默认shell从bash切换到zsh时,那种"昨天还能用的命令今天全报错"的恐慌感我至今记忆犹新。Maven构建失败、brew命令失踪,连最基本的工具都集体罢工——这其实是每个Mac…...
齿轮箱零部件及其装配质检中的TVA技术突破(21)
前沿技术背景介绍:AI 智能体视觉检测系统(Transformer-based Vision Agent,缩写:TVA),是依托 Transformer 架构与“因式智能体”范式所构建的高精度智能体。它区别于传统机器视觉与早期 AI 视觉,…...
