📅  最后修改于: 2023-12-03 15:14:05.298000             🧑  作者: Mango
本次面试是一次关于 Cadence 的面试经历,Cadence 是一个分布式系统开发框架,它是 Uber 开发的一套分布式系统基础设施。
以上问题是我在面试中遇到的,需要在实践中解决这些问题。
分布式事务是一个在分布式系统中使用的概念。它用于确保在多个节点或者进程下,对于多个数据库或者数据资源之间的更新或者查询操作,能够保持一致性。
分布式系统中的分布式事务有两种实现方式,即:两阶段提交和补偿式事务。其中两阶段提交是传统方式,被广泛应用在分布式系统中。补偿式事务相对而言还比较新,但近年来也得到了广泛的应用。
在分布式环境下,实现分布式锁的方式有两种。一种是利用分布式锁算法如 Paxos 等等;另一种是利用分布式数据库提供的原子性操作,例如 Redis 的 SETNX。
CAP 定理指的是,在分布式数据存储系统中,一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)三者不可同时得到。其中分区容错性是必须的,因此在分布式系统中我们往往会在一致性和可用性之间做取舍。
在 Cadence 中,Task 可以看做是一个具体的、独立的工作项,它由 Workflow 调度执行。而 Workflow 可以看做是一类相似的、连续的工作项的调度和执行,同时 Workflow 还可以具有状态和面向事件的机制。
在工程化实践方面,我主要的工作经历是做前端开发。在具体的工作中,我经常使用自动化构建工具来提高效率,例如使用 Webpack 打包应用程序,使用 ESLint 来规范代码规范。
这次的 Cadence 面试经历比较有一些挑战性,充分考察了我的分布式系统理解和实践经验。同时也让我深刻体会到了技术和工程化思维的重要性。