编程面试题
-
Elasticsearch对于大数据量(上亿量级)的聚合如何实现?
Elasticsearch 提供的首个近似聚合是cardinality 度量。它提供一个字段的基数,即该字段的distinct或者unique值的数目。它是基于HLL算法的。HLL...
-
非抢占式调度与抢占式调度的区别是什么?
非抢占式: 分派程序一旦把处理机分配给某进程后便让它一直运行下去,直到进程完成或发生进程调度进程调度某事件而阻塞时,才把处理机分配给另一个进程 抢占式: 操作系统将正在运行的进程强...
-
说下你对进程同步的理解
进程同步的主要任务:是对多个相关进程在执行次序上进行协调,以使并发执行的诸进程之间能有效地共享资源和相互合作,从而使程序的执行具有可再现性 同步机制遵循的原则: 空闲让进; 忙则等...
-
为什么进程上下文切换比线程上下文切换代价高?
进程切换分两步: 切换页目录以使用新的地址空间 切换内核栈和硬件上下文 对于linux来说,线程和进程的最大区别就在于地址空间,对于线程切换,第1步是不需要做的,第2步是进程和线程...
-
详细描述一下Elasticsearch搜索的过程
搜索被执行成一个两阶段过程,我们称之为 Query Then Fetch; 在初始查询阶段时,查询会广播到索引中每一个分片拷贝(主分片或者副本分片)。 每个分片在本地执行搜索并构建...
-
详细描述一下Elasticsearch更新和删除文档的过程
删除和更新也都是写操作,但是Elasticsearch中的文档是不可变的,因此不能被删除或者改动以展示其变更; 磁盘上的每个段都有一个相应的.del文件。当删除请求发送后,文档并没...
-
详细描述一下Elasticsearch索引文档的过程
协调节点默认使用文档ID参与计算(也支持通过routing),以便为路由提供合适的分片。 shard = hash(document_id) % (num_of_primary_s...
-
Elasticsearch中的节点(比如共20个),其中的10个选了一个master,另外10 个选了另一个master,怎么办?
当集群master候选数量不小于3个时,可以通过设置最少投票通过数量 (discovery.zen.minimum_master_nodes)超过所有候选节点一半以上来解决脑裂问题...
-
Elasticsearch是如何实现Master选举的?
Elasticsearch的选举是ZenDiscovery模块负责的,主要包含Ping(节点之间通过这个RPC来发现彼此)和Unicast(单播模块包含一个主机列表以控制哪些节点需...
-
为什么要使用Elasticsearch?
因为在我们的数据,将来会非常多,所以采用以往的模糊查询,模糊查询前置配置,会放弃索引,导致商品查询是全表扫面,在百万级别的数据库中,效率非常低下,而我们使用ES做一个全文索引,我们...
-
说说 Dubbo 服务暴露的过程
Dubbo 会在 Spring 实例化完 bean 之后,在刷新容器最后一步发布 ContextRefreshEvent 事件的时候,通知实现了 ApplicationListen...
-
Dubbo如何优雅停机?
Dubbo 是通过 JDK 的 ShutdownHook 来完成优雅停机的,所以如果使用 kill -9 PID 等强制关闭指令,是不会执行优雅停机的,只有通过 kill PID ...
-
Dubbo支持服务降级吗?
Dubbo 2.2.0 以上版本支持。 精品推荐 GPT-4 Plus账号大大大降价了!免费AI写作工具!
-
Dubbo支持分布式事务吗?
目前暂时不支持,后续可能采用基于 JTA/XA 规范实现。 精品推荐 GPT-4 Plus账号大大大降价了!免费AI写作工具!