企巴特易货平台

一、项目背景

随着我国经济的快速发展,我国有8000万中小企业,我们企业普遍存在着营运资金紧张、商品库存积压过多、生产能力利用不足、销售不利以及劳动力闲置等问题,30万亿的市场容量,10万亿库存待消化,国内货物交换需求旺盛,正以每年200%迅猛增长。我国货物交换贸易正处于起步阶段,其他平台风控体系不完善,品类无把控,核心技术无法建立,偏向线下区域局部化,无法让你增加长尾收益。

 

二、项目介绍

企巴特易货网是专注中小微企业易货贸易的专业易货电商平台。以互联网+的核心技术搭建移动APP交换平台,把生意人性化地搬到手机,实现简单易操作的人机合一。打破供求信息点对点的局限,让商品之间无界交换,实现“产品直接当钱花”的商品流通全新模式。

 

三、产品定位

通过商品互换,激活企业闲置的商品和空闲的服务,为中小微企业发展添加造血功能,力促企业成长。

 

四、目标用户

个体经营者,公司企业经营者,文化艺术工作者,团体组织(公益组织、商协会)

 

五、核心技术

后端:springboot、springcloud、dubbo、zookeeper、rocketMQ、redis、fastDFS、POI、ES、freeMark、webservice/nginx、redis-shake

spring、springMVC、mybatis(项目正在进行重构,故现行的有两种架构模式)

前端:H5、node.js等。

 

六、核心功能

1、订单:freeMark实现了静态化页面的功能、MQ以及redis也对防止重复下单进行了处理;

2、支付:主要有易宝支付、支付宝、微信、银联等几种支付方式,接口技术采用了webservice;

3、物流:POI处理发票信息,运输主要对接了第三方单位来完成的;

4、购物车:设置购物车中商品的过期机制;

5、商品管理、评论、商家管理、客服功能、资讯、单点登录、用户管理、推荐系统等。

服务划分也可参照模块的划分来进行。

 

七、功能逻辑图

1、整体功能架构图

图片

2、订单生成流程图

图片

3、支付功能流程

图片

4、发货功能流程

图片

5、个人订单管理逻辑

图片

6、商家订单管理逻辑

图片

7、换货退货逻辑

图片

8、购物车功能逻辑

图片

八、重点难点剖析

1、redis不停机进行数据迁移;

采用了阿里的redis-shake来实现的。

基本功能

  redis-shake是我们基于redis-port基础上进行改进的一款产品。它支持解析恢复备份同步四个功能。以下主要介绍同步sync。

  • 恢复restore:将RDB文件恢复到目的redis数据库。

  • 备份dump:将源redis的全量数据通过RDB文件备份起来。

  • 解析decode:对RDB文件进行读取,并以json格式解析存储。

  • 同步sync:支持源redis和目的redis的数据同步,支持全量和增量数据的迁移,支持从云下到阿里云云上的同步,也支持云下到云下不同环境的同步,支持单节点、主从版、集群版之间的互相同步。需要注意的是,如果源端是集群版,可以启动一个RedisShake,从不同的db结点进行拉取,同时源端不能开启move slot功能;对于目的端,如果是集群版,写入可以是1个或者多个db结点。

  • 同步rump:支持源redis和目的redis的数据同步,仅支持全量的迁移。采用scan和restore命令进行迁移,支持不同云厂商不同redis版本的迁移。

基本原理

  redis-shake的基本原理就是模拟一个从节点加入源redis集群,首先进行全量拉取并回放,然后进行增量的拉取(通过psync命令)。如下图所示:

图片

  如果源端是集群模式,只需要启动一个redis-shake进行拉取,同时不能开启源端的move slot操作。如果目的端是集群模式,可以写入到一个结点,然后再进行slot的迁移,当然也可以多对多写入。
  目前,redis-shake到目的端采用单链路实现,对于正常情况下,这不会成为瓶颈,但对于极端情况,qps比较大的时候,此部分性能可能成为瓶颈,后续我们可能会计划对此进行优化。另外,redis-shake到目的端的数据同步采用异步的方式,读写分离在2个线程操作,降低因为网络时延带来的同步性能下降。

高效性

   全量同步阶段并发执行,增量同步阶段异步执行,能够达到毫秒级别延迟(取决于网络延迟)。同时,我们还对大key同步进行分批拉取,优化同步性能。

监控

   用户可以通过我们提供的restful拉取metric来对redis-shake进行实时监控:curl 127.0.0.1:9320/metric

校验

   如何校验同步的正确性?(参考下篇内容)

 

九、其他可能产生的问题

1、保证订单的一致性;

2、支付接口付款不成功的回调;

3、并发的解决方案;

4、ES的优化、高亮以及分词;

5、某一功能按钮失效;

6、如何保证权限安全等。

 

十、电商需要了解的问题

1、日活量、并发量;

2、服务器多少个;

3、多少个服务/模块;

4、有多少张表等。

公众号:Java面试百分百

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值