1. 软件版本和部署
maven:3.3.9,jdk:1.7 ,Struts2:2.3.24.1,hibernate:4.3.6,spring:4.2.5,MySQL:5.1.34,Junit:4,Myeclipse:2014;
Hadoop2.6.4,HBase1.1.2
源码下载:https://github.com/fansy1990/ssh_v3/releases
部署参考:http://blog.csdn.net/fansy1990/article/details/51356583
数据下载:http://download.csdn.net/detail/fansy1990/9540865 或 http://pan.baidu.com/s/1dEVeJz72. 背景&思路
本系统就是使用客观的方法来验证伪钞。本系统采用的方案是基于冠字号的,每张人民币的冠字号是唯一的,如果有一个大表可以把所有的人民币以及人民币对应的操作(在什么时间、什么地点存入或获取)记录下来,这样在进行存取时就可以根据冠字号先查询一下,看当前冠字号对应的纸币在大表中的保存的情况,这样就可以确定当前冠字号对应的纸币是否是伪钞了(这里假设在大表中的所有冠字号对应的钞票都是真钞)。
下面对应存储场景:
|
存/取 |
最近状态(表中有无) |
真钞/伪钞 |
场景1 |
存 |
有 |
伪钞 |
场景2 |
存 |
无 |
真钞 |
场景3 |
取 |
有(此时没有无状态) |
真钞 |
目前,基于传统数据库存储数据一般在千万级别(受限于查询等性能),但是如果要存储所有钞票的信息以及其被存储或获取的记录信息,那么传统数据库肯定是不能胜任的。所以本系统是基于HBase的。
3. 功能指标
Ø 存储万级用户信息;
Ø 存储百万级别钞票信息;
Ø 支持前端业务每秒500+实时查询请求;
Ø 数据存储和计算能够可扩展;
Ø 提供统一接口,支持前端相关查询业务;
4. 架构

Ø 数据层:包括基础数据MySQL、文档、Web数据等;
Ø 数据处理层:主要是数据的加载,包括MR加载方式、Java API加载模式、Sqoop加载模式等;
Ø 数据存储层:主要是HBase存储,包括钞票的所有信息以及用户信息等;
Ø 数据服务层:主要是对外提供查询、存储等接口服务;
Ø 数据应用