- 博客(52)
- 收藏
- 关注
原创 为什么增加服务器时会话会失效?深入解析哈希重分布
核心结论IP Hash和普通Hash:服务器变化时,哈希空间重新划分,导致大部分会话重分布(约75%失效)一致性哈希:服务器变化时,只影响哈希环的局部区间,少量会话重分布(约25%失效)根本原因取模运算的除数变化→ 全局重分布哈希环的局部性→ 局部重分布选择建议需要动态伸缩 → 必须使用一致性哈希会话状态重要 → 需要额外的会话复制机制零容忍失效 → 考虑无状态架构或客户端会话理解这些原理,才能在设计系统时做出正确选择,平衡会话保持和系统可伸缩性的需求。
2025-12-30 16:39:39
607
原创 Nginx三种会话保持算法对比
upstream backend { ip_hash; # 最简单的会话保持 server backend1; server backend2;}特点会话保持:确保同一用户的请求总到同一服务器简单:配置简单,无需额外模块问题:服务器增减时,大部分会话会失效(哈希重分布)如果客户端使用代理或NAT,多个用户可能被分配到同一服务器负载可能不均衡(某些IP段请求特别多)upstream backend { hash $cookie_session; # 基于自定义变量
2025-12-30 16:32:46
631
原创 Nginx负载均衡策略
请求分配模式大致为:100, 100, 100, 101, 101, 102, 100, 100, 100...:请求处理时间长短不一(如有的请求是短 API 调用,有的是长耗时计算),能更公平地分配负载。:确保来自同一客户端的请求会话(Session)不丢失,无需额外配置 Session 共享。:服务器数量变化时(增/删),大部分 IP 的映射会改变,可能导致会话失效。: 将该服务器标记为备份服务器,只有当所有主服务器都不可用时才会被使用。两个指标,将请求发给当前响应最快、连接最少的服务器。
2025-12-30 14:44:49
924
原创 Pinia :下一代 Vue 状态管理
Pinia(发音/piːnjʌ/,类似英文中的 "peenya")是 Vue.js 的下一代状态管理库。它由 Vue 核心团队成员开发,旨在提供一个更简单、更直观的状态管理方案。typescript// 基础类型name: '',email: '',// 对象profile: {bio: '',},// 数组// 复杂嵌套})})typescript],}),getters: {// 1. 基础 getter(自动推断类型)
2025-12-30 11:31:09
308
原创 Vue 2 中响应式失效的常见情况
上面情况对于for of循环和foreach也适用:修改元素的属性不会导致响应式失效,直接修改数组中的元素会导致响应式失效。注意:通过索引修改数组中某个元素的属性不会响应式失效(对数组中的元素动态新增或删除属性会响应式失效)this.$set(this.user, 'gender', '男');// 正确:使用 Vue.delete 或 $delete。// 正确:使用 Vue.set 或 $set。// 错误:直接添加新属性,Vue 无法检测。name: '张三',// 错误:直接删除属性。
2025-12-26 10:59:36
405
原创 Vue3 Watch 完全指南:深度监听与性能优化
监听选择(默认深度)性能优化javascript// ❌ 避免深度监听大型对象// ✅ 监听特定属性// ✅ 计算属性+监听组合清理副作用javascript// 组件卸载时清理stop()})使用 watchEffect(自动依赖追踪)javascript// 自动追踪使用的响应式数据})
2025-12-25 16:33:43
871
原创 Vue中导出和导入
vue// 从vue导入具体的API// 从工具模块导入</script>vue// 导入有默认导出的模块// 使用</script>vue// 导入整个模块作为对象// 使用</script>vue// 同时导入默认导出和具名导出// 使用</script>vue// 动态导入(按需加载)// 使用})// 或者使用async/await// 使用</script>
2025-12-25 16:07:49
618
原创 Vue中computed、method的区别
当依赖发生改变时,立马再次执行computed计算最新的值,改变一次重新计算一次。在依赖并未发生改变的情况下,只执行一次计算属性。一开始进入页面,执行一次computed。适合事件处理、需要参数的操作。可见方法被调用几次就执行几次。的(依赖变化会自动更新)普通函数,没有响应式特性。,依赖不变就不重新计算。使用计算属性拼接姓名。
2025-12-25 15:48:55
180
原创 Java基础--接口和抽象类介绍及两者的区别
在Java中,接口使用interface关键字来定义。接口中只包含抽象方法(在Java 8及之前),但从Java 8开始,接口也可以包含默认方法(有方法体)和静态方法。
2024-10-23 16:31:07
851
1
原创 Spring中事务传播机制
Spring事务传播机制是指在一个事务方法调用另一个事务方法时,Spring如何管理这些方法之间的事务边界。Spring在接口中定义了七种事务传播行为,以满足不同的业务需求。
2024-08-25 13:56:04
1418
原创 volatile关键字介绍
Java中的volatile关键字主要用于多线程编程中,其作用包括保证变量的可见性和禁止指令重排。然而,它并不保证原子性,对于复合操作需要使用其他同步机制来保证。在使用volatile时,需要仔细考虑其适用性,并理解其背后的原理和限制。
2024-08-03 14:37:59
360
1
原创 数据同步工具DataX介绍
定义:DataX是一个异构数据源离线同步工具,致力于实现包括关系型数据库(如MySQL、Oracle等)、HDFS(Hadoop分布式文件系统)、Hive、ODPS(分布式海量数据处理平台)、HBase等多种异构数据源之间稳定高效的数据同步功能。平台支持:广泛适用于阿里巴巴集团内部及外部用户,是解决异构数据源同步问题的重要工具。DataX作为一款高效、易用、功能丰富的数据同步工具,在数据迁移领域具有重要地位。
2024-07-21 13:45:46
787
原创 Java中静态代理和动态代理介绍和使用
在Java中,代理模式是一种常用的设计模式,用于为其他对象提供一种代理以控制对这个对象的访问。代理模式主要有两种实现方式:静态代理和动态代理。
2024-07-21 10:53:18
1302
原创 Java反射机制
Java反射(Reflection)机制是指。通过反射,程序可以在运行时获取类的信息,包括类的构造函数、方法、字段等的所有信息,并可以通过这些信息来创建对象、调用方法以及访问和修改字段的值。
2024-07-20 18:51:29
1095
原创 从源码分析Springboot自动配置原理
application.properties或application.yml:开发者可以在目录下提供或文件来覆盖自动配置的默认值。这些文件通常用于定义应用程序的特定配置。@Configuration和@Bean:如果自动配置不满足需求,开发者可以编写自己的类,并使用@Bean注解来定义和配置自己的bean。这些自定义配置将覆盖自动配置的相同bean。
2024-06-30 14:38:57
1308
原创 PL/SQL入门到实践
pl/sql程序设计中的标识符定义与sql的标识符定义的要求相同。标识符名不能超过30字符第一个字符必须为字母不分大小写不能是sql保留字DECLAREBEGIN-- 如果这里employee_id为1001的员工不存在,将会抛出NO_DATA_FOUND异常EXCEPTIONEND;DECLARE-- 声明用户定义异常BEGIN-- 触发用户定义异常END IF;-- 其他代码...EXCEPTIONEND;
2024-06-29 17:49:39
1887
原创 从Oracle自定义函数和存储过程案例学习PL/SQL的使用
*综述:大小值校验入参:checkcolumn:校验列列名 lowvalue:小值 highvalue:大值 isinclude:是否包含边界 1是 0否输出: 布尔值,判断通过与否 0不通过 1通过判断内容:1、判断校验列列名checkcolumn是否为数值型,如为非数值型-->0不通过;A.判断小值lowvalue<校验列列名checkcolumn<大值highvalue-->1通过;B.当小值为空,大值不为空时,判断校验列列名checkcolumn<大值highvalue-->1通过;
2024-06-29 13:43:36
1419
原创 CompletableFuture 基本用法
是 Java 8 引入的一个功能强大的类,用于异步编程和并发处理。它提供了丰富的 API 来处理异步任务的结果,支持函数式编程风格,并允许通过链式调用组合多个异步操作。
2024-06-22 21:33:37
3035
原创 多线程基础
构造函数:使用给定的Callable对象创建新的FutureTask。Callable的call方法会在任务执行时被调用。:使用给定的Runnable对象和结果值创建新的FutureTask。Runnable的run方法会在任务执行时被调用,并且返回的结果将是构造函数中提供的result。执行任务由于FutureTask实现了Runnable接口,因此可以直接将其传递给Thread的构造函数来创建线程,并启动线程以执行任务。获取结果get():等待计算完成,然后获取其结果。
2024-06-22 17:57:52
1000
原创 线程池ThreadPoolExecutor源码分析
继承Thread类通过继承Thread类并重写其run方法来创建线程。具体步骤包括定义Thread类的子类,在子类中重写run方法以实现线程的具体逻辑,然后创建子类的实例并调用其start方法来启动线程。实现Runnable接口通过实现Runnable接口并重写其run方法来创建线程。这种方式相较于继承Thread类更为灵活,因为Java不支持多重继承,而实现接口则没有这个问题。
2024-06-16 17:04:05
904
原创 AtomicInteger类介绍
AtomicInteger是系统底层保护的int类型,通过对int类型的数据进行封装,提供执行方法的控制进行值的原子操作。但它并不等同于Java的基本数据类型Integer。从JAVA 1.5开始,AtomicInteger就被引入到了Java的并发包中,成为java.util.concurrent.atomic包下的一个类。
2024-06-16 10:57:37
911
原创 双Token方案实现Token自动续期(基于springboot+vue前后端分离项目)
jwt理论介绍springboot+vue项目中使用jwt实现登录认证本篇文章的代码是在springboot+vue项目中使用jwt实现登录认证的基础上实现的Token自动续期的功能。双token解决方案是一种用于增强用户登录安全性和提升用户体验的认证机制。它主要涉及两个令牌:访问令牌(accessToken)和刷新令牌(refreshToken)。
2024-06-10 16:44:05
5138
6
原创 springboot+vue前后端分离项目中使用jwt实现登录认证
可以看见,请求几次成功后,便显示令牌过期,这是因为,为了测试方便,我们颁发令牌时有效期设置的10秒。1.点击登录后,后端给前端办法jwt令牌,前端将其存入sessionStorage中。3.继续多次点击【请求后端受保护的接口】按钮。重新登录并点击【请求后端受保护的接口】按钮。2.点击【请求后端受保护的接口】按钮。4.在请求接口中不传递Token。
2024-06-10 13:31:24
1157
1
原创 JWT理论介绍
JWT(JSON Web Token)是一个开放标准(RFC 7519)定义的方式,用于在各方之间安全地传输信息。这些信息可以是验证、授权、信息交换等。JWT 允许在请求之间安全地传输信息,因为信息是经过数字签名的,并且可以被验证和信任。JWT 通常用于实现无状态的、基于令牌的认证。
2024-06-10 09:32:19
904
原创 Maven常见生命周期阶段的作用
你可以使用Maven的命令行界面(CLI)来运行这些阶段,如mvn clean install,这将会执行clean和install阶段以及它们之前的所有阶段(validate、compile、test、package)。此外,Maven还会将所有项目依赖的库打包到最终的分发包中(对于JAR项目,通常会将依赖的库打包到target/lib目录或者将依赖包含在JAR文件的Class-Path中,具体取决于配置)。例如,在test阶段的所有目标执行完毕后,package阶段的目标才会开始执行。
2024-05-30 10:11:31
1123
原创 Windows系统下安装weblogic及使用weblogic部署项目
方式一:到oracle官网下载,下载地址为:https://www.oracle.com/middleware/technologies/weblogic-server-installers-downloads.html。如果不知道jdk安装目录在哪里,可以通过查看环境变量来找到jdk安装目录,如下图,在环境变量中找到JAVA_HOME,这个变量的值,就是jdk的安装目录。这就我们的域, 后续操作都是在域里操作。找到jdk的安装目录之后,打开该目录,然后打开下面的jre/bin,将文件放到这个目录下。
2024-05-24 17:44:21
5960
1
原创 websocket实现web消息推送(基于Java注解实现websocket服务终端)
Web消息通知是指Web系统向用户发送的有关系统更新、重要事件或消息的通知,以便用户及时了解系统的最新动态。在App和网页应用中,消息通知是最常见的信息交换方式之一,用于产品与用户之间的信息同步,如产品更新、信息提醒、互动提醒、新消息通知等,从而为用户提供帮助,使其能够快速获取对应的通知信息。如图所示就是一个文本消息推送的案例,当某一个登录用户收到新消息时,网页端能够实时更新消息的数量。web消息推送在csdn官网的表现形式是,当有新消息到来时,消息处出现一个小红点,提示有未读消息。
2024-05-24 16:33:51
3678
原创 Spring Security 基础使用教程
实际的项目开发中,我们往往会自定义一个登录的页面,而不会使用spring security提供的默认登录页面进行登录。所以下面将介绍如何自定义这些配置。引入thymeleaf依赖创建templates文件夹,创建登录页面,登录成功页面,登录失败页面和index页面,放入templates中。其中登录页面的代码如下:新建配置类新建一个controller访问http://localhost:8080/index.html进入我们自定义的登录界面。
2024-05-23 17:02:14
1153
原创 synchronized关键字的使用
synchronized 是 Java 中的一个关键字,用于实现多线程之间的同步访问。它用于确保在多线程环境中,同一时间只有一个线程可以执行某个方法或代码块。这是通过锁定一个对象或类来实现的,以防止多个线程同时访问共享资源,从而导致数据不一致或其他并发问题。在方法声明中使用synchronized,将其放在范围操作符(如public)后,返回类型声明(如void)之前。这样,当一个线程进入该方法时,其他线程将被阻塞,直到该线程退出该方法。例如:// 方法体。
2024-05-21 15:37:32
643
原创 websocket简单使用--基于springboot+vue项目
WebSocket是一种在单个TCP连接上进行全双工通信的协议。该协议于2011年被IETF定为标准RFC 6455,并由RFC7936补充规范,同时WebSocket API也被W3C定为标准。WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。这种持久连接使得服务器可以主动向客户端推送数据,而不需要等待客户端的请求。
2024-05-20 17:34:43
1768
1
原创 HDFS集群环境部署
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考配置HDFS集群,我们主要涉及到如下文件的修改:workers: 配置从节点(DataNode)有哪些hadoop-env.sh: 配置Hadoop的相关环境变量core-site.xml: Hadoop核心配置文件hdfs-site.xml: HDFS核心配置文件。
2023-11-15 09:49:15
1064
原创 浅析预编译防止SQL注入的原理
要理解防止SQL注入的原理,那么首先需要知道什么是SQL注入。百度百科对SQL注入的解释如下:对于理论,这里不作过多赘述,通过一个例子来说明什么是SQL注入。假如我们有一个登录页面,登录页面大致如下图所示。这个时候,用户正常登陆就是输入用户名和密码进行登录。我们大致写一个后台的登录逻辑(这里大家不必过于较真,实际项目的登录逻辑肯定与下面代码是有出入的,这里主要是为了对SQL注入进行一个简单的演示// 数据库连接信息try {// 加载驱动// 建立数据库连接。
2023-08-18 17:21:48
945
原创 虚拟机上搭建Hadoop运行环境
比如在上面这台虚拟机上面配置了上述主机名称和IP的映射,那么我要在这台主机访问另外几个IP,只需要访问他们的主机名即可。最大磁盘大小在条件允许的情况下建议是设置40G以上, 20G可能后续还需扩容,这里我们设置的50G.集群化软件之间需要通过端口互相通讯,为了避免出现网络不通的问题,我们可以简单的在集群内部关闭防火墙。手动分区的话,选择“我要配置分区”,点击完成,然后弹出配置界面,进行配置即可,这里不作赘述。设置日期和时间,将日期和时间设置为当前时间,设置完成后点击完成即可。为了方便可以选择自动分区。
2023-08-04 16:25:50
4175
原创 vue导出文本文件
vue将数据写入文本文件并下载。我们通常用到的功能往往是导出EXCEL文件、PDF文件等,导出普通的文本文件用的很少,但也有可能会在工作中遇到,所以今天分享一个vue前端导出文本文件的方式。
2023-06-30 16:40:57
1616
原创 oracle数据库批量插入
之所以出现上面的错误,是因为对oracle数据库的多行插入语句不够了解。oracle数据库的插入多行数据和mysql数据库中插入多条数据的SQL语句并不相同。
2023-05-30 16:55:59
2743
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅