Terry Xiao

Terry Xiao

技术

从 0 开始,Vue 的搭建与开发

从 0 开始,Vue 的搭建与开发

这篇文章介绍了Vue.js框架,包括其渐进式框架特点、数据驱动模型、MVVM模式以及如何使用。此外,文章详细说明了Node.js环境搭建,包括Windows和Linux系统的安装步骤,以及如何配置NPM使用淘宝镜像。接着,文章介绍了NPM的使用,包括安装、全局与本地安装、使用package.json等。最后,文章讲述了Vue环境搭建的步骤,包括安装Webpack、Vue相关文件,并使用Vue CLI创建Vue3项目,以及如何在VS Code中配置插件。此外,还解释了NPM安装机制和实现原理。
196
0
0
2024-03-20
微服务下分布式事务模式的详细对比

微服务下分布式事务模式的详细对比

本文探讨了在微服务架构中处理分布式事务的多种模式和策略。文章首先介绍了双重写入问题,并分析了在分布式系统中协调对多个记录系统写入操作的主要方式。 文章首先讨论了模块化单体架构,它通过将微服务转换为库模块并共享数据库实例,以实现强写入一致性。接着,文章介绍了两阶段提交架构,它通过分布式事务管理器和可靠的事务日志存储层,确保分布式系统中不同数据源之间的原子性更新。 随后,文章探讨了编排式架构,其中某个服务作为协调者和编排者,负责调用其他服务并执行必要的回滚操作。文章还介绍了协同式架构,其中每个服务独立执行本地事务并发布事件,以触发其他服务的本地事务。 最后,文章讨论了并行管道架构,其中添加一个路由服务将请求转发至多个服务,以实现并行处理。文章还介绍了监听自身模式,其中服务同时担任路由,以避免双重写入。 文章总结了各种架构模式的优缺点,并指出选择分布式事务策略时需要考虑数据一致性和可扩展性。文章最后强调,在微服务架构中,没有一种适用于所有场景的通用模式,需要根据具体需求和环境选择合适的策略。
138
0
0
2024-03-18
从 Paxos 到 Raft,分布式一致性算法解析

从 Paxos 到 Raft,分布式一致性算法解析

文章摘要: 本文深入探讨了分布式服务架构的发展历程,从集中式到微服务,再到服务网格,展现了服务架构从中心化向分布式、去中心化的演进趋势。文章首先介绍了分布式架构带来的挑战,如通信故障、请求三态和节点故障等问题,随后引出CAP理论和BASE理论,分析了分布式一致性领域的核心原则。 在CAP理论的基础上,文章详细解读了BASE理论,阐述了如何在保证基本可用性和最终一致性的同时,允许系统在数据一致性上做出一定的牺牲。接着,文章重点介绍了Paxos算法和Raft算法,这两种算法是分布式一致性领域的重要里程碑。 Paxos算法通过一系列严格的约束条件,确保了在分布式系统中对某个值达成共识。文章通过故事引出Paxos算法的约束条件,并通过协议流程详细解释了Paxos算法的实现原理。随后,文章介绍了Raft算法,该算法将Paxos算法的流程拆分为三个子问题:选举、日志复制和安全,并通过图示和动画演示了Raft算法的选举和日志复制过程。 最后,文章总结了分布式一致性算法的发展历程,强调了Paxos算法和Raft算法在分布式一致性领域的地位,并指出分布式一致性算法的前沿理论仍在飞速发展,值得我们继续学习和关注。
8
0
0
2023-10-11
对抗软件复杂度的战争

对抗软件复杂度的战争

本文从多个角度探讨了软件复杂度形成的原因,并提出了应对策略。 首先,文章指出研发效能下降的主要原因是软件复杂度的指数上升。随着企业规模的扩大,技术栈的复杂度也随之增加,导致研发效率降低。 接着,文章将软件复杂度分为本质复杂度和偶然复杂度。本质复杂度源于问题域本身,无法消除;偶然复杂度则源于解决方案,可以通过技术选型和架构设计来降低。 文章进一步分析了复杂度爆炸的原因,包括业务复杂度、分布式系统规模、团队规模和关键干系人目标等因素。同时,指出错误的应对方式,如设置不可更改的 Deadline 和用“更先进”的技术替换现有系统,往往收效甚微。 针对软件复杂度,文章提出了以下应对策略: 1. 宏观层面:通过 Wardley Map 分析技术战略,将远离用户价值的模块购买现成的商业产品,降低系统复杂度。 2. 微观层面:控制代码质量,编写高质量的单元测试,以降低软件复杂度。 3. 系统架构层面:关注系统架构,确保架构设计合理,降低系统复杂度。 4. 工程师文化层面:培养良好的工程师文化,以交付高质量软件中间产物为荣,以交付低质量软件中间产物为耻。 最后,文章强调软件复杂度是人的行为引起的,需要从多个层面制定决策,努力为公司创造价值。
18
0
0
2023-08-04