项目名称:多层缓存架构系统
开发环境:springboot,mybatis,kafka,redis,jmeter,storm,zk,nginx,ehcache
项目描述:
针对系统线上业务量增加及多系统统一整合带来的缓存压力,设计的一整套可以支撑高并发,高性能,高可用的系统。
技术要点:
1.多级缓存架构设计
面临难题:如何将缓存架构设计的能够支撑高性能以及高并发到极致?同时还要给缓存架构最后的一个安全保护层?
解决方案:nginx抗热点数据+redis抗大规模离线请求+ehcache抗redis崩溃的三级缓存架构
2.数据库+缓存双写一致性解决方案
面临难题:高并发场景下,如何解决数据库与缓存双写的时候数据不一致的情况?
解决方案:异步队列串行化的数据库+缓存双写一致性解决方案/延迟双删
3.缓存维度化拆分解决方案
面临难题:如何解决大value缓存的全量更新效率低下问题?
解决方案:商品缓存数据的维度化拆分解决方案
4.缓存命中率提升解决方案(暂时未做)
面临难题:如何将缓存命中率提升到极致?
解决方案:双层nginx部署架构+lua脚本实现一致性hash流量分发策略
5.缓存并发重建冲突解决方案
面临难题:如何解决高并发场景下,缓存重建时的分布式并发重建的冲突问题?
解决方案:基于zookeeper分布式锁的缓存并发重建冲突解决方案
6.缓存预热解决方案
面临难题:如何解决高并发场景下,缓存冷启动导致MySQL负载过高,甚至瞬间被打死的问题?
解决方案:基于storm实时统计热数据的分布式快速缓存预热解决方案
7.热点缓存自动降级方案(暂时未做)
面临难题:如何解决热点缓存导致单机器负载瞬间超高?
解决方案:基于storm的实时热点发现+毫秒级的实时热点缓存负载均衡降级/key分片打散
8.高可用分布式系统架构设计
面临难题:如何解决分布式系统中的服务高可用问题?避免多层服务依赖因为少量故障导致系统崩溃?
解决方案:基于hystrix的容错+多级降级+手动降级+生产环境参数优化经验+可视化运维与监控
9.缓存雪崩解决方案
面临难题:如何解决恐怖的缓存雪崩问题?
面临难题:三级缓存机制加hystrix容错降级高可用后台服务。
10.缓存集体失效导致缓存击穿解决方案
面临难题:如何解决高并发场景下的缓存失效问题?避免给redis集群带来过大的压力?
解决方案:基于随机过期时间的缓存失效解决方案
11.缓存穿透解决方案
解决方案:增加数据合法校验,缓存增加null值并设置短暂过期时间
项目名称:ems系统改造
开发环境:springmvc,springboot,spring,mybatis,nginx,redis,jmeter,JWT,dubbo,vuejs
项目描述:
ems系统二期改造(项目改为前后端分离,全面增加https支持,系统交互改造为jwt的Token认证),系统没有涉及金钱等实时要求很高的业务,故采用基于消息队列的最终一致性避免分布式事务,系统采用Dubbo + Zookeeper服务框架通过接口分解系统耦合性,不同子系统通过相同的接口描述进行服务调用。
技术特色:
1.配置多元化,开发,测试,生产环境分开.
2.dubbo面向服务的架构.
3.前后端分离,前端设计页面和发起请求,后端负责接口及数据返回.
4.使用JWT令牌认证实现与底层系统的交互
个人职责:
1.门户图文查询借口
2.门户图文更新接口
3.门户图文内容点赞接口
4.新增或修改站点栏目管理员
5.前后端分离ueditor后端上传图片文件等代码编写及问题解决
6.门户新闻内容点赞功能编写
7.使用JWTToken认证实现与大数据报表平台的对接
8.利用线程池技术和aspose异步转换文档实现在线预览功能
9.shiro做认证权限控制,调整优化kickout逻辑
10.请求头中设置jwt token做前后端分离权限认证
11.nginx反向代理实现前后端分离的跨域处理,调整nginx配置优化内存占用
12.https改造与优化(兼容前台,后台,本地,单机)
13.优化sql,调整业务逻辑和sql优化解决线上大量锁等待问题
14.解决tomcat假死