随笔分类 -  面试题

摘要:1、拼写纠错是基于编辑距离来实现;编辑距离是一种标准的方法,它用来表示经过插入、删除和替换操作从一个字符串转换到另外一个字符串的最小操作步数;2、编辑距离的计算过程:比如要计算 batyu 和 beauty 的编辑距离,先创建一个7×8 的表(batyu 长度为 5,coffee 长度为 6,各加  阅读全文
posted @ 2022-07-26 18:58 开源遗迹 阅读(404) 评论(0) 推荐(0) 编辑
摘要:1、删除和更新也都是写操作,但是 Elasticsearch 中的文档是不可变的,因此不能被删除或者改动以展示其变更;2、磁盘上的每个段都有一个相应的.del 文件。当删除请求发送后,文档并没有真的被删除,而是在.del 文件中被标记为删除。该文档依然能匹配查询,但是会在结果中被过滤掉。当段合并时, 阅读全文
posted @ 2022-07-26 18:53 开源遗迹 阅读(226) 评论(0) 推荐(0) 编辑
摘要:1、当集群 master 候选数量不小于 3 个时,可以通过设置最少投票通过数量(discovery.zen.minimum_master_nodes)超过所有候选节点一半以上来解决脑裂问题;2、当候选数量为两个时,只能修改为唯一的一个 master 候选,其他作为 data节点,避免脑裂问题 阅读全文
posted @ 2022-07-26 18:21 开源遗迹 阅读(54) 评论(0) 推荐(0) 编辑
摘要:1、关闭缓存 swap;2、堆内存设置为:Min(节点内存/2, 32GB);3、设置最大文件句柄数;4、线程池+队列大小根据业务需要做调整;5、磁盘存储 raid 方式——存储有条件使用 RAID10,增加单节点性能以及避免单节点存储故障。 1、64 GB 内存的机器是非常理想的,但是 32 GB 阅读全文
posted @ 2022-07-26 18:07 开源遗迹 阅读(202) 评论(0) 推荐(0) 编辑
摘要:搜索拆解为“query then fetch” 两个阶段。query 阶段的目的:定位到位置,但不取。步骤拆解如下:1、假设一个索引数据有 5 主+1 副本 共 10 分片,一次请求会命中(主或者副本分片中)的一个。2、每个分片在本地进行查询,结果返回到本地有序的优先队列中。3、第 2步骤的结果发送 阅读全文
posted @ 2022-07-26 18:04 开源遗迹 阅读(95) 评论(0) 推荐(0) 编辑
摘要:这里的索引文档应该理解为文档写入 ES,创建索引的过程。文档写入包含:单文档写入和批量 bulk 写入,这里只解释一下:单文档写入流程。 1、当分片所在的节点接收到来自协调节点的请求后,会将请求写入到 Memory Buffer,然后定时(默认是每隔 1 秒)写入到 Filesystem Cache 阅读全文
posted @ 2022-07-26 17:13 开源遗迹 阅读(96) 评论(0) 推荐(0) 编辑
摘要:前置前提 1、只有候选主节点(master:true)的节点才能成为主节点。2、最小主节点数(min_master_nodes)的目的是防止脑裂。 核对了一下代码,核心入口为 findMaster,选择主节点成功返回对应 Master,否则返回 null。选举流程大致描述如下: 第一步:确认候选主节 阅读全文
posted @ 2022-07-26 17:01 开源遗迹 阅读(252) 评论(0) 推荐(0) 编辑
摘要:动态索引层面基于模板+时间+rollover api 滚动创建索引,举例:设计阶段定义:blog 索引的模板格式为:blog_index_时间戳的形式,每天递增数据。这样做的好处:不至于数据量激增导致单个索引数据量非常大,接近于上线 2 的32 次幂-1,索引存储达到了 TB+甚至更大。一旦单个索引 阅读全文
posted @ 2022-07-26 16:56 开源遗迹 阅读(146) 评论(0) 推荐(0) 编辑
摘要:面试官:想了解应聘者之前公司接触的 ES 使用场景、规模,有没有做过比较大规模的索引设计、规划、调优。 ES 集群架构 13 个节点,索引根据通道不同共 20+索引,根据日期,每日递增 20+,索引:10 分片,每日递增 1 亿+数据,每个通道每天索引大小控制:150GB 之内。 仅索引层面调优手段 阅读全文
posted @ 2022-07-26 16:27 开源遗迹 阅读(520) 评论(0) 推荐(0) 编辑
摘要:17、zookeeper是如何保证事务的顺序一致性的? zookeeper采用了全局递增的事务id来标识,所有的proposal(提议)都在被提出来的时候就被加上了zxid,zxid实际上是一个64位的数字·,高32位是epoch(时期,纪元,世;新时代)用来标识leader周期,如果有新的 lea 阅读全文
posted @ 2022-07-25 19:45 开源遗迹 阅读(330) 评论(0) 推荐(0) 编辑
摘要:1、什么是ZooKeeper? ZooKeeper 是一个开放源码的分布式协调服务,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户。分布式应用程序可以基于 Zookeeper 实现诸如数据发布/订阅、负载均 阅读全文
posted @ 2022-07-24 18:22 开源遗迹 阅读(41) 评论(0) 推荐(0) 编辑
摘要:UGO(User/Group/Others)目前在 Linux/Unix 文件系统中使用,也是使用最广泛的权限控制方式。是一种粗粒度的文件系统权限控制模式。ACL(Access Control List)访问控制列表包括三个方面:权限模式(Scheme)1、IP:从 IP 地址粒度进行权限控制2、D 阅读全文
posted @ 2022-07-24 17:59 开源遗迹 阅读(187) 评论(0) 推荐(0) 编辑
摘要:1、什么是MyBaits? 1、Mybatis 是一个半 ORM(对象关系映射)框架,它内部封装了 JDBC,开发时只需要关注 SQL 语句本身,不需要花费精力去处理加载驱 动、创建连接、创建statement 等繁杂的过程。程序员直接编写原生态 sql,可以严格控制 sql 执行性能,灵活度高。 阅读全文
posted @ 2022-07-24 12:13 开源遗迹 阅读(37) 评论(0) 推荐(0) 编辑
摘要:1、为什么要用 Dubbo?随着服务化的进一步发展,服务越来越多,服务之间的调用和依赖关系也越来越复杂,诞生了面向服务的架构体系(SOA),也因此衍生出了一系列相应的技术,如对服务提供、服务调用、连接处理、通信协议、序列化方式、服务发现、服务路由、日志输出等行为进行封装的服务框架。就这样为分布式系统 阅读全文
posted @ 2022-07-23 18:34 开源遗迹 阅读(71) 评论(0) 推荐(0) 编辑
摘要:1、什么是Rabbitmq 采用AMQP高级消息队列协议的一种消息队列技术,最大的特点就是消费并不需要确保提供方的存在,实现了服务之间的高度解耦 2、为什么要使用 rabbitmq 1、在分布式系统下具备异步,削峰,负载均衡等一系列高级功能; 2、拥有持久化的机制,进程消息,队列中的信息也可以保存下 阅读全文
posted @ 2022-07-23 10:41 开源遗迹 阅读(558) 评论(0) 推荐(0) 编辑
摘要:系统可用性降低系统引入的外部依赖越多,越容易挂掉,本来你就是 A 系统调用 BCD 三个系统的接口就好了,人 ABCD 四个系统好好的,没啥问题,你偏加个 MQ 进来,万一MQ 挂了咋整?MQ 挂了,整套系统崩溃了,你不就完了么。系统复杂性提高硬生生加个 MQ 进来,你怎么保证消息没有重复消费?怎么 阅读全文
posted @ 2022-07-23 08:02 开源遗迹 阅读(30) 评论(0) 推荐(0) 编辑
摘要:1、什么是 Spring Cloud? Spring cloud 流应用程序启动器是基于 Spring Boot 的 Spring 集成应用程序,提供与外部系统的集成。Spring cloud Task,一个生命周期 短暂的微服务框架,用于快速构建执行有限数据处理的应用程序 2、使用SpringCl 阅读全文
posted @ 2022-07-22 12:41 开源遗迹 阅读(219) 评论(0) 推荐(0) 编辑
摘要:WebMvcConfigurerAdapter 实现 WebMvcConfigurer 接口,常用的可能需要重写的方法有下面几个:/** 解决跨域问题 /public void addCorsMappings(CorsRegistry registry) ;/ 添加拦截器 /void addInte 阅读全文
posted @ 2022-07-21 22:14 开源遗迹 阅读(105) 评论(0) 推荐(0) 编辑
摘要:55、创建一个Spring Boot Project的最简单的方法是什么? SpringBoot Initializr是启动springboot很好的工具。 就像上图中所展示的一样,我们需要做一下几步: 登录 Spring Initializr,按照以下方式进行选择: 选择 com.in28minu 阅读全文
posted @ 2022-07-21 12:55 开源遗迹 阅读(180) 评论(0) 推荐(0) 编辑
摘要:1、什么是 Spring Boot? 多年 来, 随着 新功 能的 增加 ,spring 变得 越来 越复 杂。 只需 访问https://spring.io/projects 页面 ,我们 就会 看到 可以 在我 们的 应 用 程序 中使 用的所有 Spring 项目 的不 同功 能。 如果 必须 阅读全文
posted @ 2022-07-20 17:34 开源遗迹 阅读(113) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示