# drool规则引擎测试-手机缴费风险控制Demo
## 1-单笔金额超限;
## 2-手机号在黑名单中;
## 3-充值金额不能大于近3天平均值的3倍
# 启动服务
//mongodb启动命令中的ip跟着本机的动态ip改变<br/>
cd /usr/local/mongodb/bin<br/>
nohup ./mongod -bind_ip 192.168.0.102 &<br/>
//kafka的server.properties中advertised.listeners=PLAINTEXT://192.168.1.113:9092修改一下当前ip<br/>
cd /home/canthny/kafka_2.11-0.11.0.3<br/>
nohup bin/zookeeper-server-start.sh config/zookeeper.properties &<br/>
nohup bin/kafka-server-start.sh config/server.properties &<br/>
//redis启动本地windows的<br/>
//tanghao-bigdata-drools工程中配置mongodb和redis的ip为本地或虚拟机的ip<br/>
//tanghao-flink-demo工程中配置kafka的地址<br/>
# 数据准备
## 1、插入3天缴费数据十条,金额随机,执行TestMongodb中的testSave()方法插入数据
cd /usr/local/mongodb/bin<br/>
./mongo 192.168.0.102:27017/rule进入命令行查询数据<br/>
Mongodb常用命令<br/>
//进入库<br/>
use rule<br/>
//创建集合<br/>
db.createCollection("mobilePaymentInfo")<br/>
//查看所有集合<br/>
show collections<br/>
//查看当前库指定集合所有数据<br/>
db.mobilePaymentInfo.find()<br/>
//向当前库指定集合插入文档<br/>
db.mobilePaymentInfo.insert({"_class" : "com.tanghao.bigdata.drools.mongodb.domain.MobilePaymentInfo", "pay_order_no" : "2018092700001", "account_no" : "1234312412345234", "bank_card_no" : "62260113241234", "mobile" : "18709858763", "amount" : "12.00", "time" : "20180927 16:57:00" })<br/>
//删除文档下所有数据<br/>
db.mobilePaymentInfo.remove({})<br/>
//根据日期查询<br/>
db.mobilePaymentInfo.find({time:{'$gte':ISODate("2018-09-27"),'$lt':ISODate("2018-09-28")}})<br/>
## 2、插入手机号黑名单数据,执行TestMongodb中的insertPhoneNoBlackList()方法
## 3、计算3天内用户缴费平均金额,执行TestMongodb中的testMapReduce()方法,并将计算结果插入新表用户3日缴费平均金额中
_id即为用户的account_no,value为3日缴费平均金额
# 单元测试
*规则引擎测试:tanghao-bigdata-drools工程TestDrools单元测试中的testCase1\2\3\4方法<br/>
*规则执行顺序(pay_rule.drl文件中的salience属性):单笔限额>手机号黑名单>充值平均值<br/>
testCase1()——单笔金额超限,打印风险,金额自行修改。<br/>
testCase2()——风控判断手机号是否在黑名单中,需要事先建立黑名单表数据,TestMongodb类insertPhoneNoBlackList中key插入黑名单数据,修改手机号运行单元测试即可。<br/>
testCase3()——判断当前单笔充值额度大于用户最近一个月充值额度平均值的3倍,需要事先进行MapReduce操作,产生一段时间内平均金额数据,插入中间表,在TestMongodb类testMapReduce方法中,自行调整日期参数即可,上节数据准备中第三步已经做过可忽略,也可以自行尝试。<br/>
testCase4()——一小时内支付次数或支付金额限制,需要先跑流计算测试,将数据插入缓存中,流程暂未串起来,后续可以写个消息生产者将流计算和规则引擎串起来<br/>
*流计算测试:tanghao-flink-demo工程GetPayInfoJob中main方法
//flink demo测试,kafka生产消息
cd /home/canthny/kafka_2.11-0.11.0.3<br/>
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic CountPerHourByAccountNo2<br/>
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic CountPerHourByAccountNo --from-beginning
{"accountId":"0716","amount":"130","eventTime":"2018/09/30 02:51:00"}
{"accountId":"0718","amount":"130","eventTime":"2018/09/30 02:51:01"}
{"accountId":"0718","amount":"130","eventTime":"2018/09/30 02:51:06"}
{"accountId":"0718","amount":"130","eventTime":"2018/09/30 02:51:07"}
{"accountId":"0716","amount":"140","eventTime":"2018/09/30 02:51:02"}
{"accountId":"0716","amount":"150","eventTime":"2018/09/30 02:51:06"}
{"accountId":"0716","amount":"150","eventTime":"2018/09/30 02:51:12"}
没有合适的资源?快使用搜索试试~ 我知道了~
金融风控系统(springboot+drools)、flink流计算、mongodb.zip
共64个文件
java:50个
xml:5个
drl:3个
需积分: 5 1 下载量 56 浏览量
2024-02-24
13:05:32
上传
评论
收藏 61KB ZIP 举报
温馨提示
金融风控系统(springboot+drools)、flink流计算、mongodb.zip
资源推荐
资源详情
资源评论
收起资源包目录
金融风控系统(springboot+drools)、flink流计算、mongodb.zip (64个子文件)
demo
.idea
uiDesigner.xml 9KB
tanghao-flink-demo
pom.xml 5KB
src
main
resources
log4j.properties 235B
java
com
tanghao
flink
demo
TestAction.java 2KB
api
window
TumblingWindowUseEventTimeTest.java 2KB
TumblingWindowProcessWindowFunctionTest.java 6KB
GlobalWindowTest.java 143B
TumblingWindowAggregateFunctionTest.java 8KB
SlidingWindowTest.java 5KB
SessionWindowTest.java 144B
others
BroadcastTableTest.java 5KB
datastream
KeyByApiTest.java 2KB
UnionAndSplitStreamTest.java 3KB
FilterApiTest.java 2KB
FlatMapApiTest.java 2KB
MapApiTest.java 2KB
source
InnerSource.java 2KB
KafkaSource.java 1KB
GetPayInfoJob.java 4KB
common
Message.java 3KB
UserConsumerAmountPerMinute.java 1KB
TradeCountMinuteResult.java 1KB
ConstantKafka.java 330B
TransTypeInfo.java 995B
MessageDeserializationSchema.java 614B
test
MsgProducerTest.java 1KB
BroadcastMsgProducerTest.java 2KB
README.md 51B
drools_kie_demo
pom.xml 2KB
src
main
java
com
canthny
drools_kie_demo
test
DroolKieTestDemo.java 2KB
domain
UserInfo.java 2KB
Assets.java 1012B
tanghao-bigdata-drools
pom.xml 4KB
src
test
java
com
tanghao
bigdata
drools
test
TestMongodbJob.java 164B
TestRuleService.java 956B
TestDrools.java 6KB
TestMongodb.java 4KB
TestKafkaProduct.java 1KB
main
resources
mapreduce
mobile_payment_info_map.js 48B
mobile_payment_info_reduce.js 47B
drools
pay_rule.drl 1KB
pay_rule2.drl 1KB
application.properties 360B
META-INF
kmodule.xml 240B
com.tanghao.bigdata.drools.rules
pay_rule.drl 2KB
java
com
tanghao
bigdata
drools
DroolsStarter.java 480B
controller
TestPayRule.java 1KB
mongodb
service
MobilePaymentInfoService.java 338B
impl
MobilePaymentInfoServiceImpl.java 767B
config
SpringMongoConfig.java 2KB
service
PhoneNoBlacklistService.java 2KB
MobilePaymentRuleService.java 3KB
enums
EnumRuleResponseLevel.java 1KB
redis
RedisConfig.java 2KB
util
DateUtil.java 12KB
domain
DefeatMapReduceObject.java 949B
MobilePaymentInfo.java 3KB
response
RuleResponse.java 1KB
request
MobilePaymentRequest.java 1KB
BaseRequest.java 625B
PhoneNoBlackObject.java 681B
kafka
listener
MobilePaymentInfoListener.java 1KB
config
MobilePaymentInfoConfig.java 1KB
README.md 4KB
共 64 条
- 1
资源评论
yl66668888
- 粉丝: 193
- 资源: 63
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功