通用的PHP支付系统设计
业务->功能->实现->演进过程
1.业务架构
业务架构的前提要搞清楚我们面临的业务量有多大,增长走势是什么样,而且解决的过程,一定是一个循序渐进逐步的过程。
预计两年需要实现可以支撑月流水500万笔交易的系统。
API接口需要支持高并发和稳定性。
保证核心业务的稳定性
2.应用架构
前期为了系统快速上线,使用单体应用结构。
系统内部采用模块化开发,模块作为一个独立的小系统存在,后期随业务增长会演变成独立的微服务。因此需要划清模块的边界,处理模块之间的依赖。
3.技术架构
开发层面:
技术选型:laravel+mysql+rabbitmq+redis+elasticsearch
常规的技术栈。开发部门掌握程度高,能够快速将业务落地。
运维层面:
增加监控机制:prometheus+grafana+laravel中间件
实现监控报警,开发需要提前预警一些服务器的状态和系统应用的运行状态,能及时应对和处理峰值流量。
4.数据架构
数据表结构设计也分模块进行设计。所有表名都加上模块前缀。为后期拆库易于区分。
mysql读写分离。
一主三从设计。主库为写库,两个从库为读库,另外一个从库作为实时备库,非紧急情况下,不参与数据库负载。
数据库备份:每小时完成一次备库的快照备份。存在不同机房的不同服务器上。
可以选择