java开发过程中所遇到的问题
⼀、开发过程中遇到难的问题
1.1、重复下单 (解决:redis锁锁单)
场景:
在商城中,⽤户使⽤⽀付宝⽀付了,但是由于⽀付宝回调太慢,
⽹络延迟等原因,该⽤户⼜采⽤⽀付或者银⾏卡,导致⽤户会重复
⽀付该订单。
⽀付宝/不可以重复⽀付,具有重复机制
银⾏开没有重复机制
1.2、数据库与redis数据⼀致性 (下)网站源码赚钱
redis⽂章提到如何解决,请查看redis⽂章
1.3、数据库与es数据⼀致性 (下)
场景:
在商城中,当商家端发布⼀个A商品时,把商品存⼊数据库,然后把商品的id
存⼊到redis,通过订单任务来控制上下架的时间,那么就需要定时任务,
通过定时任务,再从redis⾥⾯把A商品的Id取出来,查询出A商品的信息再存⼊对象不回信息怎么办
nginx服务器下载redis。
如果此时有⼈把A商品的库存在数据库改变了,那么Es没有改变,就会导致不同
步,当有⼈改变A商品的时候,那么肯定知道A商品的ID,前段页⾯输⼊商品的ID
再跑⼀次程序即可解决
1.4、下单减库存、⽀付减库存 (下)
下单减库存:⼀些恶意者只下单不买,真正想买的⼈⽆法下单,因为下单被占⽤
⽀付减库存:会出现超卖的情况,同⼀个商品库存为1,那么两个⼈都同时购买,
两个⼈都可以付款成功,但是这⾥只会出现谁先买,后买者付钱⽆法有货。
解决:两种⽅式都存在,当商家发布商品时选择需要那种⽅式
1.5、京东商品库存⽆法确定准确库存java下载过程
⼆、开发过程中遇到⼀般的问题
2.1、poi导出⼀次性10W条数据(版本⾼低)
java private2003版只能导出65000
2007版可以导出百万级
但是考虑到并发情况以及流的情况下,数据太多还可以使⽤分页导出
每页导出10000条,但对操作⼈员不⽅便
2.2、Jar包⽆法下载华为云图⽚包、⾃⼰封转的jar包(解决:替换)
2.3、华为云上传图⽚失败
注⼊⽅式,不需要关闭流
创建 new⼀个对象需要⼿动关闭流
2.4、全国站问题(城市分站、区分站)
在商城中,⼀开始按城市分站显⽰商品
但有些商品需要在每个城市都看到,那么出现全国站,
根据站点Id来控制全国站
2.5、Redis-session共享 session处理过期问题、分布式使⽤什么作为key
session的去监听session是否过期,如果过期那么会到redis中删除该⽤户信息
后端返回⼀个⾃定义的ID存到cookie中,访问的时候携带cookie查询,那么⽤这个cookie的值作为key
2.6、全国地区问题,2017年与最新地区如何新增?
mvc模式参考文献⽐如2018年有⼀份地区表,定位code码,但是有其他表已经使⽤地区表的主键Id,⽐如重庆市没有九龙坡区,需要新增,怎么办,如果数据太多怎么办?
后台⼀个⼀个的新增
通过代码,先下载⼀份最新的地区表,更具code码来查看那些不存在的地址,
可以使⽤list的removeAll⽅法查询差值
难就难在需要九龙坡上⼀级的重庆的主键Id作为九龙坡区的⽗Id