时隔两年决定重拾博客,对自己经验及感悟做一下记录,并不想教导什么,只想一方面可以沉淀自己的经验,另一方面如果能帮助别人就再好不过了。
前段时间有一大型电商客户在检查目前已有支付系统不足时描述到,目前系统依赖混乱,职责错位,应用间还存在交叉访问数据库,单表数据量大,效率低下,测试资源竞争严重等。
针对这样的现状,只有从整体架构的角度来审视,回复观点如下
从网络硬件架构角度
- 动静分离,静态资源缓存;
- 内外网络分离,提高内部应用访问安全性
- web应用、业务应用、核心应用、数据库网段分离,提高安全性、稳定性及可扩展性;
- 用户网络与银行机构网络分离,提高安全性和稳定性
- 数据库读写分离,对只读类操作如(报表相关可从只读库即可完成,避免对生产服务器产生资源危机)
- 数据库表进行分区、分表,避免随着时间及业务量的持续增长而导致瓶颈
从业务架构角度
- 分离业务入口与出口,将变化集中在轻量的端对端交互层面
- 分离B2C交易、充值、提现等,做到不相关业务分离;
- 分离不同职能的运营服务,如资金管理、风控管理、客户管理等;
- 抽取核心服务,如会员账户、支付引擎、清结算、资金渠道管理等;
- 抽取基础支撑服务,如算费、流量、限额限次等;
- 建立会计核算机制,保证资金入账准确性;
- 建立原始凭证复核机制,保障凭证流的完整性和一致性。
从系统架构角度
- 以业务架构为基础,做到服务分层,如入口层(web应用、收单网关、会员网关)等;业务应用层;核心服务层;出口层(资金渠道、对外沟通),服务依赖之上而下;
- 根据服务规模,抽离公共服务和公共组件。公共服务包括:统一缓存、统一文件、统一消息、统一日志等;公共组件包括:字符串、金额等一些基础编码工具;
- 规范框架标准,避免不同成员使用不同的技术而带来的额外学习维护成本;
- 缩短同步链,非高同步要求的都可以采用异步可靠消息队列完成整体业务链路,以提高吞吐率及相应时间;
- 减少事务块,以减少数据库链接占用时间和锁时间;
- 对于竞争频繁的资源需要结合业务角度,采用缓冲队列模式,减少竞争,而不是光从技术角度解决并发;
- 服务与服务之间采用接口方式调用,提高服务可见度及变化封装性。
相关推荐
在第三方支付架构设计中,账户体系扮演着至关重要的角色。第三方支付是指由非交易双方的独立机构提供的交易平台,它与多家银行签约,为用户提供安全、便捷的在线交易服务。例如,支付宝、财付通和微信支付等,这些都...
### 第三方支付架构设计之账户体系详解 #### 一、第三方支付概述 ##### 1.1 定义与特点 第三方支付是指通过第三方独立机构提供的交易支持平台来完成的支付方式。这种机构通常与国内外各大银行签约,并具备一定的...
本建议书的主要目的是阐述第三方支付系统的必要性、需求分析、系统设计目标及原则,以及详细的系统架构设计方案。它将为XX集团的决策者提供技术性的指导,帮助他们理解并评估该系统实施的可行性和价值。 1.2 阅读...
本文档是关于第三方支付系统总体方案的设计说明书,旨在为读者提供一...此文档全面涵盖了第三方支付系统的设计各个方面,从需求分析到技术实现,再到系统架构和接口设计,为构建高效、安全的支付平台提供了详尽的指导。
本文档旨在提供一个第三方支付系统的详细设计方案,覆盖了系统的需求、设计原则、架构以及功能实现等多个方面。 1.1 文档说明 本方案说明书V1.0由XXX创建于2019年8月6日,旨在为项目的实施提供清晰的指导,包括对...
- 在线支付主要依赖第三方支付,线下支付则包括扫码支付、刷卡和智能POS。 - 用户端和商户端分别由不同的系统维护,2B业务通常使用在线支付,大额订单可能通过线下银行转账。 2. **现有问题**: - 不同业务团队...
**分层架构设计**遵循了公司统一的应用架构原则,将第三方支付功能置于DataLayer中,每种支付方式作为一个独立组件。Model层位于各自组件内,避免跨层访问。BusinessLayer包含核心逻辑类,如xxxLogic、xxxHelper、...
通过研究passcloud源码,新手可以学习到微服务架构的设计原则,了解如何使用Spring Boot构建服务,如何利用MyBatis进行数据库操作,以及如何集成和使用各种第三方库。同时,遇到并解决编译错误的过程也能提升问题...
基于微服务原则设计电商项目,使用多种诸如Eureka、Feign、Hystrix、Ribbon、Zuul、Config等技术,另外基于虚拟化技术Docker+Jenkins实现程序自动发布、基于Mycat实现第三方支付接入、整个项目的高并发测试等。...
项目可能采用了模拟银行接口或者第三方支付平台如支付宝、微信支付的SDK来处理实际的支付操作。同时,为了保证交易的安全性,系统会涉及到加密算法和安全策略。 4. **数据库设计**:源码中包含了数据库部分,这意味...
在中国电子商务和第三方支付领域,支付接口的统一与标准化至关重要,因为这直接影响到商家与消费者的交易体验。"bankinterface"项目正致力于解决这个问题,为各种在线业务提供了一个一致且高效的支付接入解决方案。...
在软件开发领域,C# MVC(Model-View-Controller)架构被广泛用于构建Web应用程序,因为它提供了良好的结构分离,使得代码易于维护和扩展。MVC模式将应用分为三个主要部分:模型(Model)负责数据处理和业务逻辑,...
1. **支付系统概述**:支付系统是连接消费者、商家、银行和第三方支付机构的桥梁,其目的是确保交易安全、高效地进行。产品经理需要理解支付系统的基本构成,包括前端用户界面、后端处理、支付网关、风险控制和结算...
此外,可能还包括了与各种第三方支付平台(如支付宝、微信支付等)的集成。 3. Cookie软件:Cookie在Web开发中通常用来存储用户信息和会话状态。在这个上下文中,Cookie软件可能指的是一个用于管理用户会话、购物车...
系统架构上,腾讯开放平台基于API体系构建,提供了OpenID等认证体系,使得平台能够安全地支持第三方开发者和服务提供商接入,同时保证用户的身份安全。此外,腾讯开放平台也支持QQ互联,让开发者可以借助QQ的关系链...
在Java中实现支付功能,通常会用到第三方支付SDK,如支付宝的Alipay SDK或微信支付的WeChat Pay SDK。开发者需要理解如何配置商户信息、如何处理支付请求和响应、以及如何处理支付状态的回调通知。此外,还需要考虑...
针对第三方支付平台的运营风险,由于第三方支付服务机构的建立标准相对较低,行业管理体系不够健全,加之支付平台开发的不均匀性,导致其运营风险相对较大。因此,在使用第三方支付服务时,应当注意选择那些商业信用...