程序员面试的短短半小时内,通过500行代码征服HR顺利通过面试。

程序员面试的短短半小时内,通过500行代码征服HR顺利通过面试。

架构设计

整理架构设计

程序员面试的短短半小时内,通过500行代码征服HR顺利通过面试。

从支付系统、日志系统、用户系统从获取用户的离线数据,保存到Hadoop集群,并对Hadoop集群中的数据进行处理,提炼出基础数据。然后经基础数据存放在Redis中。

从消息中心实时消费支付系统发送出来的支付订单信息,编写storm程序对实时订单信息处理。

storm程序的主要逻辑如下:

程序员面试的短短半小时内,通过500行代码征服HR顺利通过面试。

从数据库中读取业务配置的规则数据,规则数据从规则配置系统上可视化配置

对订单不同维度的数据进行校验,将触发规则的信息存放到数据库

管理平台从数据库获取触发规则的信息进行处理

程序员面试的短短半小时内,通过500行代码征服HR顺利通过面试。

功能模块设计

数据收集模块 略,详见Hadoop基础

离线数据处理模块 略,详见Hadoop基础

消息中心模块,略,详见实时计算基础之Kafka增强

Storm程序,负责定时读取规则,实时校验

数据模型,主要是规则模型,将用户配置的规则信息保存到数据库中,以及将触发信息保存到数据库中。

报表系统,略

数据模型设计

condition_order_monitor

用户配置的规则信息,一条规则中有多个条件

Field

Type

Comment

Id

Int(11) not null

Name

Varchar(250) null

任务的中文描述

ruleId

Varchar(64) null

任务在系统中的唯一编号

Compare

Varchar(50) null

与字段比较的方式,1:等于2:包含3:大于4:小于

value

Int(1) null

同一类型的参数用逗号分隔,不同类型的参数用|分隔 如1,2,3|a,b,c

createUser

Varchar(50) null

创建的用户

updateUser

Varchar(50) null

修改的用户

createDate

Varchar(50) null

创建的时间

updateDate

Varchar(50) null

修改的时间

rule_order_monitor

分解出针对订单最小判断条件

Id

Field

Desc

groupdId

createUser

1

IS_NORMAL_IP

用户是否在常用ip下单

用户维度

Sevnoilem

2

IS_NORMAL_DEVICE

用户是否在常用设备上下单

用户维度

(null)

3

IS_NORMAL_ADDRESS

用户收货地址是否是常用收货地址

用户维度

(null)

4

IS_NORMAL_MOBILE

用户收获手机号是否是手机号码

用户维度

(null)

5

IS_CHANGE_ACCOUNT_PASSWD

用户近期是否修改过登录密码

安全信息

(null)

6

IS_CHANGE_PAYMENT_PASSWD

用户近期是否修改过支付密码

安全信息

(null)

7

IS_CHANGE_MOBILE

用户近期是否修改过手机号

安全信息

(null)

paymentinfo_order_monitor 订单信息

Field

Type

Comment

orderId

Int(11) not null

订单编号

createOrderTime

Varchar(250) null

订单创建时间

paymentId

Varchar(64) null

支付编号

shopId

Varchar(50) null

支付时间

shopName

Int(1) null

商铺编号

shopMobile

Varchar(50) null

商铺名称

Ip

Varchar(50) null

商铺电话

User

Varchar(50) null

商户ip

userMobile

Varchar(50) null

用户名

products_order_monitor 订单中的商品信息

Field

Type

Comment

OrderId

Int(11) not null

订单编号

Id

Varchar(250) null

商品编号

Name

Varchar(64) null

商品名称

Price

Varchar(50) null

商品价格

Category

Int(1) null

商品分类

Promotion

Varchar(50) null

商品促销价

Num

Varchar(50) null

商品数量

trigger_order_monitor``rule_order_monitor 触发规则的订单记录

Field

Type

Comment

Id

Int(11) not null

触发编号

OrderId

Varchar(250) null

订单编号

ruleId

int(3) null

规则编号

createDate

Timestamp not null

触发时间

updateDate

Timestamp not null

修改时间

获取方式:

1.在你手机的右上角有【关注】选项,或点击我的头像,点击关注!(关注我)

2.关注后,手机客户端点击我的主页面,右上角有私信,请私信发我:编程

电脑已经设置好了关键词自动回复,自动领取就好了!这几天上万个消息,真的回复不过来,所以回复的时候请注意关键词!

其实做为一个开发者,有一个学习的氛围跟一个交流圈子特别重要这里请私信我“编程”不管你是小白还是大牛欢迎入住大家一起交流成长。小编会在里面不定期分享干货源码,包括我精心整理的一份c++零基础教程。欢迎各位感兴趣的的小伙伴。

学习思路:

程序员面试的短短半小时内,通过500行代码征服HR顺利通过面试。

学习资料:

程序员面试的短短半小时内,通过500行代码征服HR顺利通过面试。

相关推荐