阿里二面,支付系统构建?被 Spring 难倒了!

今日分享开始啦,请大家多多指教~

Spring Boot 已经成为 Java 程序员必须掌握技术之一。当下大部分公司的主流技术栈是 Spring Boot 2.X,包括爆火的微服务等都是基于 Spring Boot 开发的。

Spring Boot 这么重要,那你在项目中可以熟练运用吗?如果你有手机,有支付购物的需求,那么不可避免的使用到支付宝与微信两大支付应用。普通人只是支付,但是作为与支付系统、功能开发的后端工程师来说,这里却有不少值得思考的问题。

基础服务的构建

在支付系统的微服务架构中,基础服务的构建是重中之重。所以这里带来的就是技术选型难。大多数人争论的焦点集中在两个候选技术:RPC or Restful。

  • RPC:以Apache Thrift为代表的二进制,优势是支持多语言,四层通讯协议,性能高,节省带宽。劣势是无法穿透防火墙。
  • Restful:以Spring Cloud为代表,优势是能穿透防火墙,使用方便,与语言无关,劣势在性能和带宽占用。

所以这里的选择就成了难题,选哪个好?当然这里要分场景,考虑到我们是支付系统的的搭建,选 RPC 更合适。通过注册中心调用服务,选 Zookeeper + Dubbo,可以方便的做集群,应对大规模支付。

RPC 下的技术选型

为什么选择 RPC,这里有两个原因:

  • 安全:选择 RPC,项目对内使用,注册中心不会对外开放,HTTP 接口的鉴权也就无需担心。
  • 高效:RPC 是基于四层协议,效率相对会高一些。

代表的RPC技术选型:Apache Thrift、Dubbo、Google Protobuf,这里使用 Dubbo 与 Spring Boot 进行搭配。

系统的架构

业务架构重点要解决的三个问题:

  • 基础服务抽象与封装,复用公共业务服务;
  • 核心系统稳定性需求,解决既快又稳矛盾;
  • 提供完整的数据视图,沉淀企业核心数据;

支付每个大厂小厂都在使用。都是在做支付和财务,有的公司甚至是,因为有支付财务的经验,被录用。涉及到钱的系统,挑战新更大。

设计一个支付系统,涉及到支付理论 → 架构图 → 数据设计 → 编码设计 → 编码实现。同样大部分公司要的不只是储备,还需要能独当一面。而一些工程师在构建支付系统的的时候,也会遇到下面三个的问题。

不知道,支付怎么回事。
不知道,如何抽象支付框架。
不知道,需要用到哪些技术。

对支付平台的架构设计与系统搭建进行一个完整的构建,带你知其然,知其所以然。

  • 支付系统设计,只是储备
  • Spring boot 构建的支付应用
  • 事务、异步、消息通知、分布式锁
  • 消息发布订阅,NSQ.
  • 交易相关数据表设计。
  • 二维码微信支付。
  • 前端收银台小demo 编写技巧。

今日份分享已结束,请大家多多包涵和指点!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值