- 博客(74)
- 收藏
- 关注
原创 XHR 介绍及实践
XML(XMLHttpRequest) 是浏览器提供的一种用于前端页面和后端服务器进行异步通信的编程接口。它允许在不重新加载整个页面的情况下,与服务器交换数据并更新部分页面内容,是 AJAX 技术的核心。
2025-08-30 12:58:08
733
原创 Future 和 CompletableFuture
的get()方法是阻塞的,我们一般建议使用。并且一般建议使用自定义线程池。});//如果不加 get()方法这一行,看不到异常信息Future需要获取返回值,才能获取到异常信息。如果不加 `get()`/`join()`方法,看不到异常信息。小伙伴们使用的时候,注意一下哈,考虑是否加`try...catch...`或者使用`exceptionally`方法。#### 2、CompletableFuture的get()方法是阻塞的。
2025-08-13 19:29:06
741
原创 具有熔断能力和活性探测的服务负载均衡解决方案
/ 熔断相关属性// 30秒// 判断节点是否可用(考虑熔断状态)// 检查是否应该尝试恢复// 进入半开状态// 熔断中// 正常状态// 其他getter/setter方法...选择合适的负载均衡策略对于性能相近的节点,使用轮询或随机对于性能差异大的节点,使用加权轮询对于长连接服务,考虑最少连接算法健康检查配置建议检查间隔:5-30秒超时时间:1-3秒检查端点:/health或/actuator/health生产环境注意事项。
2025-08-13 19:27:26
487
原创 分布式与微服务宝典
选型建议:优先使用AT 模式(简单高效),复杂业务用TCC,历史系统兼容选XA。核心价值:Seata 通过TC 统一协调多模式适配,显著降低分布式事务开发复杂度。注意:分布式事务无法100%保证一致性(如极端宕机),需配合人工对账兜底。部署建议TC集群 + 数据库存储 + Nacos注册中心 + Prometheus监控通过注解,5分钟快速接入分布式事务!核心价值:提供分布式系统的基础协调能力(像分布式系统的神经系统选型建议✅ 需要强一致性的协调场景(如金融核心系统)。
2025-08-13 19:26:40
1336
原创 win10环境,安装nvm控制使用多版本nodejs
nvm和n都是node.js版本管理工具,为了解决node.js各种版本存在不兼容现象可以通过它可以安装和切换不同版本的node.js。use`版本号 使用指定版本的nodejs ( 这时会发现在启用的 node 版本前面有 * 标记,这时就可以使用 node.js )版本号 使用指定版本的nodejs ( 这时会发现在启用的 node 版本前面有 * 标记,这时就可以使用 node.js )安装最新版本 ( 安装时可以在上面看到 node.js 、 npm 相应的版本号 ,不建议安装最新版本)
2025-08-13 19:25:08
774
原创 nodeJs安装教程
cnpm的服务器是由淘宝团队提供 服务器在国内cnpm是npm镜像,一般会同步更新,相差在10分钟,所以cnpm在安装一些软件时候会比较有优势。创建完两个空文件夹之后,跟之前操作一样,在键盘按下【win+R】键,输入cmd,然后回车,打开命令行界面,输入下面命令,如图。在【系统变量】下的【Path】新建添加node全局文件夹【D:\Nodejs\node_global】,之后点击确定。将【用户变量】下的【Path】修改为【D:\Nodejs\node_global】,之后点击确定。
2025-08-13 19:23:55
667
原创 Redis宝典
bigkey 是指键值占用内存空间非常大的 key。例如一个字符串 a 存储了 200M 的数据。网络阻塞;获取 bigkey 时,传输的数据量比较大,会增加带宽的压力。超时阻塞;因为 bigkey 占用的空间比较大,所以操作起来效率会比较低,导致出现阻塞的可能性增加。
2025-08-13 19:07:26
1001
原创 MySQL宝典
要么都执行,要么都不执行将一组sql语句放到一个批次中去执行MySQL是默认开启事务自动提交的,关闭语句 set autocommit=0/1事务的基本要素(ACID)● 原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样。也就是说事务是一个不可分割的整体,就像化学中学过的原子,是物质构成的基本单位。
2025-08-13 19:06:42
710
原创 JVM宝典
1)垃圾收集器总结名称算法工作区域线程模式适合场合优缺点Serial复制新生代单串行单CPU;Client模式下缺:STW优:简单高效,没有线程交互开销,专注于GCParNew复制新生代多并行多CPU;Server模式下缺:STW优:并行并发GC复制新生代多并行吞吐量控制,Client,Server均可以主要关注吞吐量,通过吞吐量的设置控制停顿时间,适应不同的场景SerialOld整理老年代单串行主要Client模式下。
2025-08-12 20:16:00
834
原创 IDEA插件开发实践
开启IDEA内部模式(使用UI检查器定位代码)后,我们可以通过 ctrl+alt+鼠标左键点击对应菜单,可以获取到点击信息,然后根据关键类信息,到idea源码中查找到对应的代码,在插件开发中通过调用对应的api就可以修改配置信息。当然,idea中有开关可以控制,但每次都进行设置不太方便,现在开发一个简单插件,实现当同时按下ctrl+alt+win键时,双击鼠标则是驼峰选中,释放时是单词选中。win键抬起,关闭驼峰选中。日常开发过程中,我们鼠标双击会选中整个单词,现在想实现按照驼峰选中,效果如图。
2025-08-12 20:14:46
1242
原创 Flowable实践
Flowable-UI是flowable自带的一套供开发人员体验的系统,它通过后台的UI建模,让开发人员了解Flowable的工作流程,同时它部署简单,只需要将对应的war包丢到Tomcat后启动即可。System.out.println("MyListener01-----notify----执行了" + delegateTask.getEventName());// 在流程启动时设置的变量时全局变量,保存在运行时变量表里面 act_ru_variable ,当审批流程结束后,所有变量都会删除。
2025-08-12 20:09:39
789
原创 CSRF 攻击
CSRF(Cross-Site Request Forgery,跨站请求伪造)是一种常见的Web安全攻击手段。攻击者通过诱骗用户在已登录的Web应用中执行非本意操作,从而以用户身份执行恶意请求(如转账、改密码等)。fill:#333;1. 正常登录(获得Cookie)2. 访问恶意页面3. 自动发送伪造请求(携带用户Cookie)4. 执行恶意操作。
2025-08-12 20:05:40
1044
原创 负载均衡详解
主备负载均衡器通过VRRP协议(如Keepalived)实现故障切换。:阻断SQL注入/XSS攻击(如ModSecurity):启用SYN Cookie,限制单IP连接数。选择L7:Nginx/HAProxy。:Nginx根据URL路径路由。选择Nginx/HAProxy。负载均衡器 Master。负载均衡器 Slave。选择L4:LVS/F5。
2025-08-12 20:04:59
858
原创 Sentinel 和 Hystrix
能力HystrixSentinelWinner隔离灵活性⭐⭐ (线程池/信号量)⭐⭐⭐ (动态并发控制)Sentinel熔断策略丰富度⭐⭐ (异常比例)⭐⭐⭐ (异常+响应时间)Sentinel流量整形能力❌✅ (预热/排队)Sentinel系统负载保护❌✅ (TCP BBR 算法)Sentinel监控可观测性⭐⭐ (基础Dashboard)⭐⭐⭐ (实时拓扑图)Sentinel传统微服务兼容性⭐⭐ (需适配)Hystrix💎最终建议新系统:优先选择Sentinel。
2025-08-12 19:59:58
881
原创 Hystrix核心内容
Hystrix 是 Netflix 开源的一款容错框架,旨在通过隔离、熔断、降级等机制,保护分布式系统免受级联故障的影响。
2025-08-12 19:59:20
760
原创 Setinel
Sentinel 通过责任链模式和滑动窗口统计机制,实现了高效的流量控制和熔断降级功能。其核心优势在于高性能、扩展性强和丰富的规则配置。理解 Sentinel 的底层原理和源码实现,有助于更好地在生产环境中使用和优化它,保障系统的稳定性和可靠性。Sentinel详解。
2025-08-12 19:58:27
854
原创 MyBatis-Plus核心内容
fill:#333;color:#333;color:#333;fill:none;用户调用 Service 方法MP 代理对象拦截构建 QueryWrapper/LambdaQueryWrapper生成 SQL 条件调用 MyBatis SqlSessionExecutor 执行查询插件拦截 分页,乐观锁等StatementHandler 预处理 SQLParameterHandler 设置参数执行 JDBC 查询ResultSetHandler 映射结果集返回结果给用户。
2025-08-12 19:55:32
1103
原创 SpringBoot面试宝典
/ 排除DataSource自动配置// ...// 通过配置文件排除// 排除DataSource自动配置 @SpringBootApplication(exclude = {// ... } // 通过配置文件排除 spring . autoconfigure . exclude = org . springframework . boot . autoconfigure . jdbc . DataSourceAutoConfiguration。
2025-08-12 19:54:05
773
原创 Spring面试宝典
Aspect@Component// 定义切点:拦截所有Service层方法// 环绕通知管理事务// 开启事务try {// 执行目标方法// 提交事务// 回滚事务throw ex;Spring 支持通过@Override// 实现其他方法...@Bean@Component默认使用 singleton:无状态服务首选,节省资源有状态用 prototype:避免并发问题Web 作用域注意事项。
2025-08-12 19:52:59
942
原创 正则表达式
标志也叫模式修正符,因为它可以用来修改表达式的搜索结果。这些标志可以任意的组合使用,它也是整个正则表达式的一部分。正则表达式默认采用贪婪匹配模式,在该模式下意味着会匹配尽可能长的子串。正则表达式其实就是在执行搜索时的格式,由字母数字和字符组成。将贪婪匹配模式转化为惰性匹配模式。
2025-05-28 23:52:54
629
原创 SpringBoot定时任务实战_
如果15号正好是周六,则找最近的周五(14号)触发, 如果15号是周未,则找最近的下周一(16号)触发.如果15号正好在工作日(周一至周五),则就在该天触发。#:序号(表示每月的第几个周几),例如在周字段上设置”6#3”表示在每月的第三个周六.注意如果指定”#5”,正好第五周没有周六,则不会触发该配置(用在母亲节和父亲节再合适不过了);L :表示最后的意思。在日字段设置上,表示当月的最后一天(依据当前月份,如果是二月还会依据是否是润年[leap]), 在周字段上表示星期六,相当于”7”或”SAT”。
2025-05-28 23:50:33
857
原创 SpringBoot 引入线程池+Queue缓冲队列实现高并发下单业务_
主要是自己在项目中(中小型项目) 有支付下单业务(只是办理VIP,没有涉及到商品库存),目前用户量还没有上来,目前没有出现问题,但是想到如果用户量变大,下单并发量变大,可能会出现一系列的问题,趁着空闲时间,做了这个demo测试相关问题。线程池 + Queue队列。
2025-05-28 23:49:23
343
原创 Spring Boot 异步线程间数据传递
上述列举了4种方案,这里推荐方案2和方案4,其中两种方案的缺点非常明显,实际开发中也是采用的方案2或者方案4。
2025-05-28 23:47:16
589
原创 Jenkins+Docker 实现一键自动化部署项目
(img-IqANpifs-1748446972562)](img-6xZOUWzP-1748446972563)](img-Yshx4e5n-1748446972563)]页面访问:http://{部署Jenkins所在服务IP}:8080。1.SSH Server Name 填你虚拟机IP或用户名。4.Remote Directory 填 /2.Hostname 填你的虚拟机IP。目标:clean install。pom.xml是项目代码所在位置。启动脚本里面的路径手动创建。解压并复制到指定目录。
2025-05-28 23:43:17
1264
原创 Java常用加密方式
DES全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法,1977年被美国联邦政府的国家标准局确定为联邦资料处理标准(FIPS),并授权在非密级政府通信中使用,随后该算法在国际上广泛流传开来。但是近些年使用越来越少,因为DES使用56位密钥,以现代计算能力,24小时内即可被破解。DES加密和解密过程中,密钥长度都必须是8的倍数。/**
2025-05-28 23:42:03
1714
原创 Spring Boot项目中实现单点登录(SSO)完整指南
单点登录(Single Sign-On, SSO)是一种身份验证机制,允许用户使用一组凭证(如用户名和密码)登录多个相关但独立的系统。
2025-05-28 23:38:48
3885
1
原创 HTTPS加密通信详解及在Spring Boot中的实现
客户端发起HTTPS请求(连接到服务器443端口)服务器返回数字证书(包含公钥)客户端验证证书(检查颁发机构、有效期等)密钥交换(对过非对称加密协商对称密钥)加密通信(使用对称密钥加密数据传输)
2025-05-28 23:37:39
1519
原创 RabbitMQ的安装及基础使用教程
1、消息中间件概述1.1、什么是消息中间件MQ全称 Message Queue ,消息队列是应用程序与应用程序之间的通讯媒介,多用于分布式系统之间的通信。下图为进行远程通信的两种方式:直接远程调用和通过消息中间件 完成通信。为什么要使用MQ在项目中,有些业务操作不需要即时返回并且处理耗时,可以把这些操作提取出来进行异步处理,而这种异步处理的方式可以大大的节省服务器的请求响应时间,从而提高系统的吞吐量。MQ的常见使用场景任务异步处理将不需要同步处理且耗时的操作有消息队列通知消息
2022-03-17 09:39:11
373
1
原创 chmod 777 授权无效
chmod 777 命令给文件夹授权后,依旧无权限访问这是因为SELinux是Linux系统上一个常见的安全软件,只需要把它关闭即可首先通过命令 getenforce 来查看当前SELinux的状态,默认情况下一般都是Enforcing状态,也就是强制启用的意思。SELinux一共有3种状态,分别是Enforcing,Permissive和Disabled状态。第一种是默认状态,表示强制启用,第二种是宽容的意思,即大部分规则都放行。第三种是禁用,即不设置任何规则。可以通过setenforce命令
2021-11-29 23:16:27
8630
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅