获得徽章 0
day16
随着业务发展和复杂性增加,微服务成为解决方案之一,解耦服务、降低复杂度、提高可维护性,但也带来了分布式事务的挑战。传统的数据库事务难以处理跨库、跨服务的一致性需求,如跨行转账、微服务化的订单系统等。为解决这些问题,Go-Zero与DTM联合推出了分布式事务解决方案。

通过Go-Zero与DTM的整合,实现分布式事务变得简单。在一个示例中,使用Etcd作为注册中心,通过配置DTM来无缝接入Go-Zero。整个流程包括配置DTM、启动Etcd、启动DTM、运行Go-Zero服务以及发起DTM事务。这种集成在Go-Zero代码中的实现很简洁。

为开发接入DTM,仅需导入DTM Go-Zero驱动,调用相关函数配置驱动和地址。通过生成消息型分布式事务并提交,实现跨服务调用,保证一致性。

在动态调用方面,Go-Zero与DTM结合的方式类似于HTTP的POST请求,其中目标地址、路径和数据等参数都被设置好,以便DTM发起完整的调用。

此外,还提到了其他接入方式,如直连和K8S。总体而言,Go-Zero与DTM的集成为解决微服务架构下的分布式事务问题提供了简洁有效的解决方案。
阅读来源:juejin.cn
展开
评论
day15 技术问题-经典网络模型
阅读来源:juejin.cn
醒酒器于2023-08-22 15:41发布的图片
评论
day14
**分布式事务与CAP理论:应对复杂性**

分布式系统常遇到事务处理问题。本文探讨分布式事务、ACID特性、CAP理论及解决方案,应对复杂性。

**1. 分布式事务概念与问题**

分布式事务:参与者、服务器、资源分布在不同系统节点,要保证所有操作全部成功或失败,确保数据一致。

**2. ACID特性与本地事务**

传统数据库事务的ACID特性:

- **原子性:** 操作全部成功或失败。
- **一致性:** 保证事务前后数据库一致。
- **隔离性:** 并发事务不干扰。
- **持久性:** 提交后结果永久保存。

**3. CAP理论:权衡三个特性**

- **一致性:** 所有节点同数据。
- **可用性:** 每请求有响应。
- **分区容错性:** 处理网络分区。

**4. 分布式事务解决方案**
- **两阶段提交(2PC):** 参与者与协调者达成一致,可能影响可用性。
- **补偿性事务(Saga):** 小事务补偿,复杂但灵活。
- **分布式事务中间件:** 如TCC机制,根据需求权衡一致性与可用性。

**5. 总结**
分布式事务面对多种挑战,需考虑一致性、可用性与分区容错性。理解ACID与CAP可助设计与应对。在选择方案时,需根据需求与系统权衡,避免过度复杂与成本。
阅读来源:juejin.cn
展开
评论
day13
这是一篇关于Git工作流的介绍和讨论。它详细解释了主流的Git工作流,针对不同团队和项目的需求,介绍了集中式工作流、功能分支工作流、Gitflow工作流和Forking工作流等不同的工作流模型。文章提到了这些工作流各自的优缺点,并给出了一些实际案例和操作建议。

在讨论中,文章也提到了如何优化工作流,以及规范工作流程的准则。它介绍了如何规范Commit信息、如何书写合格的Pull Request(PR)以及Code Review的原则和目标。此外,文章还附赠了一些在Github中常用的黑话和缩略语,以及总结了全文的主要内容。

总体而言,这篇文章深入浅出地介绍了Git工作流的不同类型和应用场景,为开发团队提供了一些建议和指导,以便更高效地进行协同开发和代码管理。阅读来源:juejin.cn
展开
评论
day12这篇文章主要涵盖了关于架构的定义、架构师的职责以及设计高性能、高扩展性和高可用性架构的原则和观点。在开始正文之前,文章提出了三个问题,分别涉及架构、架构师定义与职责、以及如何设计高性能、高扩展性、高可用性的架构。

**1. 架构**
**1.1 什么是架构**
架构是指软件系统的草图,描述了系统的抽象组件及其之间的关系和通信方式。它是满足客户需求的设计方案,包括模块、组件以及它们之间的关系。软件架构具有灵活性,能够根据用户需求不断演化。
**1.2 框架、架构、模块、组件的区别与联系**
- 框架(Framework)是为实现特定任务或业界标准而定义的一组规范,提供基础功能。比如MVC框架。
- 架构(Architecture)是指整体的设计方案,描述系统的组件和关系。
- 模块和组件可以从角度上区分,模块强调职责分离,组件强调单元复用。
**1.3 架构设计要素和原则**
架构设计要注意模块和组件的职责明确、组件间关联关系、遵循清晰约束和指导原则等。设计原则包括合适原则、简单原则和演化原则。

**2. 架构师**
**2.1 架构师职责**
架构师负责选择主要技术、设计系统框架结构、搭建实施,指导开发人员。架构师需要管理团队,确保团队具有良好的开发节奏和良好的团队组织结构。
**2.2 架构设计浅谈**
- **CAP原理:** Consistency(一致性)、Availability(可用性)、Partition tolerance(分区容忍性)。
- **高性能、高可用、高扩展:** 需要在设计中考虑加机器实现高性能和高可用,以及选择合适的状态决策机制。高扩展性的设计要注意识别业务变化,设计稳定且易于修改的模块和通信机制。
- **安全、成本:** 功能安全和架构安全分别处理功能性威胁和架构层次的威胁。成本作为一个约束,需要创新来实现高级别的架构目标。

这篇文章涵盖了架构的基本概念、架构师的职责以及设计高性能、高扩展性和高可用性架构的原则。文章强调了架构师需要具备技术储备、管理团队能力以及对不断变化的需求进行合理的识别和设计。
阅读来源:juejin.cn
展开
评论
day11前后端分离项目的接口规范是确保前后端之间高效沟通与协作的关键。分离项目将前后端开发职责明确分离,通过明确的接口规范可以有效避免沟通与联调产生的问题,提高开发效率。以下是一些关键点,可以帮助定义接口规范:
**1. 接口设计原则:** 接口应当符合 RESTful 风格,采用统一的命名规则,如使用名词表示资源、使用HTTP动词表示操作。例如,获取用户信息可以使用 GET 方法,创建用户可以使用 POST 方法。
**2. 请求与响应格式:** 定义请求和响应的数据格式为 JSON,以便前后端数据的传输和处理。确保请求和响应数据的结构清晰明了。
**3. 参数传递:** 使用统一的参数传递方式,比如将参数封装在请求的 body 中,通过 JSON 形式传递。使用合适的参数命名,使其具有可读性和表达性。
**4. 接口路径:** 统一定义接口路径,将版本信息和资源名称结合在路径中,如 `/v1/user` 表示版本为1的用户资源。
**5. HTTP状态码:** 使用合适的 HTTP 状态码来表示接口的执行情况,如 200 表示成功,401 表示未认证等。
**6. 错误处理:** 确保接口在出错时返回清晰的错误信息,包括错误码和错误描述,以便前端能够正确处理错误情况。
**7. 接口文档:** 编写详细的接口文档,包括每个接口的路径、HTTP方法、请求参数、响应数据格式等,帮助前后端开发人员理解接口的使用方式。
**8. Mock 数据:** 为了使前端能够在接口未实现时进行开发,提供Mock数据平台,使前端能够模拟接口数据进行开发和调试。
**9. 参数校验:** 在后端对请求参数进行校验,确保传入的参数符合预期,避免不必要的错误。
**10. 安全性:** 考虑接口的安全性,对涉及到敏感数据和操作的接口进行鉴权和身份验证。
**11. 异常处理:** 在后端代码中对异常进行合理的处理,避免未捕获异常导致系统崩溃或数据不一致。
通过遵循上述规范,前后端团队可以更加高效地协作,减少联调时的问题,提高开发效率,确保项目顺利进行。同时,随着技术的发展,前后端分离模式也将逐渐演变,为开发带来更多便利与可能性。
阅读来源:juejin.cn
展开
评论
下一页
个人成就
文章被阅读 865
掘力值 115
收藏集
1
关注标签
8
加入于