ElasticSearch四:ES分布式怎么进行部署
es生产集群的部署架构是什么?每个索引的数据量大概有多少?每个索引大概有多少个分片?
这个问题,包括后面的redis什么的,谈到es、redis、mysql分库分表等等技术,面试必问!就是你生产环境咋部署的?说白了,这个问题没啥技术含量,就是看你有没有在真正的生产环境里干过这事儿!
有些同学可能是没在生产环境中干过的,没实际去拿线上机器部署过es集群,也没实际玩儿过,也没往es集群里面导入过几千万甚至是几亿的数据量,可能你就不太清楚这里面的一些生产项目中的细节
如果你是自己就玩儿过demo,没碰过真实的es集群,那你可能此时会懵,但是别懵。。。你一定要云淡风轻的回答出来这个问题,表示你确实干过这事儿
剖析
其实这个问题没啥,如果你确实干过es,那你肯定了解你们生产es集群的实际情况,部署了几台机器?有多少个索引?每个索引有多大数据量?每个索引给了多少个分片?你肯定知道!
但是如果你确实没干过,也别虚,我给你说一个基本的版本,你到时候就简单说一下就好了
(1)es生产集群我们部署了5台机器,每台机器是6核64G的,集群总内存是320G
(2)我们es集群的日增量数据大概是2000万条,每天日增量数据大概是500MB,每月增量数据大概是6亿,15G。目前系统已 经运行了几个月,现在es集群里数据总量大概是100G左右。
(3)目前线上有5个索引(这个结合你们自己业务来,看看自己有哪些数据可以放es的),每个索引的数据量大概是20G,所 以这个数据量之内,我们每个索引分配的是8个shard,比默认的5个shard多了3个shard。
补充:
消息队列、分布式搜索引擎
其实如果我是面试官的话,我如果感觉你都把刚才那些问题都答出来了,我可能会继续刨根问底,深挖,问你,直到把你给问倒
消息队列,kafka,复制的底层原理,leader选举的算法,增加partition以后的rebalance算法,扣很多很多的细节,如何优化kafka写入的吞吐量
其实这块如果挖深了可以问的极其深,如果是我来深挖,可能会挖到es底层的相关度评分算法(TF/IDF算法)、deep paging、上千万数据批处理、跨机房多集群同步、搜索效果优化,等等吧,很多的实际生产问题。
3种,一种比较水的面试官,他可能还掌握不到我们这个面试突击课程的水准,他其实连我们这个课程里的这些问题都没问到位;比较nice的面试官,问的差不多了,对你还挺欣赏的,基本上就让你过了;比较hard的面试官,干倒,虐你,故意要让你出丑,我不是这种,我只不过严格,我希望招到的是一个最好的这么一个人,我之所以会深挖深挖深挖,我想看看你的极限到底在哪里,你对这么技术掌握的最深的深度在哪儿?如果你进来成为为的下属,我就可以对你的能力各方面都非常的了解
但是。。。既然我们课程定位是2周快速突击,帮助的是那些原本可能连一些基础问题都没法答出来的同学去面试,而且确实现在很多公司面试官问到这块可能也就是问一些基础的问题,那么。。。我们就不忘初心吧
我唯一能说的,就是只要有人跟你聊到es,你可以自己合盘脱出自己对分布式搜索引擎基本原理的一个理解,以及你们在项目中一般是如何优化的,包括你们生产环境是怎么部署的,数据量多大。让别人感觉你这块至少还是正经了解和干过的。