首页 > 编程知识 正文

美团商家,吐槽大会 程序员

时间:2023-05-06 10:12:26 阅读:41304 作者:4112

前言春天到了。 我在家玩了半年,差不多该出去散散心了。 顺便得到几个报价练习一下练习手。 否则,我不能给伙伴们出面试问题。

认识他才不怕百战,我先在网上搜索了一下最近的运输职位,发现差不多的工资在25-50K之间。 于是在boss上更新了简历,设置了简历开发,回收了快递。

刚在电脑前做的,看到老板有人想要简历,前面有朋友说:“你不在江湖,江湖还是你的传说。

呃。 为难啊,烦恼啊,那走吧,为了伙伴们的正题,我要舍命陪伴君子。

找到了半年没动的面试服,打印了三张纸简历,拿着一只红牛直奔面试现场。

到达有点早,好的下午两点左右,我1点到达。 我找不到喝咖啡补充能量的地方。 过了一会儿,我用力跑了。

咚咚咚,离面试还有15分钟,我偷偷来到高兴小组现场面试的办公室,丢了。 这就是面试官吗? 不是吧?

头发量很感人,我来了马上拿帽子,这个形状是传说中的海外特聘CTO吗?

Hello,I’mki,your interviewer.youcancallmea.k,Look at my hairstyle,youshouldbeabletoguessmyidentity.id on’thavetavetos

我弄丢了,这个TM是人的话吗?

于是我用英语说:“sure,can you speak chinese?

kkdls笑着说。 当然,让我们开始吧:

你们服务器日常巡逻的主要工作是什么? 额,你真的是认真的吗? 你这个问题不是哪个差劲的系统承运人给你准备的呢? 我不想回答,但没办法。 好在脑子里还留有一点印象。

服务器物理硬件巡检操作系统磁盘、内存、cpu、硬盘读写情况服务器系统日志运行和服务器上的APP应用程序是否可用在APP应用程序系统日志中检查数据库运行情况,运行日志可以说是在线流程吗? 这个,跳得也太快了吧。

是的,面试官,我们的在线流程比较简单,承运人收到产品经理的在线工作单(通常是邮件),邮件中包含要在线的项目的地址和版本号。

然后,我们按照规定的在线脚本执行在线,完成后,承运人会向相应的开发或产品发送邮件,宣布在线完成。

他们会回复是否成功上线。 如果半个小时都没有回复的话,我会回滚的。

“啊,你用过jenkins吗? ”

来了。 积分来了。 这我还遇到过。 终于有了假装b的机会。

根据面试官的不同,这个问题我能做!

开发代码并将其上传到版本库中。 版本库在我们使用的gitlab,jenkins上进行拉式编译,打包后传递到镜像仓库(harbor ),然后在harbor上进行测试。 测试完成后,docker将从镜像仓库中提取并部署到k8s。 部署完成后,调用K8s的API进行运行状况检查。 (healthcheack )

那个…还有,还有。 不要着急问下一个人。 再加点分数,让他延长面试时间吧。

jenkins分支代码更新后,可以将jenkins设置为自动构建。 在jenkins的“控制面板”中设置构建触发器,复制此处的URL,并将其放入gitlab上的webhook中使用。

单击“详细信息”按钮,输入要处罚的分支和副本token

然后我们把它放在gitlab上,在setting-integrations上

将上一步中在jenkins中复制的网站和token粘贴到此处

粘贴完成后,选择要根据自己的需要实现的触发事件

当然,在此过程中,还需要在jenkins上安装插件。 例如:

git parametergitlabgitlab hook按照上述步骤向gitlab发布了代码,jenkins去接收它。

jenkins通过创建的代码地址url将代码提取、编译、打包并发布到jenkins的安装位置

面试官:掉了。 这个商品我还知道很多。 接下来我要试验他的原理。 嗯,你的回答很全面。 那么你能告诉我jenkins的工作原理吗? **

好的,面试官,我给你在这里画画:

虽然以SVN为例,但也可以作为仓库代码变更为gitlab等

当开发人员将代码发送到gitlabCI系统时,将为每个项目创建单独的工作区。 当预设或请求新的构建时,在相应的工作区CI系统中存储代码仓库源代码时,将在相应的工作区中执行构建过程。 build 该组件基于预设脚本进行bulid,可以进行许多操作,如编译、测试和生成测试报告。 生成完成后,CI系统将执行新生成中定义的一系列测试,并在完成后触发通知相应的方。 成功构建后,此组件将打包并迁移到部署位置,或另存为软件仓库中的新版本。 CI根据要求的发型执行操作,例如立即生成、生成报告和查找生成的组件。 elk你们用过吗,能谈谈你的理解吗? 使用过的面试官

ELK由三部分组成:

收集数据

,分析,过滤日志: logstash数据的存储,分析,搜集: elasticsearch数据的展示:提供web界面,kibana

这个图是一个数据分析的架构图,涉及到kafka做为boker使用

简单的说:位于各个节点上的Logstash Agent先将数据/日志传递给Kafka(或者Redis),并将队列中消息或数据间接传递给Logstash,Logstash过滤、分析后将数据传递给Elasticsearch存储。最后由Kibana将日志和数据呈现给用户。

logstash工作原理你能说一下吗?

好的,好的,好的,别急面试官,听过慢慢吹,额慢慢给你说:

Logstash事件处理有三个阶段:inputs → filters → outputs,接收,处理,转发日志

input:输入数据到logstash
在logstash里有三个部分,一个是shipper,用来收集日志数据和监控日志数据的变化,及时将日志最新的内容收集起来。
另一个是borker: 相当于日志的hub,用来暂时存储shipper收集起来的日志信息。
indexer: 从borker中读取文本,经过加工,过滤,输出到指定的介质。

我们logstash端都是部署在被采集端,当然后期我们会用filebeat来代替, 安装好之后,logstash的三个组件,shipper负责检测日志变化并收集,然后发送给boker,进行存储,然后传送给indexer

在indexer这个地方进行数据清洗,分析和过滤,然后作为kafka的生产者传送给kafka,这个传送过程呢,是这样的。
首先producer先从zookeeper的brokers的state节点找到该partinon的leader,然后

producer将消息发送给leaderleader将消息写入本地logfollowers 从leader pull消息,写入本地log后给leader发送ackleader 收到所有的ISR中replica的ASK之后,增加HW(就是完成的offset,)并向porducer发送ack

消费者就是elasticsearch,去拉取tiopic的消息。

kafka同步到es的方式有四种:
1) logstash_input_kafka插件,但是这个不太好用
2) spark stream 同步,太庞大
3) kafka connector同步
4) 自写程序去读取解析写入

kafka connet 可以将完整的数据库注入到kafak topic中

KafkaConnect有两个核心概念:Source和Sink。 Source负责导入数据到Kafka,Sink负责从Kafka导出数据,它们都被称为Connector
kafkaConnect通过Jest实现Kafka对接Elasticsearch。

如果用logstash去将Kafka中的数据写入到ElasticSearch
input需要logstash-input-kafka插件,该插件logstash默认自带。

面试官: 好的,你不仅把我问的都回答了,我不知道的你也说了,这样你还有什么想问我的吗?

嗯,有的面试官,咱们招聘的这个岗位是AB复制还是新增,未来的这个岗位的规划是怎样的?

面试官:巴拉巴拉小魔仙巴拉巴拉

好的,我大体了解了,也对这个岗位比较感兴趣,期待能 有机会共事,感谢。那我先回去了,有消息第一时间通知我哈。

面试官: 我送送你

面试官给我送到了地铁刷卡口,看着我刷卡进站,他才离去。

害,我只能在面试官走后又刷卡出来,因为下一家面试就在隔壁楼上

无奈。

后记

本文略去了一些寒暄的过程,以及一些无意义的问题,诸如你老家是哪的,未来打算回老家发展吗,家人都在北京吗等等。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。