Java: JVM,NIO,高并发多线程
框 架: Spring-Cloud,Mybatis,JPA,Dubbo,Netty
数据库: MySql,Redis,ElasticSearch
中间件: Kafka,RabbitMq,Mycat
Linux : 基础操作和部署
◆项目经历:
@项目一:
--项目名称:杭州银行账单随心查
--相关技术: spring-cloud,hbase, elasticsearch,zookeeper
--项目背景:
由于账单数据的增大,原有的查询系统不符合现在的实时查询要求,要求对5年内近20亿的账单数据达到实时毫秒级的查询,对日汇总数据达到T-1的实时查询
--职 责:
1.架构设计文档编写
2. elasticsearch、springcloud注册中心,网关等脚手架搭建
3.快速海量数据初始化以及后续增量数据导入ES模块编写
4.高并发查询模块编写
5.生产环境项目部署
--项目收获:
1.合理的ES分片和索引字段建立
由于第一次接触ES搜索引擎,通过相关资料结合业务数据量建立最优的ES配置和索引
2.高效并发的数据导入
初期初始化数据量巨大,采用集群模式+分布式日期锁+导入日志表实现快速将HBASE的20亿数据在2天内自动化可断点导入ES
3.ES+HBASE对海量数据高并发下毫秒级的查询
根据条件对ES查询得到rowkey再查询HBASE得到完整数据,通过压力测试,能达到300左右的TPS
@项目二:
--项目名称:智能感知平台
--相关技术: spring-cloud,urule, hbase,mysql
--项目背景:
杭州银行经多年运营积累大量真实用户行为数据,设备信息、地址数据及交易数据。希望构建一个感知平台,为用户提供信息感知、决策分析、用户洞察、运营管理和营销触达的一站式数据化运营服务
--职责:
1.渠道模块的架构设计
2.urule规则引擎集成
3.规则配置模块编写
4.决策引擎和圈人引擎模块
5.下游推送模块
6.执行统计,热力图分析模块
--项目收获:
1.urule的整合和修改
由于开源urule普通版本只支持单机本地方式存储规则文件,不符合高可用要求,通过对源码研究分析,修改存储方式利用MySQL存储,达到分布式集群数据共享
2.使用线程池对资源合理利用
圈人引擎是对资源和时间高消耗的服务,由于今后业务的增长可能会配置越来越多的规则服务,
通过配置线程池,保证同一时间单一服务器不会有大批量的规则被执行,确保服务器的稳定性。
3.基于本地消息列表确保文件生成和推送
圈出的客群文件需要推送给下游,为确保下游的精准推送,对执行的任务进行数据库记录,后台定时对未执行成功的消息进行重试
@项目三:
--项目名称:杭银信用卡积分商城兑换系统改进
--相关技术: dubbo,mysql,redis,rabbitMq
--项目背景:积分商城系统经常会出现dubbo线程池耗尽报错,需要定位问题并进行修复
--职 责:
1.项目问题定位
2.系统改进设计
3.压力测试
--项目收获:
1.线上问题定位
在发生dubbo线程耗尽时通过jstack定位dubbo线程池任务,分析原因是因积分促销推广使每日开放的优质商品抢兑流量激增,下单dubbo接口在高并发下耗尽。
2.高并发缓存应用
利用redis将每日开放商品预加载,通过redis对高频恶意访问进行次数限制,通过令牌桶方式对无效流量进行降级返回
3.通过MQ削峰
对于抢到令牌桶的请求不在直接调用dubbo下单接口,利用rabbitMq进行解耦,保护数据库并发写的压力
--项目名称:杭州银行账单随心查 --相关技术: spring-cloud,hbase, elasticsearch,zookeeper --项目背景: 由于账单数据的增大,原有的查询系统不符合现在的实时查询要求,要求对5年内近20亿的账单数据达到实时毫秒级的查询,对日汇
--项目名称:智能感知平台 --相关技术: spring-cloud,urule, hbase,mysql --项目背景: 杭州银行经多年运营积累大量真实用户行为数据,设备信息、地址数据及交易数据。希望构建一个感知平台,为用户提供信息感知、决策分析、用户洞察、运营管理和