今日分享开始啦,请大家多多指教~
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 编写技巧。
今日份分享已结束,请大家多多包涵和指点!