当前位置: 首页 > news >正文

【5】阿里面试题整理

[1]. 介绍一下ZooKeeper

ZooKeeper是一个开源的分布式协调服务,核心功能是通过树形数据模型(ZNode)和Watch机制,解决分布式系统的一致性问题。

它使用ZAB协议保障数据一致性,典型场景包括分布式锁、配置管理和服务注册发现、集群管理等。

ZooKeeper通常以集群的方式部署,由多个ZooKeeper服务器组成。集群中有一个领导者服务器,负责处理客户端的写请求,并将数据同步到其他服务器;其他服务器是追随者,负责处理客户端的读请求。

[2]. ZAB协议

ZAB协议是一种基于Paxos算法的改进协议,专门为ZooKeeper这种分布式协调服务而设计,保证了在ZooKeeper集群中,数据变更能够以原子性和顺序性广播到所有节点,从而实现最终一致性。

ZAB协议主要有两种模式:消息广播模式崩溃恢复模式

在消息广播模式下,Leader接收到客户端的写请求后,会将这个请求封装成一个Proposal广播给所有Follower。Follower收到Proposal后,写入本地事务日志,并向Leader发送ACK确认。当Leader收到超过半数的Follower的ACK后,就认为这个Proposal已经提交,然后Leader会向所有Follower发送Commit命令。

在崩溃恢复模式下,集群会进行Leader选举,选出一个新的Leader,然后新的Leader会从事务日志中恢复数据,并确保所有节点的数据保持一致。

[3]. ZooKeeper的选举机制

ZooKeeper使用一种Leader选举机制来保证集群的高可用性。

当集群启动或Leader服务器发生故障时,就会触发选举。选举过程中,每个服务器都会将自己作为候选Leader进行投票,投票信息包括服务器ID和事务ID(zxid)。

服务器会将自己的投票广播给其他服务器,并接收其他服务器的投票。在接收到投票后,如果发现收到的投票信息中的zxid比自己的大,或者zxid相同但服务器ID比自己的大,则更新自己的投票信息。

最后,每个服务器统计收到的投票信息,如果某个服务器收到了超过半数服务器的投票,则该服务器成为新的Leader。选举过程中,zxid最大的服务器会被优先选为Leader,如果多个服务器的zxid相同,则服务器ID较大的服务器会被选为Leader。

[4]. Memcached的缓存机制

Memcached是一个高性能的分布式内存对象缓存系统,用于加速动态Web应用程序。

Memcached使用哈希表来存储键值对,并使用slab分配机制来管理内存。当Memcached的内存空间不足时,会使用LRU算法来淘汰最近最少使用的数据。

在分布式缓存方面,Memcached通常使用一致性哈希算法来实现数据的分片。

Memcached具有高性能、简单易用、可扩展性强等优点,但同时也存在无持久化机制和内存限制等缺点

[5]. 基本数据类型和包装类的区别

基本数据类型存储在栈中,效率高,占用内存少;包装类存储在堆中,需要更多的内存。

基本数据类型功能简单,只能进行基本运算;包装类提供了丰富的方法,方便操作。

基本数据类型主要用于数值运算等场景;包装类通常用于需要对象的地方,比如集合框架,或者需要使用包装类提供的方法,以及进行类型转换等。

相关文章:

【5】阿里面试题整理

[1]. 介绍一下ZooKeeper ZooKeeper是一个开源的分布式协调服务,核心功能是通过树形数据模型(ZNode)和Watch机制,解决分布式系统的一致性问题。 它使用ZAB协议保障数据一致性,典型场景包括分布式锁、配置管理和服务注…...

计算机毕业设计hadoop+spark+hive物流预测系统 物流大数据分析平台 物流信息爬虫 物流大数据 机器学习 深度学习

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...

Wpf美化按钮,输入框,下拉框,dataGrid

Wpf美化按钮&#xff0c;输入框&#xff0c;下拉框&#xff0c;dataGrid 引用代码后 引用资源 <ControlTemplate x:Key"CustomProgressBarTemplate" TargetType"ProgressBar"><Grid><Border x:Name"PART_Track" CornerRadius&q…...

搜索插入位置:二分查找的巧妙应用

问题描述 给定一个已排序的整数数组 nums 和一个目标值 target&#xff0c;要求在数组中找到目标值并返回其索引。如果目标值不存在于数组中&#xff0c;则返回它按顺序插入的位置。必须使用时间复杂度为 O(log n) 的算法。 示例&#xff1a; 示例1&#xff1a; 输入: nums …...

Cocos2d-x 游戏开发-打包apk被默认自带了很多不必要的权限导致apk被报毒,如何在Cocos 2d-x中强制去掉不必要的权限-优雅草卓伊凡

Cocos2d-x 游戏开发-打包apk被默认自带了很多不必要的权限导致apk被报毒&#xff0c;如何在Cocos 2d-x中强制去掉不必要的权限-优雅草卓伊凡 实战操作 去除权限 要在 Cocos2d-x 开发的游戏中去掉 APK 自带权限&#xff0c;可以按照以下步骤操作&#xff1a; 编辑 AndroidMa…...

自动化xpath定位元素(附几款浏览器xpath插件)

在 Web 自动化测试、数据采集、前端调试中&#xff0c;XPath 仍然是不可或缺的技能。虽然 CSS 选择器越来越强大&#xff0c;但面对复杂 DOM 结构时&#xff0c;XPath 仍然更具灵活性。因此&#xff0c;掌握 XPath&#xff0c;不仅能提高自动化测试的稳定性&#xff0c;还能在爬…...

String类(6)

大家好&#xff0c;今天我们继续来学习一下String类的查找方法&#xff0c;主要是反向查找的一些方法。 ⭐️从后往前找一样的道理&#xff0c;如果找到了就返回对应字符的下标. 如果后面有对应的字符&#xff0c;则会返回第一个遇到的字符下标. ⭐️注意一下传入字符串的找法…...

动态表格html

题目&#xff1a; 要求&#xff1a; 1.表格由专业班级学号1-10号同学的信息组成&#xff0c;包括&#xff1a;学号、姓 名、性别、二级学院、班级、专业、辅导员&#xff1b; 2.表格的奇数行字体为黑色&#xff0c;底色为白色&#xff1b;偶数行字体为白色&#xff0c;底 色为黑…...

ZU47DR 100G光纤 高性能板卡

简介 2347DR是一款最大可提供8路ADC接收和8路DAC发射通道的高性能板卡。板卡选用高性价比的Xilinx的Zynq UltraScale RFSoC系列中XCZU47DR-FFVE1156作为处理芯片&#xff08;管脚可以兼容XCZU48DR-FFVE1156&#xff0c;主要差别在有无FEC&#xff08;信道纠错编解码&#xff0…...

mysql8.0使用pxc实现高可用

环境准备 准备三台虚拟机&#xff0c;其对应的主机名和IP地址为 pxc-1192.168.190.129pxc-2192.168.190.133pxc-3192.168.190.134 解析,都要做解析 测试 下载pxc的安装包&#xff0c; 官网&#xff1a;https://www.percona.com/downloads 选择8.0的版本并下载&#xff0c;…...

Kotlin 使用 Chrome 无头浏览器

1. 概念 无头浏览器在类似于流行网络浏览器的环境中提供对网页的自动控制&#xff0c;但是通过命令行界面或使用网络通信来执行。 它们对于测试网页特别有用&#xff0c;因为它们能够像浏览器一样呈现和理解超文本标记语言&#xff0c;包括页面布局、颜色、字体选择以及JavaSc…...

Arbess基础教程-创建流水线

Arbess(谐音阿尔卑斯) 是一款开源免费的 CI/CD 工具&#xff0c;本文将介绍如何使用 Arbess 配置你的第一条流水线&#xff0c;以快速入门上手。 1. 创建流水线 根据不同需求来创建不同的流水线。 1.1 配置基本信息 配置流水线的基本信息&#xff0c;如分组&#xff0c;环境&…...

vscode安装ESP-IDF

引言 ESP-IDF&#xff08;Espressif IoT Development Framework&#xff09;是乐鑫官方为其 ESP32、ESP32-S 系列等芯片提供的物联网开发框架。结合 Visual Studio Code&#xff08;VSCode&#xff09;这一强大的开源代码编辑器&#xff0c;能极大提升开发效率。本教程将详细介…...

第31周:文献阅读

目录 摘要 Abstract 文献阅读 问题引入 研究背景 研究动机 创新点 动态预训练方法&#xff08;DynPT&#xff09; 深度循环神经网络&#xff08;DRNN&#xff09; 传感器选择 方法论 时间序列的动态预训练 异构传感器数据的DRNN 基于稀疏度的传感器过滤 实验研…...

GenAI + 电商:从单张图片生成可动态模拟的3D服装

在当今数字化时代,电子商务和虚拟现实技术的结合正在改变人们的购物体验。特别是在服装行业,消费者越来越期待能够通过虚拟试衣来预览衣服的效果,而无需实际穿戴。Dress-1-to-3 技术框架正是为此而生,它利用生成式AI模型(GenAI)和物理模拟技术,将一张普通的穿衣照片转化…...

进程(1)

1.什么是进程 要回答这个问题首先我们要解答什么是程序的问题。什么是程序呢&#xff1f;程序本质是就是存放在磁盘上的文件。我们要运行程序&#xff0c;首先必须要将其加载到内存中&#xff0c;这样才能与cpu交互&#xff0c;这是冯诺依曼体系架构所决定的。 程序运行起来后…...

ChatGPT搜索免费开放:AI搜索引擎挑战谷歌霸主地位全面分析

引言 2025年2月6日&#xff0c;OpenAI宣布ChatGPT搜索功能向所有用户免费开放&#xff0c;且无需注册登录。这一重大举措在搜索引擎行业引发巨大反响&#xff0c;有观点认为"谷歌搜索时代即将结束"。本文将深入分析ChatGPT生成式AI搜索对谷歌搜索业务及全球搜索市场…...

hadoop之MapReduce:片和块

假如我现在500M这样的数据&#xff0c;如何存储&#xff1f; 500M 128M 128M 128M 116M 分为四个块进行存储。 计算的时候&#xff0c;是按照片儿计算的&#xff0c;而不是块儿。 块是物理概念&#xff0c;一个块就是128M ,妥妥的&#xff0c;毋庸置疑。 片是逻辑概念&…...

GitPuk快速安装配置教程(入门级)

GitPuk是一款国产开源免费的代码管理工具&#xff0c;工具简洁易用&#xff0c;开源免费&#xff0c;本文将讲解如何快速安装和配置GitPuk&#xff0c;以快速入门上手。 1、安装 支持 Windows、Mac、Linux、docker 等操作系统。 1.1 Linux安装&#xfeff; 以下以Centos7安装…...

在CT107D单片机综合训练平台上,8个数码管分别单独依次显示0~9的值,然后所有数码管一起同时显示0~F的值,如此往复。

题目&#xff1a;在CT107D单片机综合训练平台上&#xff0c;8个数码管分别单独依次显示0~9的值&#xff0c;然后所有数码管一起同时显示0~F的值&#xff0c;如此往复。 延时函数分析LED首先实现8个数码管单独依次显示0~9的数字所有数码管一起同时显示0~F的值&#xff0c;如此往…...

如何用智能工具提升暗黑破坏神3战斗效率:D3KeyHelper全功能指南

如何用智能工具提升暗黑破坏神3战斗效率&#xff1a;D3KeyHelper全功能指南 【免费下载链接】D3keyHelper D3KeyHelper是一个有图形界面&#xff0c;可自定义配置的暗黑3鼠标宏工具。 项目地址: https://gitcode.com/gh_mirrors/d3/D3keyHelper 暗黑破坏神3的战斗节奏快…...

LaTeX算法排版避坑指南:从Undefined control sequence到完美排版

LaTeX算法排版避坑指南&#xff1a;从Undefined control sequence到完美排版 第一次在LaTeX里插入算法伪代码时&#xff0c;那个刺眼的红色"Undefined control sequence"错误让我盯着屏幕发呆了半小时。作为科研工作者&#xff0c;我们总希望论文中的算法描述能和数学…...

罗技鼠标宏压枪脚本终极指南:3步实现绝地求生精准射击

罗技鼠标宏压枪脚本终极指南&#xff1a;3步实现绝地求生精准射击 【免费下载链接】logitech-pubg PUBG no recoil script for Logitech gaming mouse / 绝地求生 罗技 鼠标宏 项目地址: https://gitcode.com/gh_mirrors/lo/logitech-pubg 还在为绝地求生中枪口乱跳而烦…...

Vue 3.4 defineModel实战:5分钟教你封装一个带.trim和.number的智能输入框

Vue 3.4 defineModel实战&#xff1a;5分钟封装智能输入框组件 在表单交互开发中&#xff0c;输入框处理用户数据时经常需要基础格式处理——比如自动去除首尾空格、将字符串转为数字。传统方案需要在每个使用处手动调用.trim()或parseFloat()&#xff0c;既重复又容易遗漏。Vu…...

CGAL Point_set_processing 点集处理函数自查表

参考来源&#xff1a; CGAL 6.1.1 - Point Set Processing: Algorithms 一、尺度 / K 值估算 返回值函数名作用用法示例size_testimate_global_k_neighbor_scale估算全局最优 K 邻域estimate_global_k_neighbor_scale(points)FTestimate_global_range_scale估算全局最优搜索…...

SAP BTP新手避坑指南:从零开始创建Directory和Subaccount(附Region选择建议)

SAP BTP新手避坑指南&#xff1a;从零开始创建Directory和Subaccount&#xff08;附Region选择建议&#xff09; 第一次登录SAP BTP Cockpit时&#xff0c;面对Global Account、Directory、Subaccount的层级关系&#xff0c;很多新手会感到无从下手。这就像刚拿到一套乐高积木却…...

OpenClaw+nanobot镜像:个人社交媒体监控系统搭建

OpenClawnanobot镜像&#xff1a;个人社交媒体监控系统搭建 1. 为什么需要个人社交媒体监控系统 作为一个长期关注技术趋势的博主&#xff0c;我经常需要追踪社交媒体上的热点话题和关键词变化。过去我都是手动刷新各个平台&#xff0c;不仅效率低下&#xff0c;还容易错过关…...

Zemax优化别再乱点‘锤子’了!一个光学新手的真实踩坑与避坑指南

Zemax优化实战&#xff1a;从新手误区到高效操作的进阶指南 刚接触Zemax的光学设计师们&#xff0c;往往会被软件中那个神秘的"锤形优化"按钮所吸引——看似简单的点击就能自动改善设计&#xff0c;这种诱惑难以抗拒。但很快就会发现&#xff0c;盲目依赖这个功能可能…...

从1M到1T1M:忆阻器阵列结构演进史及其在AI芯片中的应用前景

从1M到1T1M&#xff1a;忆阻器阵列结构演进史及其在AI芯片中的应用前景 在半导体技术持续突破的今天&#xff0c;忆阻器阵列正以其独特的物理特性重新定义计算架构的边界。这种兼具存储与计算能力的纳米级器件&#xff0c;正在神经网络加速领域展现出颠覆性潜力。本文将带您穿越…...

终极Bash Infinity代码审查指南:确保Bash框架代码质量的完整检查清单

终极Bash Infinity代码审查指南&#xff1a;确保Bash框架代码质量的完整检查清单 【免费下载链接】bash-oo-framework Bash Infinity is a modern standard library / framework / boilerplate for Bash 项目地址: https://gitcode.com/gh_mirrors/ba/bash-oo-framework …...