记录一下实习的第一次线下面试的答辩经历,关于seata|sentinel,gateway与栈

面的一家小公司,他们准备做单体架构升级到微服务,所以问了我一些微服务相关的东西。回答的依托答辩,今天回想起来记录一下我造出来的笑话,正常的就不写在这里了。

首先我简历上大部分写的是熟悉,只有微服务写的是了解,还问了不少微服务的

1.谈谈seata:

这里我和sentinel记混了,妈的。我还说seata用于限流,熔断,隔离。我还记得这玩意有四个功能,另一个实现想不起来了

补正:

seata是用于分布式事务的,用SQL持久化存储,在nacos上进行添加共享配置。分为XA模式和TA模式

XA模式是:ACID,实现简单;但是开销大

1.RM资源管理器注册分支事务,然后执行分支的SQL,但是不提交,向TC事务协调者报告

2.TC检测各分支的执行状态,有错误就回滚,没有才统一提交,然后通知RM进行提交或回滚

AT模式:解决了XA模式的问题,但是会有短暂不一致问题

1.RM注册分支事务,记录undo-log快照,然后提交业务SQL,上报

2.如果需要回滚就根据快照恢复,不需要就直接删除undo-log即可

2.说说gateway的功能:

这里我说的是设置了一个统一接口,能够所有人都请求一个地址。感觉就像线程和进程的关系,(当时是后一天就要考操作系统,在刷操作系统的知识点)。至少这里把最主要的说出来了没说歪

补正:

gateway的主要功能为:

1.统一路由 2.支持熔断限流操作 3.路由策略灵活,而且支持动态配置

后续想起来再补充

3.我看你写了数据结构,我就挑一个考你吧,讲讲栈

这里我正好昨天给同学看了一个四则运算的题目,对栈还有点印象,脱口而出:先进先出。后面经过短暂的反应之后我发现不对,我又说啊不对,那个是队列,栈是先进后出。面试官和我尴尬一笑。我胡言乱语了一会,他又问:嗯。。这样吧,你讲讲你在实际应用中怎么用栈。我如实回答:实际应用中没有用过栈,这个我只是在刷leetcode的时候用了,就刷那些算法用

补正:

实际应用中栈的应用场景:数据的事务处理,回滚时会在最近顺序挨个回滚,保证了事务的原子性和一致性。递归操作时会使用栈。常见的undo操作中也一般都是用栈来实现的

4.问的项目,我看你也用MQ,你这个XX项目是怎么使用的MQ。

当时脑子犯浑,加上一个月没看自己写的简历,忘了自己写的什么吊玩意。

我说我只用了MQ做定时任务,用他那个死信队列。

面试官愣了一下,又问我,你这个项目里只用了定时任务对吗?我当时想都没想:是的,只用了这个。

后来面完了我才知道,我简历上写的使用rabbitMQ实现了elasticsearch的延时双写,保证了数据的一致性。当时做那个项目想是比赛用,也不太需要这些功能,其实我的实际项目还没用MQ,最近两天又补上的延时双写功能

posted @   天启A  阅读(31)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示