如何防止接口重复请求 什么时候需要分布式锁?
什么时候需要分布式锁?
首先,我们需要知道在非分布式环境中,什么可以用锁来解决?
多线程环境,共享资源线程安全问题!此时,共享资源通常在一台机器的多线程中竞争。从JAVA内存模型的角度来看,我们可以通过锁定对象、方法和代码块来避免共享资源的竞争
!1,生成全局ID;
2,修改全局配置文件;
3,分布式服务中的seckill;
4,分布式环境中的重复提交;
1,使用数据库的唯一主键实现锁定
!2、使用redis指令:通常使用setnx方法,incr方法实现
3、使用zookeeper:使用API生成临时节点实现锁定
有多少互联网系统确实需要使用分布式架构?
更不用说互联网的实际发展了,现在即使是面试新生,分布式的问题基本上都是不可避免的。
目前,分布式体系结构具有高并发性和高稳定性的特点。
高并发意味着当单节点服务器的性能达到瓶颈时,可以通过引入nginx和部署多个服务器节点来扩展,以增加系统的吞吐量。这就是1*n=n的意思。
高稳定性意味着,如果单个或部分节点由于不可预知的原因发生故障,则不会影响系统的整体功能服务,即M-N>0(M>N)。对于用户来说,系统可用性始终是最重要的。
综上所述,根据我个人的经验,目前无论是市场级产品还是公司级产品,只要项目团队有对服务质量的追求,他们都会以不同的方式向分布式架构发展。
另外,对于一个功能不是很复杂和庞大的项目组来说,只要在开发设计阶段一开始就及时引入Memcache或redis作为数据缓存,而不是使用服务器的内存,后期切换到分布式系统的过程就会非常快。
以上是我个人的观点。欢迎在下面的评论区与我交流。
我是苏思亮,来自bat的java开发工程师。我每天分享科技知识。欢迎您关注我,与我共同进步。
如何防止接口重复请求 java防止重复数据请求 防止请求重复提交
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。