通用支付服务
技术栈和架构:
技术栈:Java、Spring框架、Spring Boot、MySQL、Redis、RabbitMQ、Docker等。
架构:采用微服务架构,将支付系统拆分为多个独立的服务,每个服务专注于特定的功能,通过RESTful API进行通信。
核心组件:
支付网关:负责接收支付请求并进行路由,将请求转发给相应的支付服务。
支付服务:处理具体的支付逻辑,包括生成支付订单、调用第三方支付平台、处理支付回调等。
订单管理:负责生成、更新和查询订单信息,与支付服务进行交互。
支付通知:发送支付结果通知给顾客和商家,确保双方得到及时的支付状态更新。
优化:
1、高并发支付请求:
水平扩展:采用微服务架构,将支付系统拆分为多个独立的服务,每个服务负责处理特定类型的支付请求,从而提高系统的并发处理能力。
缓存和异步处理:使用缓存技术(如Redis)缓存支付订单和支付结果,减少对数据库的访问。同时,采用异步处理机制,将支付请求放入消息队列(如RabbitMQ),提高系统的吞吐量和响应速度。
2、第三方支付平台集成:
抽象支付接口:设计一个统一的支付接口,将各个支付平台的差异进行抽象和封装,简化对接过程。
配置化管理:将第三方支付平台的相关配置信息(如API密钥、回调URL等)放入配置文件中,灵活管理和切换支付平台。
异常处理和重试:针对与第三方支付平台的通信过程中可能出现的网络异常、超时等情况,进行异常处理和重试机制,保证支付的可靠性。
3、支付回调和订单状态更新:
支付回调机制:与第三方支付平台约定支付回调接口,接收支付结果通知,并根据支付结果进行订单状态更新。
异步通知:使用消息队列或异步消息机制,将支付结果通知发送给顾客和商家,确保双方能够及时收到支付状态的更新。
院前复杂电子病例、120调度出车系统的开发、120调度的支付系统、医院内部oa系统
从一个单机的系统,拆分成为一个120调度系统集群、一个电子病历系统集群、一个支付系统集群和车辆管理系统集群,
升级到springcloud集群,使用了mongo+redis的组合,完成了多个医生同时编辑患者信息的能力。
服务框架使用 SpringBoot/SpringCloud
使用微服务架构拆分出各个功能模块,使用SpringCloud全家桶,初步完成微服务架构,进行对Eureka Server服务注册和客户端负载均衡的研究
多方数据对接使用RabbitMQ、Kafka等消息中间件,完成业务解耦和多数据源数据处理
参与前端向Vue过渡,独立完成部分全栈需求
湖南省胸痛数据平台
业务发展整合省市胸痛/卒中救治平台,系统需要与多方数据对接共享,实时接收不同类型的患者数据,进行批量数据转换。为了更好的利用带宽,数据传输压缩、redis缓存技术和统一视图技术。