📜  Cadence 面试经历 |设置 2(1)

📅  最后修改于: 2023-12-03 15:14:05.298000             🧑  作者: Mango

Cadence 面试经历 |设置 2

简介

本次面试是一次关于 Cadence 的面试经历,Cadence 是一个分布式系统开发框架,它是 Uber 开发的一套分布式系统基础设施。

面试问题
  1. 说一下分布式事务的概念和实现方式。
  2. 如果你需要实现一个分布式锁,你会怎么做?
  3. 你了解 CAP 定理吗?请简单介绍一下。
  4. 请说一下 Cadence 中的 Task 和 Workflow 的区别。
  5. 请谈谈你的工程化实践经验。

以上问题是我在面试中遇到的,需要在实践中解决这些问题。

回答
问题一:分布式事务的概念和实现方式

分布式事务是一个在分布式系统中使用的概念。它用于确保在多个节点或者进程下,对于多个数据库或者数据资源之间的更新或者查询操作,能够保持一致性。

分布式系统中的分布式事务有两种实现方式,即:两阶段提交和补偿式事务。其中两阶段提交是传统方式,被广泛应用在分布式系统中。补偿式事务相对而言还比较新,但近年来也得到了广泛的应用。

问题二:实现分布式锁的方式

在分布式环境下,实现分布式锁的方式有两种。一种是利用分布式锁算法如 Paxos 等等;另一种是利用分布式数据库提供的原子性操作,例如 Redis 的 SETNX。

问题三:CAP 定理

CAP 定理指的是,在分布式数据存储系统中,一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)三者不可同时得到。其中分区容错性是必须的,因此在分布式系统中我们往往会在一致性和可用性之间做取舍。

问题四:Cadence 中的 Task 和 Workflow 的区别

在 Cadence 中,Task 可以看做是一个具体的、独立的工作项,它由 Workflow 调度执行。而 Workflow 可以看做是一类相似的、连续的工作项的调度和执行,同时 Workflow 还可以具有状态和面向事件的机制。

问题五:工程化实践经验

在工程化实践方面,我主要的工作经历是做前端开发。在具体的工作中,我经常使用自动化构建工具来提高效率,例如使用 Webpack 打包应用程序,使用 ESLint 来规范代码规范。

总结

这次的 Cadence 面试经历比较有一些挑战性,充分考察了我的分布式系统理解和实践经验。同时也让我深刻体会到了技术和工程化思维的重要性。