隐私哨兵

我要开发同款
广西小宁2023年06月07日
536阅读
开发技术iosandroid微服务springcloudjava
所属分类H5网站APP

作品详情

技术栈: SpringBoot、SpringCloud、Spring Cloud Alibaba、Security、Spring Cloud Gateway、Alibaba Nacos、Alibaba Sentinel、Alibaba Seata、Spring Data Jpa、Spring Cloud OpenFeign、RestTemplate、Spring Cloud Loadbalancer、Skywalking、JetCache、Caffeine、Kafka、OpenAPI、Redis、Netty、Nginx、Oauth2.0、Swagger 3、Mybatis、MySQL、FastDfs、Elasticsearch、Logstash、kibana、Docker、K8S、Maven
项目描述:
给中国电信集团设计一套C端应用风险检测平台(H5嵌套到电信APP),帮助电信付费用户检测手机端安装的应用风险(应用正盗版、仿冒;漏洞病毒;个人隐私合规等),集团共3.9亿用户,分布在全国7大区域,最大区域7千万用户。要求设计的平台能满足7千万用户的使用,支撑日活1500万。
工作内容:
1.项目架构设计:
采用DDD领域驱动设计方法论设计架构,基于领域事件风暴输出领域模型,采用微服务架构技术、洋葱架构模型落地领域模型;
基于RUP4+1架构设计完成项目蓝图设计和设计文档输出;
2.代码优化:
基于业务维度,采用架构分层设计拆分服务;
使用线程池技术、数据库连接池等池化技术优化代码,降低性能消耗,提高执行速率;
3.Redis缓存方案引入:
基于 SpringBoot,整合JetCache缓存框架,实现本地进程缓存(Caffeine),远程分布式缓存(Redis)支持,提高业务检测API并发响应速度;
基于Redis的setnx+lua脚本+看门狗线程+ Redisson红锁机制,实现单机和集群下的分布式锁。
使用Redis的Bigmap 构建布隆过滤器,解决缓存穿透问题;
使用Redis的HyperLogLog技术实现统计每日登录使用隐私哨兵功能的用户数;
使用缓存双删策略实现Redis分布式缓存数据一致性;
采用RDB+AOF备份机制,保障数据安全性和分布式缓存同步;
基于主从机制(Master-Slave)和Sentinal哨兵机制部署集群,实现Redis的高可用和主从集群;
基于Redis的Publish/Subscribe广播消息机制,实现WebSocket的集群,解决高并发下推送消息给前端的压力;
4.MySQL数据库:
多主多从方式部署,实现Mysql的读写分离,解决单机数据库单节点问题,实现数据库读写性能的提升;
按照子服务业务垂直分库,分为检测业务API数据库、个人隐私风险数据库、漏洞扫描数据库、应用正盗版数据库、套餐订购服务;
MySQL服务配置优化(连接数配置、连接超时时间、Buffer Pool缓存、Redo Log缓存);
SQL语句优化,索引优化;
基于覆盖索引+子查询方案,解决limit分页查询慢问题;
基于Mycat中间件,实现分库分表方案,解决数据大表问题;
基于雪花算法,实现数据库分布式ID;
5.Kafka消息中间件引入:
检测API服务,基于Kafka消息队列技术,实现与个人隐私风险分析引擎服务、漏洞扫描数据分析引擎服务、正盗版数据分析引擎服务、套餐订购服务调用的解耦,异步提升服务调用速度和性能,实现了流量削峰;
各消费端服务,基于去重表的方案,使用Redis Set集合存储业务唯一性id,实现消息消费的幂等性处理,解决消息重复消费问题;
基于Kafka的ack机制,保障消息的可靠传输,解决生产、消费数据丢失问题;
数据同步服务,基于Kafka消息队列技术,实现将检测任务记录表数据同步到ES,解决分表后运营平台查询检测记录慢,查询精度丢失等问题;
基于kafka构建事件驱动架构设计(EDA),完成微服务之间领域事件的发布和订阅,实现微服务之间的数据最终一致性方案。
6.流量分流方案:
基于CDN+DNS智能路由机制,实现全国七大区域服务的就近访问,提升访问速度,实现3.9亿用户的流量分流,降低区域服务的压力;
基于F5(或lvs),实现入口流量的负载均衡,流量分发到各Nginx上;
基于Nginx负载均衡技术,实现集群化服务,实现整体服务的流量分流方案,保护服务安全;
7.限流方案:
在Gateway网关处,集成Sentinel限流框架,实现整体服务入口流量限制方案,在业务服务处同时实现业务服务限流,双重保障,保护服务安全;
8.JVM性能调优:
利用jps、jstack、jmap、jstat、jinfo、Java VisualVM等工具分析内存、堆栈、线程等运行环境信息;
JVM参数调用,解决OOM问题;
合理选择垃圾收集器,减少GC频率和Full GC频率,减少STW的停顿时间和停顿次数;
9.基于 Logstash+Logback+Elasticsearch+kibana ,实现日志采集和分析展示
工作绩效:
1.架构支持水平扩展,支撑每日1500万 +日活在线用户使用。
2.项目上线后先后抗下了电信315打假宣传活动当天2000万用户流量和网络安全周2500万用户流量。
3.项目帮助电信集团实现每日50万单订购套餐,高峰期100万单订购套餐,帮助电信集团实现盈利1000万;
3.接口请求响应130毫秒,高并发情况下250毫秒;
4.每条SQL平均执行时间20ms,大数据量表SQL执行时间不大于100ms;
5.程序在CPU 4核,内存16G的机器上,Java线程和Tomcat线程配置400,数据库连接配置为400的基础上,性能压测指标TPS约1500/s,QPS约3000/s
6.平台可用性99.99%
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论