当前位置:   article > 正文

2024年分布式场景下的并发安全问题,互联网行业“中年”危机_java并发安全问题案例分享

java并发安全问题案例分享

还有兄弟不知道网络安全面试可以提前刷题吗?费时一周整理的160+网络安全面试题,金九银十,做网络安全面试里的显眼包!

王岚嵚工程师面试题(附答案),只能帮兄弟们到这儿了!如果你能答对70%,找一个安全工作,问题不大。

对于有1-3年工作经验,想要跳槽的朋友来说,也是很好的温习资料!

【完整版领取方式在文末!!】

93道网络安全面试题

内容实在太多,不一一截图了

黑客学习资源推荐

最后给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

1️⃣零基础入门
① 学习路线

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

image

② 路线对应学习视频

同时每个成长路线对应的板块都有配套的视频提供:

image-20231025112050764

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以点击这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

package cn.enjoy.lock;

import cn.enjoy.utils.FileId;

import java.text.SimpleDateFormat;

import java.util.Date;

import java.util.concurrent.locks.ReentrantLock;

public class OrderNumGenerator {

​ private java.util.concurrent.locks.Lock lock = new ReentrantLock();

​ //以lock的方式解决

​ public String getNumber() {

​ try {

​ lock.lock();

​ SimpleDateFormat simpt = new SimpleDateFormat(“yyyy-MM-dd-HH-mm-ss”);

​ String s = simpt.format(new Date()) + “-” + FileId.nextId();

​ return s;

​ }finally {

​ lock.unlock();

​ }

​ }

}

}

1.2. 启动2个tomcat

修改springboot配置文件application.properties

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

修改端口为8081

使用启动类分别启动8080,8081

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

1.3. 配置nginx访问

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

1.4. 使用JMeter测试

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

把测试结果排序后

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

虽然单个节点解决了并发安全问题,但是在分布式场景下,依然出现了并发安全问题

2. 使用分布式锁解决

通过上面的案例使用JDK的锁解决不了分布式场景下的并发安全问题,接下来就考虑使用分布式锁来解决了。

2.1. 解决方案概述

分布式锁有很多种方案

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这些方案可以使用一个设计模式来统一

2.2. 模板方法模式

2.2.1. 模板方法介绍

在父类中编排主流程,将步骤实现延迟到子类去实现。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

上图网上购物的时候总体4个流程

  1. 清点商品

  2. 计算价格

  3. 支付(未知扩展)

  4. 送货上门

2.2.2. 代码实现

package cn.enjoy.template;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

public abstract class AbstractTemplate {

public void shopping() {

Map<String,Float> cars = new HashMap();

cars.put(“电池”,10f);

cars.put(“娃娃”,20f);

cars.put(“打气筒”,30f);

//1.清点商品

checkGoods(cars);

//2计算价格

float mony = calculation(cars);

//3.支付

if(pay(mony)) {

//4.如果支付成功送货

delivery();

}

}

public void checkGoods(Map<String,Float> cars) {

if(cars!=null) {

System.out.print(“你购买的了:”);

for(String key:cars.keySet()) {

System.out.print(key+" ");

}

System.out.println();

}

}

public float calculation(Map<String,Float> cars) {

float result = 0;

if(cars!=null) {

for(String key:cars.keySet()) {

result += cars.get(key);

}

}

System.out.println(“你总共应该支付:”+result);

//钱

return result;

}

public abstract boolean pay(Float money) ;

public void delivery() {

System.out.println(“请稍等,小哥哥正在送货!”);

}

一、网安学习成长路线图

网安所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

二、网安视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
在这里插入图片描述

三、精品网安学习书籍

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
在这里插入图片描述

四、网络安全源码合集+工具包

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
在这里插入图片描述

五、网络安全面试题

最后就是大家最关心的网络安全面试题板块
在这里插入图片描述在这里插入图片描述

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以点击这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

33d.png)在这里插入图片描述

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以点击这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/神奇cpp/article/detail/757903
推荐阅读
相关标签
  

闽ICP备14008679号