一些发现项目错误和改正的经历

本文分享了在API网关项目中实现黑白名单管理时遇到的问题及解决方案,包括并发请求导致的数据不一致问题以及对象重复声明导致的性能下降问题。

  在写API网关的过程中,我负责的是编写设置黑白明白名单,防火墙的代码部分,基本的逻辑是,设置一个专门的文件记录黑名单,在Java类中声明静态集合来存所有的黑名单ip,在添加新的ip的时候先写入静态集合中,然后更新文件。

  在最初写完之后,发现当快速多次请求的时候,会出现静态集合中的ip和文件中的不一样,开始不知道什么原因,一步步筛选,打印各个环节,逐渐缩小范围。最终发现当同时多次请求,会出现内存中可以更新,但是文件写入需要时间,同时写入会出现覆盖的情况。

  最终采用的是将最后内存的数据写入文件一次就可以了

 

  在这次项目还有另一个问题就是,浏览器请求之后,返回数据时间明显变慢,经过重新审查代码发现造成了声明对象循环了,就是循环的声明对象了,最后在controller类实例化时设定成员对象,这次得以解决。

转载于:https://www.cnblogs.com/gtBailly/p/8541829.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值