ffaq
从0开始学大数据
关于 RAID 技术,以下哪种说法是不正确的?
A、RAID0 的性能最好
B、RAID0 的数据安全性最差
C、RAID0 是实践中最常用的 RAID 技术方案
D、RAID5 的校验位数据螺旋式写入所有硬盘HDFS 架构中,NameNode 的职责不包含? A、记录数据块的校验和信息
B、监听 DataNode 服务器的心跳
C、控制 DataNode 之间数据复制
D、为 Client 程序分配数据块保证 HDFS 高可用的技术方案不包括以下哪种?
A、DataNode 向 NameNode 发送心跳检测,当某个DataNode 失去心跳的时候,NameNode 会对该 DataNode 上的数据块重新备份
B、每个数据块缺省情况下,会被存储在三个 DataNode 上
C、NameNode 进行主从热备
D、从 DataNode 读写数据的时候,数据需要经过 NameNode 进行校验MapReduce 不适合进行下列哪种计算?
A、SQL 查询
B、计算斐波那契数列
C、训练围棋下棋机器人
D、统计网站访问 UVHadoop MapReduce 计算过程中,shuffle的主要作用是?
A、将相同的 key 分发给同一个 reduce 计算任务,以便进行下一步计算
B、将 MapReduce 程序加载到任务计算服务器上
C、根据数据分片数量,构造相应数量的 map 计算任务
D、从 HDFS 中的文件中读取数据用 MapReduce WordCount 程序计算处理一个大规模的纯文本文件,map 函数输入的 value 更接近下列哪个描述
A、文本文件中的一行数据
B、文本文件中一行数据在文件中偏移量
C、文本文件中的一个单词
D、文本文件中一个单词的出现的次数下面关于 Yarn 的说法,哪个是不正确的?
A、ResourceManager 负责整个集群的资源调度管理
B、Yarn 进行资源分配的单位是物理服务器
C、Yarn 进行资源分配的单位是包含了一定量的内存、CPU 等计算资源的虚拟计算容器
D、NodeManager 负责具体服务器上的资源和任务管理在 Hive 中,MetaStore 组件的作用是?
A、存储数据记录
B、存储执行计划
C、存储 SQL 语句
D、存储表结构Spark RDD 不是什么?
A、Spark 编程模型的核心元素
B、Spark 执行计划
C、Spark 的数据分片集合
D、弹性数据集Spark 比 MapReduce 快的原因不包括?
A、Spark 使用内存存储中间计算结果比 MapReduce使用硬盘更高效
B、park DAG 切分的多阶段计算过程比 MapReduce只有 map 和 reduce 两个阶段更高效
C、Spark 的开发者比 MapReduce 的开发者更优秀
D、Spark 的运行环境比 Hadoop 的运行环境更快
从0开始学架构
以下关于架构的描述,正确的是哪个?
A. 架构就是系统的物理结构,包含数据库、缓存、Web 服务器这些子系统
B.架构是第二次软件危机后为了解决软件危机而兴起的一门技术
C. 只有大公司的系统才需要架构设计,小公司不需要架构设计
D. 架构是系统的顶层结构,可以从不同的角度去描述架构关于架构设计的目的,哪个描述是正确的?
A. 架构设计主要是为了任务拆分,以方便团队分工合作
B. 架构设计主要是为了实现高性能和高可靠的系统
C. 架构设计主要是为了解决系统复杂度带来的问题
D. 架构设计主要是为了实现业务需求以下哪些系统属于比较复杂的系统?
A. 某个日 PV 1000 万的新闻网站
B.某个支撑20个运营人员的运营管理后台
C.某个云厂家的5000台服务器的存储系统
D.某个创业公司做的类淘宝的购物平台以下哪些做法违背了架构设计三原则?
A. 小牛从BAT的猫厂离职加入一家20人的创业公司担任CTO,决心把猫厂的技术复制到创业公司,让技术成为公司的核心竞争力
B. 小王在BAT的熊厂工作,为了能够晋级,他每个方案都力求做的高大上,不然晋级肯定没有希望
C. 小明在某大厂负责一个创新业务架构设计,业务方目标是做到日活5000万,小明摩拳擦掌,决心一上来就设计一个亿级日活的架构
D. 小李帮学校做一个简单的服务功能,直接用小程序搞定以下关于架构设计的具体做法,哪些是错误的?
A. 详细的与业务方明确需求、确定目标,甚至为了降低系统复杂度而和业务方商量可否砍掉一些需求
B. 领导说这个系统一定要做到高性能,不然团队出不了成绩,因此团队把高性能作为系统设计的首要复杂度进行分析
C. 架构师对自己的经验和技能非常自信,只设计了一个方案
D. 架构讨论的时候,把运维、测试、运营等关联方都拉上一起讨论关于高性能存储架构设计的说法,哪些是正确的?
A. 读写分离适合读多写少的业务
B. 分库分表适合读写并发都比较大的业务
C. NoSQL功能很强大了,为了避免系统设计复杂,用了NoSQL就不要用SQL了
D. 读写分离和缓存都是为了应对读多写少的业务场景,因此只用其中一个就够了Linux上的数据库系统适合采用哪种高性能服务模式?
A. PPC
B. TPC
C. Reactor
D. Proactor以下哪个负载均衡技术适合做机房级别的负载均衡?
A. DNS
B. LVS
C. Nginx
D. 微服务网关以下关于CAP理论的说法,哪些是正确的?
A. 整个分布式系统要么符合CP,要么符合AP
B. 分布式系统要么是CP,要么是AP,不可能存在满足CA的分布式系统
C. CAP理论是不考虑延迟的,因此实际上没有任何系统能做到CP
D. 既然CAP都说了故障情况下肯定会有问题,那我们就直接跟客户说这是科学原理决定的,我们也没办法以下关于高可用存储架构的说法,哪些是正确的?
A. 双机存储系统只有两台机器,设计上比集群存储系统要简单
B. ZooKeeper是数据集中集群,因为每台服务器上都保存相同的数据
C. Elasticsearch是数据分散集群,因为每台服务器上存放的不同的数据
D. 数据分区可以避免单机房出现物理故障的时候不损失数据
软件设计之美
- 下面关于软件设计的叙述中,错误的是?
A 软件设计就是设计模式
B 所有的软件都需要精心的设计
C 软件设计要应对由于长期变化带来的复杂性
D 软件开发中的很多问题是由于缺乏设计造成的
- 程序设计语言的接口是什么?
A 程序设计语言的模型
B 程序设计语言的语法
C 程序设计语言的程序库
D 程序设计语言的运行时
- 下面对单一职责原则(LSP)的理解,哪个符合最新的定义?
A 一个模块只做一件事
B 一个模块应该有且仅有一个变换的原因
C 一个模块应该对一类且仅对一类行为者负责
D 一个模块应该只有一个人负责
- 下面关于编程范式的叙述中,正确的是?
A 用 Java 写出来的程序一定是符合面向对象编程范式的
B 用 C 写不出面向对象的程序
C 函数式编程一定要用函数式编程语言才能实现出来
D 用 Java 也可以写出函数式编程的代码
- 下面关于面向对象编程的叙述中,不正确的是?
A 面向对象就是数据加上函数
B 面向对象的封装就是把数据放到类里面
C 面向对象的继承就是为了复用代码
D 面向对象的多态是区别于基于对象的重要特点
- 下面关于设计模式的叙述中,不正确的是?
A 设计模式是针对一些普遍存在的问题给出的解决方案
B 设计模式一共有 23 种
C 设计模式从某种意义上说是为了解决程序设计语言自身的缺陷
D 设计模式的写法是标准的,一成不变的
- 下面对于一些原则理解正确的是?
A 简单设计就是不需要设计
B DRY 原则指的是代码不要复制粘贴
C YAGNI 原则告诫我们不要做过多的事
D KISS 原则告诉我们尽可能用简单的方式做事情
- 下面关于 DSL 的叙述中,不正确的是?
A DSL 是 Martin Fowler 发明的一门语言
B 写 DSL 就要自己写编译器
C Spring 的 XML 配置文件就是一种外部 DSL
D 表达性是 DSL 一个重要的属性
- 理解一个软件的设计,需要理解哪些部分?
A 算法
B 模型
C 接口
D 实现
- 下面不属于列表转换最典型的模式是?
A map
B find
C reduce
D filter
手把手带你写一个web框架
- 下列关于 net/http 的说法正确的有?
A. 对于 HTTP 协议,无论是请求还是响应,传输的消息体都可以分为两个部分:HTTP 头部和 HTTP Body 体。头部描述的一般是和业务无关但与传输相关的信息,比如请求地址、编码格式、缓存时长等;Body 里面主要描述的是与业务相关的信息。
B. Web Server 的本质,实际上就是接收、解析 HTTP 请求传输的文本字符,理解这些文本字符的指令,然后进行计算,再将返回值组织成 HTTP 响应的文本字符,通过 TCP 网络传输回去。
C. server.ListenAndServe 是 net/http 启动服务的入口,我们可以使用 IDE 跟着这个函数梳理 Web 服务的实现原理。
D. 所有实现了 net/http 接口 Handler 的对象,都可以作为服务器的路由函数,net/http 库自带的默认路由 DefaultServeMux 是通过 map 实现的。
- 下列关于 context 的说法正确的有?
A. 官方推荐所有函数第一个参数为 context,其实完全没有必要。
B. context 的 Done 和 CancelFunc 其实功能差不多,完全可以只监听 Done 事件。
C. net/http 会为每个请求生成一个 context,并且存放在 request 结构体中。
D. context 机制能有效防止 Golang 中系统雪崩。
- 下列关于路由的说法正确的有?
A. 路由一般使用 HTTP 请求的第一行 Request Line 的三个部分 Method、Request-URI 和 HTTP-Version 来寻找控制器。
B. net/http 默认路由是不支持动态路由匹配的。
C. trie 树算法替代哈希算法能有效提升路由查找效率。_x005f
D. 路由支持的规则越多越好。
- 下列关于中间件的说法正确的有?
A. 中间件的设计,是为了将所有请求都通用的逻辑封装在一个函数中,让请求先经过中间件逻辑再进入业务逻辑。
B. 中间件只能处理 HTTP 请求,无法处理 HTTP 返回。
C. pipeline 思想改造中间件,能让中间件的使用更为优雅。
D. 如果框架有了一个 Recovery 中间件,那么创建新 Goroutine 的时候就不需要管理 panic 了。
- 下列关于封装的说法正确的有?
A. 对于一个框架来说,封装请求和返回值是一件可有可无的事情。
B. 对一个功能的封装,应该先思考接口,再思考实现。
C. jsonp 能解决跨域资源共享问题。
D. 封装输出 HTML 的时候,可以使用官方的 template 库来快速实现。
- 下列关于优雅重启的说法正确的有?
A. 优雅关闭其实是没有必要的,低峰期直接结束进程快速启动即可。
B. kill -9 的信号是可以被捕获的,我们也可以使用这个信号量来实现优雅重启。
C. net/http 在 Go1.8 之后在 server.Shutdown 方法中提供了优雅重启的逻辑。
D. 优雅重启的机制主要通过 os/signal 库捕获信号量来处理。
下列关于 Gin 框架的描述,哪些是正确的?
A.Gin 的 Recovery 中间件能打印堆栈信息。
B.Gin 的路由使用 radix tree 来实现的。
C.Gin 的细节和生态十分强大,是经过时间不断打磨出来的。
D.Gin 有非常强大的第三方中间件库。下列关于 hade 框架融合 gin 框架的描述,哪些是正确
A. Gin 框架使用 MIT 协议,是允许被拷贝、修改、二次开发的。
B. MIT 协议在复制的时候需要注意保留头部的作者说明。
C. 以复制的形式迁移 Gin 框架是为了基于 Gin 框架,并且融合我们自己的封装,最终目的都是为了提供更好的开发工具。
D. 我们封装 Gin 的 Response 是使用链式方式,能有效提升开发效率。
- 下列关于 hade 框架面向接口编程思想的描述,哪些是正确的
A. 面向接口编程、面向对象编程、面向过程编程,代表的不仅仅是代码编写方式不同,还是思维方式的不同。
B. hade 框架基于服务容器、服务提供者来实现面向接口编程。
C. hade 框架要提供一个服务,就要实现服务提供者,服务提供者一共定义了 5 个接口。
D. 服务提供者在容器中的名称必须是全局唯一的。
- 下列关于 hade 框架的目录结构描述,哪些是正确的?
A. 规范最小化的业务目录的结构,hade 框架认为是有必要的,业务代码的目录结构是一种工程化的规范。
B. hade 中以一个服务提供者的方式,来规范目录结构。
C. hade 中默认目录结构的具体地址是无法变的。
D. hade 的框架目录和业务目录是独立的。
数据分析思维课
- 关于平均值以下哪种说法是正确的?
A 体育特长班平均身高 1.60,小刚 1.80,他在班里肯定属于最高的一批人
B 北京房价平均 5 万,所以,收入 3 万的你肯定可以攒钱在你单位附近买一套房
C 某投行平均薪资 200 万,你觉得进去肯定收入能翻好几倍
D 现在人口生育率下降的很厉害,大多数家庭要么不婚,要么结婚都不生 / 少生孩子了
- 下面哪种分布一定是正态分布?
A 全球人员的身高
B 你所在公司的薪资
C 你所在城市的房价
D 你每年上班的使用的时长
- 关于抽样那个说法是正确的?
A 大数据不需要抽样
B 抽样可以减少计算量和处理复杂度
C 抽样数据都是不准确的
D 抽样结果无法代表整体趋势情况
- 关于回归算法,哪些是正确的
A 因为“均值回归”,父母高,孩子肯定不高了
B 龙生龙,凤生凤,老鼠孩子会打洞
C 逻辑回归效果比一元回归效果好
D 回归算法是一种简单的预测算法
- 下面那些问题可以只用聚类算法解决?
A 一个公司里,根据所有人不同爱好来决定建立几个兴趣小组
B 自动驾驶
C 下围棋
D 大量员工分布在城市里,找到最适合大家办公的办公室位置
- 哪些算法可以用协同过滤或者关联规则算法解决
A 根据消费记录来猜你喜欢什么
B 根据别人的兴趣,这些人和你的匹配程度来预测你的兴趣
C 根据你经常一起购买的物品,来推荐你一起购买的物品
D 根据不同的消费记录,来给用户分不同偏好的群
- 关于人工智能,哪些说法是对的?
A 人工智能算法和数据挖掘算法是两种概念,人工智能算法更高级
B 人工智能算法可以自己创造新的创意和规则,从而超越人类
C CNN 属于一种人工智能算法
D 聚类也属于一种广义的人工智能算法
- SMART 原则包括以下哪些?
A S,Smart 智慧
B M, Multiple,多种多样的
C A, Achievable 可实现的
D R, Result-base, 结果导向的
- 关于 Excel,以下哪个说法是对的
A Alt+Enter,可以在单元格里换行
B Ctrl+1 可以打开单元格格式
C 公式中可以采用 $ 符号来确定绝对位置
D Ctrl+E 可以帮你找到自动增加引号和书名号的规律,并自动填写空行
- 以下工具哪些是企业可能会用到的数据数据处理和分析使用的工具?
A Excel
B Apache DolphinScheduler
C ClickHouse
D Apache SeaTunnel
物联网开发实战
- 以下哪个选项正确地描述了物联网和互联网的关系?
A、物联网会替代互联网
B、物联网是互联网的发展和延伸
C、物联网独立于互联网发展
- 以下哪个技术不属于低功耗的通信技术?
A、BLE
B、Wi-Fi
C、ZigBee
- 网络协议中的“发布 - 订阅模式”包含哪三个角色?
A、服务器
B、发布者
C、订阅者
D、经纪人
- MQTT 网络协议作为最流行的物联网协议,具有哪些特点?
A、采用二进制的消息内容编码格式
B、协议头很紧凑,协议交互也简单
C、基于 UDP 传输层协议
D、支持 3 种 QoS(Quality of Service,
- 半结构化数据的存储,适合采用哪种类型的数据库?
A、关系型数据库
B、时序数据库
C、NoSQL 数据库
- 目前智能家居的发展处于哪个阶段?
A、遥控阶段
B、场景联动阶段
C、智能化阶段
- 物模型一般采用什么格式语言来描述模型元素?
A、JSON
B、HTML
C、XML
- 物模型一般包含哪三个功能元素?
A、名称
B、属性
C、事件
D、动作
- 在零配置组网中,DHCP 协议的功能是什么呢?
A、解析出设备的 IP 地址
B、发现设备和服务
C、自动分配 IP 地址
- MQTT 网络协议保证消息至少收到一次(可能重复)的 QoS级别是哪个?
A、QoS 0
B、QoS 1
C、QoS 2
- 物联网引入边缘计算架构的好处不包含下面哪个选项?
A、延迟低
B、数据隐私性更好
C、网络传输数据量增多
- 关于数据处理框架 Flink 数据处理模式的表述,以下哪个是正确的?
A、支持批流一体
B、只支持批处理
C、只支持流处理
- 物联网中,传感器设备的周期上报数据适合存储到什么类型的数据库
A、关系型数据库
B、NoSQL 数据库
C、时序数据库
- 打造物联网的设备接入层(IoT Hub)需要用到哪些高并发解决方案?
A、负载均衡
B、消息队列
C、缓存系统
D、应用防火墙
- 5G 通信技术包含哪三个应用场景?
A、uRLLC
B、LoRa
C、eMMB
D、mMTC
用户体验设计实战课
- 用户企业的优势是什么?
A 获得健康强壮的能量
B 能快速地共建产品,以及具有超高的商业转化力
C 有更强的共同价值观和让用户与产品认知联动在一起的能力
D 以上选项都是
- 用户的需求可以分成哪几个维度?
A 解决痛感
B 刷好存在
C 外表好看
D 满足好奇
- 请判断此说法是否正确:用户研究要使用更先进的数据工具,去探索用户使用的真实场景、动机,还有心理机制,然后协助业务做出正确的决策。
A 正确
B 错误
- 以下选项中,有哪些关于场景服务设计的关键方法的描述是正确的?
A 以场景还原的方式洞察用户需求
B 搭建完整的用户旅程
C 做好服务设计测试
D 把服务变成故事和生活的主张
- 如何精准地洞察场景用户需求?
A 在场景中观察用户的行为表现
B 和用户深谈
C 共创设计,观察用户的需求
D 归纳数据并对比大数据
- 请判断以下说法是否正确:
痛点是用户刚性的需求,不满足用户想要的,就是刻骨铭心的痛。
爽点是用户的需求超预期满足的时刻,让用户得到了关键的释放。
痒点是让用户产生渴望的撩拨,让用户看到那个理想中的自己。
A 正确
B 错误
- 以下哪个选项不是构建体验地图的关键步骤?
A 确定端到端的闭环
B 寻找环境触点、数字触点和人际触点
C 设计用户的情绪
D 观察交易数据
- 请判断此说法是否正确:产品的 GUI 设计,风格不一定需要一致且统一。
A 正确
B 错误
- 一个产品界面的审美风格,往往取决于哪三个方面的统一?
A 国际文化的审美
B 团队创始人的审美
C 设计师的审美
D 用户的审美
- 打造用户同盟的方法,加强产品和用户之间链接深度的手段是什么?
A 建立产品与用户协作的场景仪式
B 建立产品与用户的利益共享机制
C 降低价格返利
D 以上都是
Devops实战笔记
- 关于典型的软件开发模式,以下哪个描述是正确的
A. 瀑布开发模式以轻流程重管控为代表,旨在按照计划推进软件项目的开发和交付
B. 敏捷开发模式可以理解为迭代开发模式通过小批量快速交付来响应市场需求和用户变化
C. DevOps开发模式就是让开发身兼数职,将运维工作也交给开发执行,从而减少团队协作来提高效率
D. 以上答案均不正确
- 关于 DevOps 的核心结果指标,以下哪个描述是错误的?
A. 部署频率是指应用和服务向生产环境部署代码的频率
B. 变更前置时间是指从需求提出到成功运行在生产环境的时长
C. 服务恢复时间是指线上应用和服务出现故障到恢复运行的时长
D. 变更失败率是指应用和服务在生产环境部署失败或者部署后导致服务降级的比例
- 关于 DevOps 实施的三要素,以下哪个描述是正确的?
A. DevOps要以改变文化为先行,只有塑造了正确的文化才有可能实现转型
B DevOps内部如果没有标准化流程,也不影响DevOps的实施
C DevOps意味着工具能力,只要提供最好的工具,就可以实现DevOps转型
D DevOps需要人、流程和平台工具三方面能力的综合提升
- 关于 DevOps 实施的常见路径的描述,以下哪些选项是错误的
A最开始实施DevOps时,就要全面铺开,只有全面推广,才能起到效果
B DevOps实施需要聘请外部咨询顾问,以顾问的计划来推进
C DevOps实施可以参考竞争对手的策略,全盘复制,从而加速落地
D DevOps实施要结合公司现状,由点及面地积累经验,持续推进
- 以下关于用户故事拆分的 INVEST 原则的描述,哪些是错误
A S就是Specific,具体的
B V就是Valuable,有价值的
C T就是Time-based,有时间期限的
D T就是Testable,可测试的
- 关于精益看板方法,下面的哪些描述是错误的
A 看板方法以提高价值流动效率为核心,要做到流程可视化
B看板方法需要定义清晰的规则,从而降低团队内部的沟通协作成本
C 看板方法没有必要限制在制品数量,按照团队的能力执行即可
D 看板方法需要严格执行站会、计划会、回归会
关于某公司的配置管理现状,你认为哪项是错误的
A 公司源代码统一托管在两套不同的版本控制系统中
B 流水线的配置保存在数据库中,没有纳入版本控制系统
C 没有在代码提交注释中关联需求编号,而是采用了分支关联需求的方式来建立关联
D 员工可以从任何源获取他们所需要的依赖包以下哪种分支策略更加适合于 DevOps 开发模式
A 本地开发为主,上线前才合并主干
B 团队共享主干分支,采用基于特性的短分支模式
C 使用多条长线分支,支持多版本发布
D 特性分支长期存在关于持续集成的描述,哪个选项是正确的?
A 每天执行一次每日构建
B 每次提交触发集成,执,行完整的验收测试和手工测试
C 集成失败有时间修复即可
D 持续集成的结果可以作为代码评审的门槛条件"
- 关于自动化测试,哪个选项是正确的?
A DevOps中的测试活动要实现100%的自动化
B自动化测试要以单元测试的覆盖率为导向,追求覆盖率越高越好
C 墨韩繁跟进自动化测试结果的分析,降低异常告警比例
D 自动化测试就是测试人员的工作,其他团队成员无需关心
- 关于质量门禁,你认为以下哪些描述是错误的?
A 质量门禁不应该要求强制执行,提供辅助参考即
B 质量门禁应该要采用人工审批的方式完成
C 只要定义了一套质量门禁规侧,就无需修改,劳永逸
D 历史的质量数据没有意义,可以直接丢弃
- 关于技术债务的处理原则,以下哪个选项是错误的
A 让技术债务呈良性下降趋势
B 高频修改的部分优先解决
C 团队要努力消灭所有技术债务
D 优先在新项目中进行试点
- 下面的哪些技术实现符合“基础设施即代码”的原则?
A 使用Dockerfile定义环境镜像
B 使用Ansible批量部署环境
C 使用GitOps来实现代码审批方式的环境变更
D 使用详尽的Word文档来描述环境配置"
- 关于低风险的部署策略,以下哪些描述是错误的?
A 低风险部署就是要在部署前尽可能地进行质量验,保证不出质量问题
B 部署成功后,线上的质量问题是运维团队关心的事情,同测试人员无关
C 蓝绿部署,金丝雀发布都是有效的低风险部署策略
D 监控的意义不仅在于快速发现问题,而是要提供必要的信息帮助定位和解决问题
- 关于 DevOps 度量指标定义,以下哪几个项是错误的?
A 度量指标需要关心受众,只有人关注指标数据,才有意义
B 度量指标需要直指问题,用于对目标的假设,并驱动正确的行为产生
C 只有跟个人绩效挂钩,度量指标才能真正执行到位
D 度量指标多多益善,这样可以尽可能全面地展现团那队的客情况
- 以下哪种团队氛围更加符合 DevOps 的持续改进目标?
A 平台质量月会上,研发团队一言不发,质量团队从头主持到尾
B 出现了线上事故,第一时间互相甩锅,为了问题定责争执不休
C 团队鼓励具备优化和创新,并定期将这些最佳实践内部推广
D 技术改进类需求优先级永远最低,以完成业务需求为优先原则
- 关于企业内部 DevOps 平台建设思路,以下哪些描述是错误
A 自研平台优于商业平台,应该推进所有平台自研化
B 积极拥抱开源工具,同时要把控开源工具的安全风险
C 为了减少重复建设,内部工具需要划清界限,独立建设
D 应该推翻所有历史系统,开发一套统一的一体化研发协同平台
- 以下哪个选项不属现代持续交付平台的典型特征?
A 持续交付平台应该大而全地内建所有能力
B 持续交付平台应该支持灵活的编排能力,以满足不同业务形态和技术栈的交付需要
C 持续交付平台应该自持可扩展能力
D 持续交付平台可以收集和沉淀研发过程数据,用于数据度量
- 关于内部 DevOps 平台开发,以下哪些描述是正确的?
A 内部平台开发不需要严格的开发流程,团队自由发挥即可
B 内部平台同样需要善于运营和推广
C 内部平台开发不需要产品经理的角色,开发自己搞定就行
D 内部平台的技术栈不需要一味求新,选择适合团队能力的就行了
- DevOps 工程师需要关注和持续提升哪些能力?
A 代码能力
B 自动化能力
C 业务流程能力
D 个人软实力
分布式技术原理与算法解析
- 以下哪些是分布式系统的重要指标?
A 性能 (吞吐量、响应时间等)
B 资源占用
C 可用性
D 可扩展性
- 以下哪些方案可以解决分布式系统中多程序访问临界资源的问题?
A 引入协调程序,协调程序将所有请求程序进行排序,根据先来先得的原则,最早请求的程序可以使用临界资
B 每个程序在征求其他请求程序同意后,再使用临界资源
C 所有程序通过令牌传递方式轮流使用临界资源
D 两层结构的分布式令牌环方式:较低层次结构包含若干个局部程序和一个协调程序。局部程序通过令牌传递方式轮流访问资源,协调程序代表每个较低层次结构与其他协调程序通信,再次组成一个环形结构,在这个环上也可通过令牌传递方式来轮流访问资源
- 以下关于数据分布的描述,哪些是正确的?
A 数据分布通常会考虑数据的均匀、稳定,以及节点异构等方面
B 哈希方法进行数据分布,适用于节点数量比较固定的场景
C 带虚拟节点的一致性哈希方案可以解决节点异构性的问题
D 相同数据的分布要尽量分布在不同的机器或机房
- 以下关于分布式系统中流量控制的描述,哪些是正确的?
A 漏桶策略适用于间隔性突发流量,且流量不用即时处理的场景
B 令牌桶策略适用于有突发特性的流量。且流量需要即时处理的场景
C 可以通过监控并发线程数进行流量控制
D 可以通过监控 QPS,进行流量控制
- 以下关于分布式系统故障的描述,哪些是正确的?
A 分布式系统故障包含很多,比如节点故障,网络故障等
B 心跳机制是检测故障一种常用方法
C 主备策略是一种常用的故障恢复机制
D 故障恢复的核心就是,数据在节点间的复制,保证数据一致性
- 以下关于分布式事务的相关描述,哪些是正确的?
A 事务中任何一项操作不成功,整个事务就会失败,需要将所有操作回滚
B 基于 XA 的二阶段提交算法存在单点故障问题
C 系统内有多个事务并发执行时会互相干扰
D BASE 理论是 ACID 原则的弱化
- 以下关于分布式锁的相关描述,哪些是正确的?
A 数据库锁存在死锁问题
B Redis 实现的分布式锁中,后面的进程只能等待前面的进程释放掉锁才可获得锁
C Redis 实现的分布式锁适用于性能要求较高的场景
D 分布式锁可能会引起羊群效应
- 以下关于分布式通信的描述,哪些是正确的?
A 发布订阅模式中一个消息仅可以被一个消费者消费
B Kafka 是一个典型的发布订阅消息系统
C Kafka 分区可以实现负载均衡和消息备份
D 发布订阅模式可以避免高负载
- 以下关于消息队列的描述,哪些是正确的?
A 消息队列会降低用户响应效率
B 消息队列可以实现系统解耦
C RocketMQ 可以并发接收用户输入数据,而且一个 Producer 故障不会造成系统故障
D 消息队列模式需要提前让消费者订阅消息
- 以下关于 CAP 理论的描述,哪些是正确的?
A 在分布式系统中,C、A、P 这三个特征不能同时满足,只能满足其中两个
B 涉及金钱交易的分布式场景要保证 CP
C 对于用户交互的网站,应尽量选择 AP
D CAP 中的 A 和 ACID 中的 A 是同一个意思"
高并发系统设计40问
- 关于 CDN 下面说法正确的是
A 我们一般使用单个CDN厂商以节省成本
B CDN是一种特殊的缓存,可以加速静态资源访问
C 开发人员不需要关心CDN的可用性
D 我们可以完全依靠CDN厂商的监控来发现CDN的问题
- 传统的三层架构不包括哪一层
A 表现层
B 数据层
C 处理层
D 逻辑层
哪些因素不是促使微服务化改造的主要因素
A 系统的性能出现瓶颈
B 系统的无法做到横向扩展
C 巨型的系统影响的研发效率,同时也极易引起故障
D 系统的请求量有极大的增加关于高性能系统设计,下面说法错误的是
A 横向扩展系统可以很好地提升系统的性能
B 性能优化是为了解决系统中已经存在的问题或者问题隐患
C 系统性能的度量一般使用比较好计算的平均响应时间
D 性能优化需要分析细致,做到一劳永逸下面分库分表的方式不正确的是
A 查询一条内容的评论数据,使用评论ID作为分表键
B 查询一个人一段时间的订单,使用创建时间作为分表键,按照区间来拆分数据
C 查询商品信息时,可以将商品ID作为分表键
D 使用图片URL的Hash值作为分表键,可以通过图片URL查询图片信息
- 关于系统的高可用,下面说法不正确的是
A 系统设计时应该尽量考虑如何容错
B 在必要时,可以牺牲非核心模块的可用性来保证整体系统的可用性
C 故障演练可以帮助我们提早发现可用性方面的问题
D 任何系统我们都要保证99.99%的可用性
- 关于缓存下面说法正确的是
A 缓存可以解决一切性能问题
B 缓存不可以有任何穿透,要全部命中才行
C 通过增加缓存副本的方式,可以提升缓存的扩展性
D 更新数据时,应该先删除缓存数据,再更新数据库的数据
- 关于 ID,下面说法正确的是
A 生成的ID最好是有序的
B ID生成后可以随机变更
C ID用随机的数字生成就好了
D ID生成规则可以依据业务特性来选择
- 下面哪些不是保证缓存高可用的方式
A 缓存分片
B 布隆过滤器
C 缓存多副本
D Redis Sentinel
- 下面保证数据一致性的方式,哪些不是有效的
A 写完数据后执行一些业务逻辑再读数据
B 将冗余数据发送给消息队列
C 查询数据时通过查询主库的方式来保证查询的数据是一致的
D 数据写入时先写缓存
- 下面哪些不是 API 网关可以解决的问题
A 接口协议转换
B 服务降级和限流
C 接口认证和授权
D 服务节点的注册和发现
- 于序列化方式,下面说法错误的是
A 选择合适的序列化方式可以节省网络传输包的大小
B 选择序列化方式应该尽量选择性能较高的方式×
C JSON没有作为序列化方式的场景,因为它在网络上传输时会消耗比较大的空间
D 在存储大数据量时,可以考虑使用ProtoBuf代替JSON,以节省存储空间
- 关于 RPC,下面说法正确的是
A RPC框架都是使用二进制协议的
B 为了减少不必要的传输,RPC框架一般会开启Nagles算法
C 为了提升网络传输性能,我们一般会使用多路I/0复用的I/O模型
D 一次RPC调用需要经过两次序列化和反序列化的过程
- 下面哪些不是我们需要监控的指标
A 错误数
B 成本
C 饱和度
D 请求量
- 下面关于分布式 Trace 说法正确的是
A 我们会使用Traceld来代表整体请求,使用Spanld来代表单次RPC调用
B 我们一般会使用动态代理的方式来减少Trace系统对于业务系统的代码侵入
C Trace的日志必须全量的保存
D 开发Trace工具时,需要尽量减少对于业务性能的损耗
- 下面哪些注册中心是支持 API的
A ZooKeeper
B Eureka
c Nacos
D Consul
- 下面关于全链路压力测试的说法错误的是
A 压力测试可以使用模拟的数据来进行
B 压力测试应该逐步放量,避免让压测流量把线上系统压垮
C 我们可以在请求中增加标识,这样业务代码就可以分辨出哪些是正常流量,哪些是压测流量
D Mock服务和影子库是常见的两种处理压测流量的方式
- 下面负载均衡服务器的使用场景错误的是
A 使用LVS作为入口负载均衡服务器
B 使用Nginx作为7层负载均衡服务器
C 使用DNS作为7层服务负载均衡服务器
D 使用Nginx作为微服务负载均衡服务器
- 下面使用降级的场景,哪些是不恰当的
A 将轮询获取未读数的请求间隔从30秒降级到10分钟
B 在购买商品的流程中,将积分服务降级
C 当数据库宕机时,可以暂时只读取缓存中的数据
D 在社区系统中将发布接口暂时降级
- 下列关于限流说法不正确的是
A 固定窗口算法能很好的限制流量在约定的阈值范围内
B Guava中的限流使用的是令牌桶算法
C 漏桶算法可以让流量更加平滑
D 令牌桶算法在短时间内可能会出现流量暴增
架构实战案例解析
- 以下哪个选项不属于顶层的架构分类
A 技术架构
B 部署架构
C 应用架构
D 业务架构
- 下列选项中,哪个不属于技术架构设计的目标:
A 安全性
B 高性能
C 可复用
D 高可用
- 下面哪些架构设计原则和系统的高可用没有直接关系
A 计算可并行
B 无状态
C 可虚拟化部署
D 使用成熟技术
- 从服务的划分层次看,以下哪个不属于基础业务服务
A 用户服务
B 商品服务
C 库存服务
D 下单服务
- 下列选项中,哪些是消息系统典型的应用场景:
A 流星削峰
B 系统解耦
C 业务降级
D 异步处理
- 处理事故的首要原则是尽快恢复业务正常,从这个角度出发,事故处理有三板斧的说法,具体是哪些
A 系统回滚
B 服务器重启
C 加机器
D 分析事故原因
- 下面哪个选项不属于网关的典型功能
A 限流
B 安全验证
C 业务编排
D 路由
- 以下关于单体应用架构的缺陷,说法错误的是
A 随着时间推移,已使用的系统设计或代码难以修改,会逐新形成应用程序的技术债务
B 随着代码的增加,构建和部署的时间也会增加,全量部署的方式耗时长、影响范围大、风,险高,单体应用项目上线部署的频率一般较低
C 单体应用容易进行扩展,同时结合业务模块进行伸缩
D 单体应用往往使用统一的技术平台或方案解决所有问题,团队的每个成员都必须使用相同的开发语言和架构,想要引入新的框架或技术平台非常困难
- 以下关于微服务架构的说法,正确的是
A 微服务架构由多个微服务组成,部署相对简单
B 微服务架构增加了测试的难度
C 微服务架构可扩展性好,每个服务可以根据实际需求独立进行扩展
D 服务的技术选型可以是多样化的
- 微服务架构中可能包括的组件有哪些:
A 服务注册中心
B 服务网关
C 分布式配置中心
D 客户端负载均衡
深入剖析 Kubernetes
- 关于容器镜像的论述,哪个描述是正确的?
A 容器镜像包含了应用运行所需要的所有依赖,包括操作系统内核
B 容器镜像跟虚拟机镜像类似,都是一块磁盘的快照
C 容器镜像完整地打包了应用运行所需要的文件系统环境,但是不能打包应用运行所需要的操作系统内核
D 容器镜像里的内容可以在容器里直接修改
- 关于容器镜像的分层机制,哪些描述是正确的
A Docker 容器镜像包括两层:只读层和可读写层
B AUFS 文件系统中 “whiteout” 机制的作用,是屏蔽只读层里被用户“删除”的文件
C 容器镜像里的文件在宿主机上是不可见的
D 容器镜像的分层机制的目的,是提供镜像的 "" 被复用 "" 能力"
- 关于 Pod 的论述,哪些是正确的?
A Pod 是 sidecar 模式以及各种 Service Mesh 得以实现的基础
B Pod 中的 Infra 容器和其他同 Pod 容器的生命周期相同
C Pod 的网络仅取决于 Infra 容器的网络配置
D Pod 的多个容器之间是有严格顺序关系的
- 关于 Deployment 的论述,哪些是正确的?
A Deployment 控制器直接控制 Pod
B Deployment 就是 Kubernetes 中“应用”的概念
C Deployment 中一个 Revision(版本)的概念等价于一个 ReplicaSet 对象
D Deployment 的滚动升级仅调节 Pod 实例数量,不调整不同版本的流量
- 关于 StatefulSet 的论述,哪个是错误的?
A StatefulSet 控制器支持“蓝绿发布”的方式来升级 Pod
B StatefulSet 控制器升级 Pod 严格按照一个一个的顺序来升级
C StatefulSet 里声明 Headless Service 的目的是记录 Pod 的编号到 Pod 的 DNS 名字中
D StatefulSet 依靠 PV/PVC 机制来保证 PV 实例永远能够跟相应的 Pod “绑定”在一起
- 关于 Kubernetes PV/PVC/StorageClass 的论述,哪些说法是正确的?
A PVC 是用户角度对存储服务的诉求
B PV 是系统管理员角度对存储实例的描述
C StorageClass 是一类 PV 的抽象描述,不同 StorageClass 对应的是不同 Provisioner 的不同能力或者存储规格
D 一个 PVC 可以跟多个 PV 进行绑定
- 关于 Service 和 Ingress 的论述,哪个说法是错误的?
A 如果我们的需求是一个“7 层的网络代理”,那么应该选用 Ingress
B Kubernetes Service 的负载均衡策略默认是 RoundRobin
C Kubernetes 默认的 Service 机制可以在集群范围外生效
D 相比于 Service,Kubernetes 的 Ingress 工作在”边缘“
- 关于 kubelet 的论述,哪些说法是正确的?
A kubelet 本身就是一个操作 Docker 容器的代理
B Kubernetes 对 CNI 插件的调用是在 kubelet 里面进行的
C kubelet 同 CRI shim 之间的交互依赖于 protobuf 协议(gRPC 方式)
D kubelet 会负责从容器运行时(比如 Docker)搜集容器状态进行上报,并最终组装成 Pod 的状态
- 关于 Linux 容器的论述,哪个是正确的?
A Linux 容器通过 Namespace 提供视图隔离能力,通过 cgroups 提供资源限制能力
B 一个 Linux 容器必须同时启用所有 Namespace
C 一个 Linux 容器必须设置 cgroups 值才可以启动
D UTS namespace 的作用是隔离网络栈
- 关于 Linux 容器 Volume 的论述,哪个是正确的?
A Linux 容器启动之后,它的 Volume 挂载在 init 层
B Linux 容器启动之后,它的 Volume 挂载在可读写层
C Linux 容器的 Volume 是一个单独的、特殊的层
D Linux 容器的 Volume 是镜像的一部分"
数据中台实战课
- 哪一项不属于指标口径的问题
A 相同指标名称,业务口径不一致
B 不同的指标标识,业务口径相同
C 指标结果没有产出
D 不同指标相同事实部分口径不一致
- 哪一项不是数据中台与 BI 工具进行结合,增强 BI 工具能力
A. B1工具可以借助A1的能力,实现通过语音找数
据的能力
B. B1工具借助元数据,实现全维度钻取的能力×
C. B1工具可以实现基于成本和价值的报表治理的
能力
D. B1工具可以实现指标口径的一致"
- 下列内容,哪一项属于数据中台和传统数据仓库共有的内容
A 维度建模的设计方法
B 基于数据湖构建
C 数据服务化
D 数据格式与数据分离
- 下列哪一项不属于数据中台区别于数据平台的特征
A 数据中台具备业务属性
B 数据中台覆盖数据研发的场景
C 数据中台强调数据的复用性
D 数据中台强调数据的服务化
- 李无邪是管理指标的数据产品,现在他遇到了一些指标,请帮助他找出其中哪个属于派生指标
A 黑卡会员消费金额
B 新用户购买用户数
C 用户消费金额
D 商品规格
- 张漂亮是数据部门的负责人,下列哪一项,不可以作为模型设计好坏的评定标准
A 表被下游表的引用次数
B 表的质量
C 原始数据的跨层引用率
D 汇总层表的查询覆盖率
- 郝有才是某企业 CIO,因为企业已经经历了几年的数据建设,在企业内部,不同部门之间,已经存在了一些小的数仓,现在郝有才组建了数据中台团队,希望推进企业数据中台的落地,面临着数据整合的难题。那么问题来了:下面哪一项操作是郝有才不应该做的
A 划分主题域、构建总线矩阵
B 构建全局统一的指标字典
C 接管ODS层数据
D 所有数据产品都必须收入数据中台团队
- 建设数据中台无法解决下列哪一项问题
A 数据需求交付时间长,响应速度慢
B 数据经常无法按时产出
C 指标口径不一致,经常看到两个相同名称的指标,结果却相差很大
D 数据量很大,数据加工的性能很慢
- 数据开发李帅帅要把数据接入到数据产品经营大脑中,目前数据量有3000W行记录,需要关联多个维度进行查询,这个时候选择什么中间存储比较合适呢
A. HBase
B. MySQL
C. GreenPlum
D. Redis
- 关于数据安全的描述,哪一项是不正确的
A. 通过HDFS快照+DistCp的方式,可以实现数据的增量备份。
B. HDFS原生提供了垃圾回收站的功能,开启fs.trash.interval参数,可以开启,可以解决Drop table,数据误删除的问题。
C. Kerberos提供了共享密钥的双认证安全机制,是最高级别的安全认证实现
D. 如果对效率有比较高的要求,同时对数据安全性有,一定的要求,建议选择两个HDFS集群,共享Hive Metastore的方式,允许测试环境读取线上环境的数据进行测试,通过权限设置,避免测试环境任务污染线上环境数据
- 甄美丽是电商业务数据负责人,她要建设数据中台,实现 OneData方法论,避免数据的重复加工,下列哪一项,与OneData方法论无关呢
A 通过主题域的方式组织数据
B 数据要分层的方式组织
C 数据表名定义还实现规范化定义
D 相同用户在数据中台中只能有一个唯一的标识
- 李前进是一名数据开发,他开发完任务之后,提交任务上线,需要建立任务的依赖关系。而他读取的表,产出任务开发完,还没有运行过,此时他需要找到这个表的产出任务,建立依赖,那么就要用到数据血缘,他应该使用哪种数据血缘的采集方式
A. Runtime血缘
B 通过Hive Plugin在任务执,行时获取任务的执行计划,生成数据血缘
C 在任务保存时,通过静态解析SQL获取血缘
D 通过任务的执行日志,获取字段血缘关系
- 贾宝玉执行了一条 SQL""insert overwrite table t2 select classid,sum(userid)as b from t1 groupby classid"",那么下列哪个字段血缘是不正确
A. t1.userid->t2.classid
B. t1.classid->t2.classid
C. t1.classid->t2.b
D. t1.userid->t2.b
- 郝有才是企业的 CIO,他想在企业中建设数据中台,他首先面临的就是组织架的构调整,那么,下列哪一个部门不应该属于数据中台团队
A 数据产品团队
B 分析师团队
C 数据开发团队
D 数据应用研发团队
- 什么样的企业应该构建数据中台
A 企业拥有大量的数据应用场景
B 企业存在较多的业务数据的孤岛,需要整合各个业务系统的数据
c 业务不稳定,变化比较快的创小业公司
D 目前数据建设中,存在需求交付效率低的问题
- 下面哪些内容容易产生数据质量问题
A 物理资源不足
B 数据开发代码BUG,兼容性有问题
c 业务源系统变更,没有通知到数据团队
D 日志服务器新增了10台服务器,其中5台服务器没有配置数据采集任务
- 下列哪些措施可以优化存储空间资源
A 下线没用的表
B 优化任务调度时间,削峰填谷
C 对数据进行压缩
D 数据设置生命周期
- 下列哪些环节属于数据研发的环节
A 数据集成
B 添加稽核监控
C 创建指标
D 清理无用的数据
- 马美丽是数据团队的负责人,当前数据团队经常被业务部门投诉,数据经常无法按时产出,影响了业务部门的日常运营。马美丽向业务部门承诺,数据质量问题必须要减少一半,所以她要建立全链路的数据质量稽核监控,她应该采取哪些步骤
A 将没用的数据下线
B 数据服务接入
C 添加稽核监控
D 构建数据血缘
- 下列哪些选项属于元数据的范畴
A 数据表结构信息
B 数据下游表
C 黑卡会员销售额
D 指标业务口径
系统性能调优必知必会
- 关于 Protobuf,以下说法正确的是?
A 为了降低 Key 关键字的编码长度,通过将每个 Key 赋予唯一的数字,并基于.proto 文件编码到通讯的两端,实现了类似 HTTP/2 静态表的高效传输。
B 为了降低 Key 关键字的编码长度,通过将每个 Key 赋予唯一的数字,并基于.proto 文件编码到通讯的两端,实现了类似 HTTP/2 静态表的高效传输。
C 当 Value 是字符串时,Protobuf 并不会基于通用的 Huffman 等算法压缩字符串,虽然这样的编码效率会更高,但 Protobuf 将其交给应用层来决定。
D 当使用列表、数组作为 Value 时,开启打包功能,就不用每个元素传递时都输入字段名 Key,这可以减少编码长度。
- 关于 HTTP/2 协议传输中的概念,以下说法错误的是?
A 多个 Stream 间可以并行地传输
B 1 个 Stream 中只能传输 1 次请求及响应
C HTTP/2 中 Stream 多路复用,相比 HTTP/1 中基于 TCP 连接多路复用的优点,只是减少了 TCP 连接、TLS 会话建立、关闭带来的消耗
D 服务器推送消息时,Stream ID 必须是偶数
- 关于 gRPC 框架,以下说法正确的是?
A 在编码方式上,使用 Protobuf 的 gRPC 压缩率最高,但它也支持 JSON 等编码格式,通过底层 HTTP 协议的 Content-Type 字段可以指明编码方式。
B 从应用层传输协议上,gRPC 主要使用 HTTP/2 协议,当然也可以使用会损失双向通讯能力的 HTTP/1 协议,或者使用即将以 HTTP/3 面貌出现的 QUIC/UDP 协议。
C Protobuf 和 HTTP/2 是 gRPC 主要使用的底层传输与编码方式,其中,Protobuf 消息会直接放在 HTTP/2 协议表示 HTTP body 的 DATA 帧中传输。
D gRPC 既支持 Dart 等终端编程语言,也支持 Go 等后端编程语言。其中,网络 IO 将会使用各自不同语言的网络框架,它们的性能差距也很大。
- 关于全链路监控,以下说法正确的是?
A 基于日志搜集分布式系统中各组件的业务信息,对系统的侵入性最小,此时可以再通过个性化的正则表达式从日志中提取结构化信息,方便后续的分析计算。
B 基于日志搜集分布式系统中各组件的业务信息,对系统的侵入性最小,此时可以再通过个性化的正则表达式从日志中提取结构化信息,方便后续的分析计算。
C 当一个请求由多个组件协作完成时,用于关联各组件的请求 ID 通常需要包括创建时间、客户端信息等时空信息,以减少高并发带来的高碰撞概率。
D 如果对监控数据做事前、事中分析预测,需要使用 Flink 等流式计算框架,通过缩小时间窗口内的数据量,减少计算时间,达到实时分析的效果。
- 关于缓存中的 CAP 理论,以下说法正确的是?
A 缓存更新时的 write-back 模式牺牲了一致性,但提升了可用性。
B 缓存更新时的 write-through 模式可用性一般,但一致性更好。
C 当源服务器故障时,使用过期缓存虽然降到了一致性,但保障了基本的可用性。
D CDN 将缓存分布在多个地域的 IDC 中,大幅提升了性能,得到了 AP 却牺牲了 C 一致性。
- 关于 Nginx 上的过期缓存,以下说法正确的是?
A 当 HTTP 头部的 Expires、Cache-Control 等上指示的时间显示缓存过期时,Nginx 就会在合适的时间删除缓存。
B 当缓存过期后,在 _cache_use_stale 中配置 updating 选项,且打开 proxy_cache_background_update on;配置,就可以用过期的缓存服务于所有访问它的用 户请求,同时仅发起 1 个子请求去回源更新缓存。
C 当从未生成缓存时,为了避免大量请求同时回源打垮上游服务,可以开启 _cache_lock on; 功能,其中,cache_lock_age 控制了被锁住请求的超时时间,而 _cache_lock_timeout 控制了回源请求的超时时间。
D 当磁盘、共享内存资源不足时,Nginx 将使用 LRU 链表去淘汰最近最少访问的缓存,即使它们并未超过 inactive 指出的时间。
- 关于消息队列,以下说法正确的是?
A 消息队列有 3 种 QOS 级别,其中 exactly once 通常是由 at most once 加上幂等性实现的。
B 为了不丢消息,消息生产者必须同步地收到消息队列的确认后,才能认为消息发布成功,否则必须进行重试。
C 消息队列的高性能既源于它可以通过批量操作来发布、消费消息,也因为时序性特征,拥有更好的缓存命中率,还减少了机械硬盘的磁头旋转次数。
D 消息队列天然实现了削峰填谷的功能,但我们必须保证在更长的时间窗口内,消费能力是大于发布速度的。
- 关于 MapReduce,以下说法正确的是?
A 只有计算过程本身可以采用分而治之的思想,并发执行时,MapReduce 思想才有用武之地。
B Map 函数是将 SPLIT 步骤拆分过的数据计算出结果后,再由 Reduce 步骤合并出最终结果。
C 直接编写 Map/Reduce 函数开发效率非常低,因此许多系统会被 MapReduce 封装为类 SQL 接口,而且 SQL 中的常用函数 avg、sum、count、stddev 等函数都可以分而治之地并行计算。
D MapReduce 通常需要和分布式存储系统结合起来,就地读取数据并进行 Map 计算,对于大数据场景,这能大幅减少数据分发消耗的 IT 成本。
- 关于流式计算,以下说法正确的是?
A 互联网服务通常会持续产生数据,这种无边界数据虽然也要采用分而治之的思想来处理,却不能直接使用传统的 MapReduce 框架,否则时延太高,计算成本也太大。
B 使用中间状态保存即时计算结果,就可以在处理增量数据时不再涉及存量数据,提升实时计算速度,这是流式计算实现高性能的主要原因。
C 相对于固定窗口,滑动窗口和会话窗口可以更好地应对网络乱序引发的时序错误问题。
D 相对于固定窗口与滑动窗口,会话窗口的大小是可变的,这样计算结果的准确度更加可控,但同时它与业务规则的耦合度也会高得多。
- 关于 NoSQL 数据库,以下说法正确的是?
A 一般不使用 SQL 语言的数据库,就可以称为 NoSQL 数据库。
B MongoDB 基于 Key 来映射行,再通过列名进行二级映射,基于列来安排存储的拓扑结构,是一种列式数据库。
C 无论 Key/Value 数据库、文档型数据库、列式数据库或者图数据库,它们都可以称为 NoSQL 数据库。
C 基于 Key/Value 数据模型的 NoSQL 数据库具备了极好的可伸缩性,通过 Key 进行数据分片也更利于 MapReduce 并行计算的实现
性能工程实战课
- 在性能项目中,是否必须给出生产环境中的性能参数配置建议?
A 可以不给出生产环境中的性能参数配置建议
B 根据项目重要程度判断。
C 必须给出生产环境中的性能参数配置建议。
D 根据项目周期判断。
- 在性能项目中,场景的执行结果是否有必要和线上的性能数据进行环比?
A 可以不环比。
B 根据项目重要程度判断。
C 根据项目周期判断。
D 有必要。
- 性能报告是否必须明确给出具有业务含义的结论
A 必须给出。
B 不必给出。
C 可以不用给出。
D 只要列出结果数据即可,不必下结论
- 性能分析决策树有什么价值
**A 性能分析决策树起到了整理技术架构的计数器的作用。
B 有了性能分析决策树,才能知道监控工具是否全 面。**
C 性能分析决策树只是一个整理知识的静态文件。
D 不是所有的性能项目都需要性能分析决策树
- RESAR 性能工程的七步法,按顺序来看,具体是哪七步?
A 分析压力场景数据-分析架构图-全局监控分析 -拆分响应时间-定向监控分析-判断性能瓶颈 的根本原因-确定解决方案
B 分析压力场景数据-分析架构图-定向监控分析-全局监控分析-拆分响应时间-判断性能瓶颈的根本原因-确定解决方案
C 分析压力场景数据-分析架构图-全局监控分析-拆分响应时间判断性能瓶颈的根本原因~定向监控分析-确定解决方案
D 分析压力场景数据-分析架构图-拆分响应时间-全局监控分析-定向监控分析-判断性能瓶颈的根本原因-确定解决方案
- RESAR 性能工程强调的监控理念概括起来是
A 集中统一的监控平台
B 先全局监控,后定向监控
C 自上而下的监控策略
D 自左向右的监控策略
- 在性能测试工具提供的数据或图表中,最为重要的是
A. 吞吐量图、点击率图
B. 资源使用率图
C. TPS图、响应时间图、错误率图
D. 线程数、TPS图、响应时间图
- 性能场景中的参数化数据应该满足以下哪几点要求
A 参数化数据可以使用少星数据模拟大星用户。
B 符合真实用户输入的数据。
C 参数化数据要尽可能地多。
D 符合真实环境中的数据分布直方图
- 当性能测试环境和生产环境不一致时,如何针对测试环境中的最大容量推算出生产环境的最大容量
A 根据CPU个数进行推算
**B 必须通过建模的方式进行推算,在建模过程中要考虑到每个性能配置参数(包括软件配置和硬件 配置)。**
C 根据网络带宽进行推算。
D 根据单机内存大小进行推算
- 在 RESAR 性能工程中,稳定性场景强调了哪几个要点 A资源使用率 B场景时长C压力量级D业务积累量
- 在 RESAR 性能工程中,容量场景的要点是
A 确定容量场景中的业务模型、铺底数据、软硬件环境信息等前提条件。
B 执行过程中需要根据动态曲线判断性能瓶颈是否已经出现
c 在容量场景执行结束时,要环比业务模型是否与方案中的一致。
D 在容量场景执行过程中,要根据具体情况做适当的场景调整。
- 在 RESAR 性能工程中,性能场景包括哪几类
A 基准场景
B 容量场景
C 稳定性场景
D 异常场景
- 性能场景必须满足以下哪两个条件
A 分时
B 递增
C 连续
D 分段
- 性能方案是否需要包括性能场景执行的具体执行策略
A 大概描述即可
B 不必包括
C 必须包括
D 描述部分即可
- 在 RESAR 性能工程中,监控模型的设计逻辑是什么
A 根据手上已有的工具监控各类组件。
B 根据被测系统的架构中包含的组件设计监控,要求监控设计及具体的落地实现需要覆盖性能分析决策树中的全局计数器。
C 根据场景设计监控,
D 根据用户习惯设置监控。
- 性能项目中的业务模型是否必须符合真实的线上业务模型
A 大体符合就好
B 必须符合
C 不必符合
D 无所谓
- 性能需求指标要细化到哪种程度才可测
A 性能需求指标要细化到每个业务接口。
B 性能需求指标要明确说明业务指标和技术指标,以便做为性能项目的结束标准。
C 性能需求指标只描述到整体系统容量即可。
D 性能需求指标不用同时包括TPS和响应时间
- 性能需求指标包括哪两大角度
A 时间指标
B 业务指标
C 容量指标
D 技术指标
- RESAR 性能工程和性能测试的区别
A. RESAR性能工程强调从业务到运维的完整过程,而性能测试只是一个工作阶段。
B. 和传统的性能测试区别不大。
C. RESAR性能工程强调了各个环节的具体实施价值,性能测试缺少环节。
D. CRESAR性能工程可以保证线上容量,性能测试做不到保证线上容量
- 在性能项目中,是否需要给出明确细节的优化建议
A 可以不用给出。
B 必须给出
C 不必给出
D 只要列出监控数据即可,不必给出优化建议
许式伟的架构课
- 以下关于异地多活设计技巧,哪个是不正确的?
A. 为了保证用户的良好体验,提升竞争力,我们应该保证所有业务异地多活
B. 由于物理规律的限制,无法保证数据的实时一致性,但我们可以保证数据的最终一致性
C. 存储系统的同步方式可能难以满足业务需求,我们可以用消息队列来同步
D. 虽然系统无法完全避免故障的时候影响很小一部分用户,但我们可以补偿他们
- 以下哪种可扩展架构模式适合IDE软件(例如Eclipse、IDEA)开发?
A. 分层架构
B. SOA
C. 微服务
D. 微内核
- 以下关于微服务的说法,哪些是错误的?
A. 微服务可以大幅提升系统处理性能
B. 微服务拆分越细越好
C. 微服务可以大幅提升团队开发效率
D. 微服务就是SOA在互联网的应用
- 常见的微服务拆分有哪些方式?
A. 基于业务分析出领域模型,然后按照领域模型进行拆分
B. 基于性能拆分,将性能要求高的系统拆分出来
C. 基于可靠性拆分,将系统拆分的越简单越好,因为系统越简单可靠性越高
D. 基于可扩展性拆分,将稳定的业务和不稳定的业务拆分成不同的微服务
- 以下关于互联网业务的技术演进的说法,哪些是正确的?
A. 用户规模的增长是驱动技术演进的核心动力之一
B. 初创期业务就应该做到大而全,以此来提升用户体验
C. IT技术不断的在发展,企业的技术应该保持和业界技术同步以保持竞争力
D. 随着企业不断成长,业务也会越来越复杂,系统也需要不断演进
- 以下关于互联网架构模板的说法,哪个是错误的?
A. 设计一套通用的文件存储系统支撑所有文件的存储
B. 尽量选择成熟的框架,避免盲目追逐新技术
C. CDN、DNS、LVS、Nginx可以组合起来提供优质的服务
D. 由于各企业业务差异很大,很难提炼出一套通用的业务系统或者组件
- 以下关于互联网平台的说法,哪些是正确的?
A. 运维平台四大职责是:配置、部署、监控、应急
B. 测试平台基本架构包括:用例管理、资源管理、任务管理、数据管理
C. 数据管理包括数据采集、数据存储、数据访问、数据统计
D. 管理平台核心职责是权限管理,包括身份认证、权限控制
- 以下哪些是架构重构相关的技巧?
A. 列出架构当前存在的问题,逐项解决
B. 架构重构的时候充分与关联方沟通,包括产品、运维、其它配合团队
C. 优先将紧急的事项落地
D. 将架构问题分类,一段时间类聚焦一类问题
- 作为架构师,应该如何使用开源项目?
A. 挑选功能最强大的开源方案
B. 开源项目已经被很多人用过了,也经过考验了,直接拿来用就可以了
C. 尽量避免改开源项目的源码,如果有需要直接给开源项目贡献代码
D. 如果开源项目不合适,那还是要自己开发符合自己业务需求的系统
- 以下哪个说法不是架构设计原则相关的宣言?
A. 合适优于业界领先
B. 简单优于复杂
C. 演化优于一步到位
D. Keep it Simple and Stupid