范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

2021最新版RabbitMQ面试题总结,每道题都很经典

  大家对RabbitMQ原理都应该有所了解,下面我们就来看一下关于RabbitMQ原理的面试题。1、为什么要引入MQ系统,直接读写数据库不行吗?
  其实就是问问你消息队列都有哪些使用场景,然后你项目里具体是什么场景,说说你在这个场景里用消息队列是什么?
  先说一下消息队列常见的使用场景吧,其实场景有很多,但是比较核心的有 3 个:解耦、异步、削峰。解耦:多系统多进程的数据交换,用pub/sub异步:把大数据量的同步处理改为异步削峰:一般的A 系统使用 MySQL,扛到每秒 2k 个请求就差不多了,如果每秒请求到 5k 的话,可能就直接把 MySQL 给打死了,导致系统崩溃,用户也就没法再使用系统了。如果使用 MQ, 每秒 5k 个请求写入 MQ,A 系统每秒钟最多处理 2k 个请求,因为 MySQL 每秒钟最多处理 2k 个。A 系统从 MQ 中慢慢拉取请求,每秒钟就拉取 2k 个请求,不要超过自己每秒能处理的最 大请求数量就 ok,这样下来,哪怕是高峰期的时候,A 系统也绝对不会挂掉,这又设计请求排队的问题。2、消息队列有什么优缺点?优点:
  解耦、异步、削峰缺点:
  系统可用性降低
  系统引入的外部依赖越多,越容易挂掉。
  系统复杂度提高
  一致性问题
  A 系统处理完了直接返回成功了,人都以为你这个请求就成功了;但是问题是,要是 BCD 三个系统那里,BD 两个系统写库成功了,结果 C 系统写库失败了,这数据就不一致了。3、RabbitMQ 的高可用性如何保证?
  RabbitMQ 有三种模式:单机模式、普通集群模式、镜像集群模式
  单机模式不存在高可用。
  普通集群模式也不存在高可用性,意思就是在多台机器上启动多个 RabbitMQ 实例,每个机器启动一个。但是你创建的 queue,只会放在一个 RabbitMQ 实例上,但是每个实例都同步 queue 的元数据(元数据可以认为是 queue 的一些配置信息,通过元数据,可以找到 queue 所在实例)。你消费的时候,实际上如果连接到了另外一个实例,那么那个实例会从 queue 所在实例上 拉取数据过来。这种方式确实很麻烦,也不怎么好,没做到所谓的分布式,就是个普通集群。因为这导致你要么消费者每次随机连接一个实例然后拉取数据,要么固定连接那个 queue 所在实 例消费数据,前者有数据拉取的开销,后者导致单实例性能瓶颈。而且如果那个放 queue 的实例宕机了,会导致接下来其他实例就无法从那个实例拉取,如果你开启了消息持久化,让 RabbitMQ 落地存储消息的话,消息不一定会丢,得等这个实例恢复了,然后才可以继续从这个 queue 拉取数据。
  镜像集群模式的策略是高可用策略,指定的时候可以要求数据同步到所有节点的,也可以要求同步到指定数量的节点,再次创建 queue 的时候,应用这个策略,就会自动将数据同步到其他的 节点上去了。4、如何解决消息队列的延时以及过期失效问题?
  其实本质针对的场景,都是说,可能你的消费端出了问题,不消费了;或者消费的速度极其慢,造成消息堆积了,MQ存储快要爆了,甚至开始过期失效删除数据了。
  针对这个问题可以有事前、事中、事后三种处理事前:开发预警程序,监控最大的可堆积消息数,超过就发预警消息(比如短信),不要等出生产事故了再处理。事中:看看消费端是不是故障停止了,紧急重启。事后:需要对消费端紧急扩容 ,增加处理消费者进程,如扩充10倍处理,但其实这也有个问题,即数据库的吞吐是有限制的,如果是消费到数据库也是没办法巨量扩容的,所以还是要在吞吐能力支持下老老实实的泄洪消 费。所以事前预防还是最重要的。否则出发删除过期数据,那就需要再重写生产消息的程序,重新产生消息。5、RabbitMQ如何保证不丢数据?
  需要考虑3个可能丢数据的地方:生产端、队列本身、消费端
  (1) 生产端:开启事务(不推荐,太耗性能降低吞吐),推荐开启 confirm 模式,在生产者那里设置开启 confirm 模式之后,你每次写的消息都会分配一个唯一的 id,然后如果写入了RabbitMQ 中,RabbitMQ 会给你回传一个 ack 消息,告诉你说这个消息 ok 了。如果 RabbitMQ 没能处理这个消息,会回调你的一个 nack 接口,告诉你这个消息接收失败,你可以重试。而 且你可以结合这个机制自己在内存里维护每个消息 id 的状态,如果超过一定时间还没接收到这个消息的回调,那么你可以重发。
  (2) 队列本身:就是 RabbitMQ 自己弄丢了数据,这个你必须开启 RabbitMQ 的持久化,就是消息写入之后会持久化到磁盘,哪怕是 RabbitMQ 自己挂了,恢复之后会自动读取之前存储的数据,一般数据不会丢。
  设置持久化有两个步骤:
  创建 queue 的时候将其设置为持久化,这样就可以保证 RabbitMQ 持久化 queue 的元数据,但是它是不会持久化 queue 里的数据的。
  第二个是发送消息的时候将消息的 deliveryMode 设置为 2。就是将消息设置为持久化的,此时 RabbitMQ 就会将消息持久化到磁盘上去。
  (3) 消费端:其实和kafka的原理很类似,kafka即手动提交offsize。用RabbitMQ 提供的 ack 机制,简单来说,就是你必须关闭 RabbitMQ 的自动 ack,通过自己的一个 api 来调用就行,然后每次你自己代码里确保处理完的时候,再在程序里 ack。这样的话,如果你还没处理完,不就没有 ack 了?那 RabbitMQ 就认为你还没处理完,这个时候 RabbitMQ 会把这个消费分配给别 的 consumer 去处理,消息是不会丢的。6、如何保证队列的消息不被重复消费?
  这个需要灵活作答,考察的是思考力,因为消费的场景有很多,有数据库、有缓存、有第三方接口
  (1) 比如针对数据库,你拿到这个消息做数据库的insert操作。那就容易了,给这个消息做一个唯一主键(或者UUID),那么就算出现重复消费的情况,就会导致主键冲突,避免数据库出现脏数据。
  (2) 再比如redis缓存,你拿到这个消息做redis的set的操作,那就容易了,不用解决,因为你无论set几次结果都是一样的,set操作本来就算幂等操作。
  (3) 再比如第三方接口,需要确定两点,第三方接口程序是有去重能力的,那么脏一点直接丢数据过去,如果没有去重能力,还是需要我们来写程序去重,就是第2点的办法。7、集群节点类型都有什么?
  节点的存储类型分为两种:磁盘节点内存节点
  磁盘节点就是配置信息和元信息存储在磁盘上,内存节点把这些信息存储在内存中,当然内次节点的性能是大大超越磁盘节点的。
  单节点系统必须是磁盘节点,否则每次你重启RabbitMQ之后所有的系统配置信息都会丢失。
  RabbitMQ要求集群中至少有一个磁盘节点,当节点加入和离开集群时,必须通知磁盘节点。
  以上就是整理的RabbitMQ常见的面试题,这7道RabbitMQ面试题是必学的内容。如果对以上内容掌握的还不是很全面,或者知识有所欠缺,可以跟着动力节点的RabbitMQ视频教程来学习更多关于Dubbo框架的知识。RabbitMQ实战视频教程
  https://www.bilibili.com/video/BV1Ap4y1D7tURabbitMQ教程配套资料下载
  http://www.bjpowernode.com/?toutiao

Ngnix配置ssl证书(阿里云centOS)1在阿里云控制台下载ngnix对应的免费证书包含以下两个文件2800315。key2800315。pem在ngnix安装目录下usrlocalnginxconf新建cert目录,把国丰电脑装机行情预报CPU小幅波动,装机作为参考(附价格表)11月25日CPU行情开盘价G3930327元G4400460元G4560476元G4600485元G4900255元G5400398元I37100807元I574001175元I旧电脑升级,DDR3内存还能怎么选?现在不少攒机推荐的清单上,DDR4内存已经是必不可少的一项刚需。然而回顾硬件变迁,DDR4内存正式上市是在2014年,普及开来更在2015年之后,这样一算,DDR3内存离我们其实并今日之美团困扰都是自找的在今日头条的各种各样的消息类型中间,有很多都是对美团各种各样的谩骂和讽刺。其实我们安静下来想一想美团做错了什么?我们做错了什么?美团员工之社保这个话题来之久矣。但归根溯源来讲是美团win10远程桌面连接,CredSSP加密Oracle修正问题解决办法前几天工作的时候远程连接一个新的服务器时出现了下面的问题CredSSP处理其他应用程序的身份验证请求的身份验证提供程序根据微软官方的说法是,CVE20180886的CredSSP更电脑版微信多开我的电脑是win10系统,微信版本2。9。0。25第一步在电脑桌面新建一个记事本如下图第二部找到微信可执行程序的目录右击鼠标,点击属性,打开微信属性对话框,如下图找到微信文件路径,两台电脑组成局域网因为在家工作需要,又没有宽带想让两台电脑共享一个WiFi,又能提高传输速度,还能减少手机热点的耗电。所以尝试把他们组成一个局域网,让一台电脑连接热点就可以了。首先准备了两台笔记本,电脑卡顿变慢?看这里!作为程序员,生活中被人问最多的并不是coding问题,而是我的电脑为什么那么卡?很尴尬哈哈哈哈哈。我总结了一下替人解决卡顿的办法,暂时先列举几点,以后再发布深度优化方法我的电脑是w钱大妈为什么这么火爆?微信社群营销案例分析钱大妈成立于2012年,经过九年稳健运营,已经在全国30多座城市开设门店,门店总数突破3400家,发展成为了社区生鲜行业的领军品牌。作为不卖隔夜肉理念的创造者,钱大妈从新鲜角度重新减肥路上好玄幻?打开体脂秤一目了然,咕咚体脂秤体验女生对体形美这种追求是永远不会止步的了,减肥已是每天的日程工作。但是好多小白都是凭着自己的想法去减肥,然后效果是越减越肥喝水都肥,不知道怎么减才是好,在减肥路上简直是产生了一种玄幻上拼多多置办年货,几百元竟然买了这么多,这可太香了都说腊八过了就是年,让大家无比思念的春节已经近在眼前了,有人已经做好了过年的准备,也有许多人因为防疫而不得不就地过年,因此大家都说今年的春节可能是有史以来年味最淡的一次。我也是就地
LeetCode无重复字符的最长子串需求给定一个字符串s,请找出其中不含重复字符的最长子串的长度提示10s。lenght510的4次方2s由英文字母数字符号和空格组成解法一intlengthOfLongestSubs韩国央行数字货币二期试验预计2022年6月完成2021年8月,韩国央行宣布启动央行数字货币(CBDC)测试第一阶段。六个月后,测试正式完成,主要关注发行等数字货币的基本功能。近日,韩国央行宣布启动测试第二阶段,主要关注数字货币以用户为中心数禾科技的数字化创新求变随着后疫情时代的到来,各行各业都在顺应大众的消费习惯和消费行为的改变,无接触纯线上成为大势所趋,加之互联网的快速蝶变,金融行业也面临着数字化转型的诉求。依托数字化线上化远程化智能化中国电信5G消息正式商用来源人民邮电报1月25日,中国电信5G消息商用发布会以同创生态共赢未来为主题在北京举行,众多产业链合作伙伴代表一同见证中国电信5G消息正式商用。中国电信副总经理唐珂表示,中国电信经电视声音不好听,想连接音响,看本文方法随着科技不断发展,电子产品也不断地在更新换代。就以电视来说,新型的大屏智能电视逐步取代了古老的黑白和彩色电视机。观看体验和画质方面都得到了飞速提升。一些发烧友已不满足大屏液晶电视那贝贝品呗丨完美逆袭!京东快递击败顺丰登顶口碑榜三湘都市报全媒体记者刘品贝厉害了!京东快递击败顺丰速运拿下了口碑冠军!近日2022年中国顾客推荐指数快递服务推荐度排行榜中,顺丰只排在了第二位,而第一的桂冠则被京东快递摘得。不得不喜迎新春!OriginOSOcean系统让你玩转虎年时光轮转,再过不久我们马上就要迎来一年中最隆重也是最热闹的节日春节。不过,随着时代的变迁和年龄的增长,很多人都会觉得现在的年味变淡了,高楼大厦之间完全没有小时候迎接新年的喜气,以至司机鲁莽驾驶致乘客受伤瘫痪优步被索赔6300万美元美国马萨诸塞州一名男子近日起诉优步,要求赔偿6300万美元,因为他在优步预订的一次出行中发生了车祸,导致他终身瘫痪。这位名叫威廉古德(WilliamGood)的男子周二提交了诉讼,iOS15。3正式版来了,有必要升1月27日消息时隔一个多月,历经3个测试版的迭代,iOS15。3终于在今日凌晨发布了首个正式版版本,即iOS15。3正式版。本次iPhone端更新后版本号为19D50,版本号与上一新配色新服务华为FreeBudsPro墨韵白亮相京东年货节随着时间的推移,几乎是所有人最喜欢的一个节日春节,就即将到来了,还有那么几天的时间,我们就该准备年三十的团圆饭。在这之前,不知道大家有没有备齐年货,而在年货列表里,总有一些必备单品细数购买iPhone后,那些不能错过的品质周边好物前言自从入坑苹果之后,这些年也用了不少iPhone周边好物和配件,这里就一篇文抛砖引玉我用过那些iPhone周边好物配件,值得推荐的!它们都是在我使用了一段时间后感觉都挺不错的,毕