前语

好家伙,我直接好家伙,面试官直接问我明日能不能来上班。工作的经过是安酱在面试广州某一大型(真的挺大的)政务相关公司,在跟面试官简略的聊了一些事务场景和功用结束之后(可能是真的缺人,也可能是安酱太优秀,直接吊打面试官),就问我明日能不能来上班。

当然了上面的是二面,首要调查的是安酱对整个项目的了解才干和关于处理某个结束rocketmq确保音讯不丢掉难点才rocketmq和rabbitmq的差异能。毫无疑问,这两个仍是有点自傲的。

究竟,安酱在二面快结束时仍是婉拒了。好哥哥们要说了,你是不是傻,这么快就拒绝了,是钱没数据库原理给够吗(是的,没给够)。 我当然没那么浅陋,这点redis耐久化钱就想让面试毛遂自荐3分钟通用我来上班,再见。哈哈哈哈,这都是我臆想的。首要是由于这个公司的mysql增修改查句子项目是政务项目,好哥哥们懂了吧。

最恐惧的的不是这个,在一面的时分面试官问我有什么想问他的,我弱弱的问了一句: 您那儿的技能系统是怎样样的?好哥哥们猜猜面试官是怎样说的。直接给我来了一句老系统的话现已运转快rocketmq确保音讯不丢掉十年了,技能的话你能想到有多老那便是多老。细思恐极呀,好哥哥们。

好家伙,某不知名大厂直接问我明日能不能来上班

下面的问题首要是一面问的,总的来说没有问一些太难的问题,也没有太多原理性的东西,安酱挑了一些比较有代表性的数据库系统问题,然后答案的话有一些是我的原答复,有一些是结合了一些材料整理出来的。

MQ 怎样确保redis面试题音讯的幂等性消费

这个问题的话是由于安酱简历上写了知晓(了解)各redis缓存MQ引出来的一个问题。那要答复这个问题先要了解什数据库设计么是幂等性

幂等redis耐久化指的是屡次操作,结果是一同的。也便是说用户关于同一操作数据库系统概论主张的一次央求或许屡次央求的结果是一同的,不会由于屡次点mysql数据库命令大全击而产生了副作用。那在MQ这一块的话,由于网络会发生颤抖面试问题MQ消费端和出产端都可能会呈现rocketmq次序消费超时,这样MQ就会呈现重复发送和重复消费的状况。

那处理幂等性消费的要害就在于要处理音讯重复消费的问题,那安酱是怎样说的呢?不会!!!

咳咳咳,回归redis集群三种方法正题。首要出产端需求在音讯中添加一个仅有标识的字段。顾客这儿能够分两种状况,第一种便是针关于事务或许数据上没有严格要求一同性的状况下,运用Redis来处理。也便是说在音讯消费时先读Redis判别是否音讯过,消费过则不处理,反之则消费,消费成功后往Redis添加一个符号。这种方法的话有概率会呈现音讯消费过了,可是Redis符号mysql增修改查句子没有数据库是什么加上的状况。redis筛选策略

第二种的话便是运用Mysql获取其他数据库的事务。在消费音讯时,先往音讯消费记载插入一条记载(这个表乃至能够就一个字段,便是上面说到的仅有标识(主键)字段)MySQL,然数据库系统的中心是MySQL在去做对应的事务逻辑操作。这儿需求mysql怎样读留神点第一rocketmq布置便是需求在方法上添加事务。第二的话需求捕捉DuplicateKeyException,由于正常来说顾客都是要mysql增修改查句子打开ACK机制的,假定不捕捉这个反常那这个音讯是不会ACK的。这种方mysql暗码忘记了怎样办式的会就功用上来讲是没有第一种好的。

好哥哥们能够依据自己事务的实践状况来讲,最好的话把这两种方法都说一下。

MQ 在大数据量的redis缓存状况下怎样处理

原场景是这样的。面试官问完RabbitMQ 怎样确保音讯的幂等性消费后,说假定有百rocketmq原理万级的并发量你会怎样处理。

emmmmm,实话说,我现在还不知道面试官为什么会这么问,他究竟是出于什么考虑呢?

好家伙,某不知名大厂直接问我明日能不能来上班

没想到的是,我竟然硬答了。首要的话Rabbirocketmq确保音讯不丢掉tMQRoredis面试题cketMQ单机的QPS大约是 10 万左右,可是由于咱们的消费音讯的事务逻辑肯定会涉及到数据库数据的批改,正常音讯消费都是同步的,这就会存在在高并发量的情RocketMQ况下呈现音讯堆积的状况。

所以问题点便是顾客的速度与出产者发送音讯的速度是不一同的。这个时分首要需求定位消费慢的rocketmq源码原因,正常BUG打扫后,RabbitMQ是能够支rocketmq面试题持并发消费的。比方一开始是一条一条消费,能够优化成一次性消费 10 条,这儿需求留神的一点是rocketmq教程必定要把ACK机制开起来,不然是会丢音讯的。别的一块便是上面的幂等性消费也要处理,由于这种状况肯定会呈现音讯重复消费的。

假定说顾客的速度仍是不行,那咱们能够横向扩展。比方多加一些顾客实例,这儿也有一点需求留神便是由于数据库是同一台面试毛遂自荐,所以当消费过多的时分数据库是不必定能撑住的。别忘了运用MQrocketmq次序消费的初衷,异步、MySQL解耦、削峰。

假定说在十分急迫的状况下,音讯一向堆积,快爆了怎样整。emmmm,快别问了好吗,我扛不住了。

假定在急迫状况下,咱们能够做一个暂时的方案,先弄多几个顾客,这几个顾客没有任何音讯处理逻辑,便是redis耐久化消费音讯,然后入库。入库结束后在跑守时使命或许其他的方法把音讯处理了。

Redis 功用吞吐量瓶颈在哪里

这个问题安酱是简略的答复了一下,首要两点。

首要的话由于Redis是依据内存的,所以机器内存大小也选择了存放数据量的多少Redis

可是的可是,这儿必定要说明一个点那便是实践上 Redis 有一种集群形式在某种程度上处理了这个问题。那就Cluster 集群形mysql安装配置教程式,条件是好哥哥们知道这个mysql安装配置教程东西。有的好哥哥会说了,这东西我不会呀,没听过也没有玩过。不要紧,看我这篇你竟然还不知道 hash slot唐塞个面试那不是手到擒来吗

第二个瓶颈的话那便是网络带宽咯,这个没什么好说的。

Mysqlrocketmq面试题redis数据结构查询怎样优化

这个的话真的是仁者见仁智者见智了,看好哥哥们怎样吹数据库系统,往自己了解的方向去吹就能够了。安酱这儿就大约列一些点给好哥哥们参阅一下。

  1. 面试毛遂自荐要看SQL 的长度、相关表数量。假定一条SQL写的跟贪吃蛇一rocketmq源码样,那么就要考虑SQL的拆分了。

  2. 检查表索引规划是否合理,这个话要redis数据结构依据实践的事务场景来说,或许一rocketmq集群再查询的条件。当然咯,像状况类型这种只需 0 或许 1 的这种字段就不要加了,加了也没啥意义。

  3. 检查SQL是否查询了一些事务场景中不需求的字段,比方说SELECT * FROM XXX。这儿需求说明一下问什么不能这么写,把索引掩盖和回表大约说出来就差不多了。安酱这儿就不弄得那么深了,好哥哥们自行百度一下。

  4. 假定 1 和 2 都是没问题的redis集群,那就运用explain要害字。这儿有一个坑点,便是面试官听到这个要害数据库系统的中心是字的时分,会问这么一个问题。运用explain要害字你会重视那几个方针(实践上便是explain要害字的一些字段),这个好哥哥们最好能记住几个。

  5. 经过explain 正常都能确认问题呈现在哪里面试技巧和注意事项,正常都是运用了比redis筛选策略如说ORLIKE %xx%条件字段函数操作 等等一些原因导致了索引失效。

安酱一般都是讲这几个,假定面试官在细问的话基本就入到了咱们的套里边了Redis。由于上面的这几个都是咱们比较了解的,比方说第三个肯定是会细问的,好哥哥们自行研究一下问题就不大。嘻嘻嘻嘻

Feign 怎样处理跨域问题

emmmmm,到现在我仍是不明面试毛遂自荐简单大方白这是个啥问题,安酱是真的没遇到过。假面试毛遂自荐简单大方设是央求头的rocketmq次序消费传递那就简略,经过结束Requerocketmq教程stInterceptor这个拦截器就能够了。可是面试官说不是这个,我搜了一圈也是没有找到答案。有好哥哥知道的吗,谈论区教一下安酱,么么哒!!!
好家伙,某不知名大厂直接问我明日能不能来上班

总结

以上便是安酱在面试的时分一些常见的rocketmq确保音讯不丢掉问题或许答复的mysql面试题不是那么好的问题(没答复上的),还有一些问题忘记了。

当然,安酱上面的答案仅仅单纯的为了唐塞面试,好哥哥们在平常仍是多多研究一下,最好有一个东西是自己不mysql数据库命令大全说知晓,可是最起码很rocketmq布置了解,究竟见识的厚度mysql数据库选择了人生的高度。

扯远了,希望好哥哥们看了之后能成为面试一霸,把面试官按在地上冲突!!!

好哥哥们点赞重视是我更新动力的源泉,究竟日常求点面试毛遂自荐3分钟通用赞、求重视