代码改变世界

[置顶]2020年写的文章整理到了这里,请查收!

2021-01-19 14:15 by 春哥大魔王, 555 阅读, 0 推荐, 收藏, 编辑
摘要:写在前面 2020年默默地还是写了很多东西的,微信有了标签功能之后,整理起文章来还是比较方便的。 从去年到今年准备写几个专辑,围绕于自己做交易系统或是一些通用解决方案的,当然自己平时爱叨叨的毛病也整理了一个专辑,回顾起来还比较有意思。 复杂度治理 系统变大之后,对应的复杂度就上来了,除了需要解决各种 阅读全文

高频交易支付架构并不复杂

2019-09-27 14:19 by 春哥大魔王, 1284 阅读, 0 推荐, 收藏, 编辑
摘要:写在前面 支付系统是整个交易系统中相当核心的一部分功能,以我们的交易中台为例,通过领域方式的拆分,支付架构隶属于订单团队,在整个用户下单之后进行支付,支付之后成单进入交易履约流程。 支付系统由于本身和金融相关,不像其他高频系统面对海量请求可以大量使用缓存,异步mq等方式解决三高问题。支付系统对数据一 阅读全文

支付类系统数据处理和数据中台的数据处理方式有什么不同?

2019-06-17 10:26 by 春哥大魔王, 968 阅读, 1 推荐, 收藏, 编辑
摘要:数据备份之后实时性如何保证 在建立数据中台的时候,数据还是来源于各个异构的业务应用系统,实现了数据的统一,但是数据实际上是多存了一份,数据存在冗余,同时数据实时性如何来保证了?针对每个业务系统都开发数据提取接口? 数据备份的通用处理方式 能用数据层的binlog方式就用,要不就业务层拉数据,不过如果 阅读全文

系统幂等设计

2019-06-06 11:18 by 春哥大魔王, 986 阅读, 2 推荐, 收藏, 编辑
摘要:前言 幂等简单的定义: 系统中的多次操作,不管多少次,都应该产生一样的效果,或返回一样的效果。 比如实际的业务请求为创建一个活动,理论上需要根据业务形态开发幂等创建活动的接口,这样在相同参数调用接口多次创建活动时,只可以创建成功一次。 由于查询天生的是幂等请求,所以针对于查询场景可以不做业务角度的幂 阅读全文

一文读懂消息队列一些设计

2019-06-04 19:17 by 春哥大魔王, 712 阅读, 0 推荐, 收藏, 编辑
摘要:高可用 常用的消息队列的高可用是怎么设计的呢? 消息队列一般都有一个nameserver服务,用来检测broker是否存活,或者处理能力上是否存在延迟。这样在发送消息时就可以规避将消息发送到宕机的broker上,也避免因为网络等原因消息处理失败。 那么针对于以上两种情况,消息队列如何保证高可用方案的 阅读全文

DDD应对运营活动系统腐化实践

2019-06-03 08:13 by 春哥大魔王, 1264 阅读, 0 推荐, 收藏, 编辑
摘要:前言 任何人类的设计都会腐化,软件系统也不例外 腐化之谜 随着系统的规模增长和复杂度膨胀,系统会慢慢腐化。 于是改一个很简单的下单地址,就会牵动整个交易系统十几处的改动。 如何解决这种腐化之谜呢? 参考计算机系统架构: 一个复杂的计算机系统架构包括:软件系统元素,元素之间的联系,元素本身有自己特有属 阅读全文

一文读懂DDD

2019-05-28 19:18 by 春哥大魔王, 7026 阅读, 4 推荐, 收藏, 编辑
摘要:何为DDD DDD不是架构设计方法,不能把每个设计细节具象化,DDD是一套体系,决定了其开放性,体系中可以用任何一种方法来解决这些问题,但是如果一些关键问题没有具体方案落地,可能让团队无所适从。 有的小伙伴觉得DDD太虚了,具体在我们进行业务代码编写落地中DDD主要解决什么问题呢? 总结起来说主要目 阅读全文

阿里是如何处理分布式事务的

2019-05-20 11:36 by 春哥大魔王, 6458 阅读, 3 推荐, 收藏, 编辑
摘要:分布式事务中的TCC模式,貌似是阿里提出来的,所以阿里自研的分布式事务框架总是少不了TCC的影子。 服务拆分 很多系统早期都是单系统服务架构,所有业务聚合在少数几个系统中对外提供服务。随着业务发展,服务之间耦合比较严重,一般会对服务进行重构,重构的主要思想也就是围绕“拆分”展开。 比如按照功能进行解 阅读全文

核心交易系统架构演进

2019-02-19 13:20 by 春哥大魔王, 4789 阅读, 2 推荐, 收藏, 编辑
摘要:前言 随着双11进入千亿时代,电商平台正在向“全球化,娱乐互动化,无线化,全渠道”发展。 为实现全民互动,电商平台会进行低价预售,狂欢红包,购物券,红包雨,商品半价,满n减1等多种促销方式。 核心交易链路设计 每笔剁手操作都会经历一系列核心系统处理,如图: 如此眼花缭乱的玩法,底层是多个核心系统的支 阅读全文

系统服务化

2018-06-28 12:57 by 春哥大魔王, 606 阅读, 0 推荐, 收藏, 编辑
摘要:服务拆分 根据业务或组织架构进行基本服务拆分,每个服务实例会拥有专属的网络地址、独立的计算资源,并且独立部署。客户端通过访问服务实例的地址来调用服务 API。不同服务也可以相互调用。 统一配置管理 一个服务可能会跑多个实例,每个服务实例都会需要做配置。为了方便统一调整配置,我们可以把配置中心化,每个 阅读全文