- 博客(301)
- 收藏
- 关注
原创 CMS场景YGC失败导致FULL GC的总结
物理分代场景下,ygc发生promotion failure都会触发full gc,但是parNew+cms组合有些非常规。在以上真实案例中,频繁发生的那些 CMS GC(每2秒一次)都没有触发,而只有最后一次(在并发标记阶段遇到 YGC)才触发说明是否导致,取决于它发生在 CMS 周期的哪个子阶段。
2026-06-05 15:00:14
267
原创 Vim编辑器指令
学习 Vim 就像学一门乐器,初看谱子很复杂,但一旦上手,效率会远超普通编辑器。它的核心秘诀就在于模式(Modes)。我把核心知识梳理了一下,希望能帮你理清头绪,少走弯路。
2026-04-13 15:31:32
457
原创 11-偏向锁
偏向锁是 Java 虚拟机(JVM)在 JDK 1.6 引入的一种锁优化机制。它的核心思想是“如果一个线程获得了锁,那么在没有其他线程竞争的情况下,该线程再次进入同一个同步块时,不需要再进行任何加锁操作。
2026-03-06 11:00:26
226
原创 手机热点搭建个人局域网
我有三个电脑,一个主力笔记本(32+500g),一个台式机(32+256g),一个老笔记本(4+500g),我希望另外两个机器也能作为我的开发和学习资源,为此我需要搭建一个局域网,让主力机通过final shell工具远程管理另外两台机器(linux系统)。左键双击以太网2,点击详细信息,由于以太网3已经建立了局域网,其中以太网2分配到了默认IP地址:192.168.137.1(也是网关)由于我的出租屋暂无网线,我试着用我的智能手机(无限流量)实现局域网的搭建。将路由器LAN口(任意一个)通过网线连接到。
2026-01-09 12:59:10
1364
转载 MVCC的作用和原理
从以上的描述中我们可以看出来,所谓的MVCC指的就是在使用这两种隔离级别的事务在执行普通的SEELCT操作时访问记录的版本链的过程,这样子可以使不同事务的读-写写-读操作并发执行,从而提升系统性能。
2025-12-28 13:19:29
126
原创 Activiti工作流
Activiti 是一个轻量级、开源的工作流和业务流程管理(BPM)系统,基于 Java 开发。它使用了 BPMN 2.0 (Business Process Model and Notation) 建模语言,提供了流程设计、部署、执行和监控等功能。开发手册:使用activiti的流程定义工具,用流程符号把整个流程设计出来导入流程定义文件,使用activiti提供的api解析文件数据并存储到数据库表名 介绍act_evt_log 流程引擎通用日志表。
2025-11-17 19:23:57
823
原创 Linux系统操作笔记
开启防火墙服务:systemctl start firewalld / service firewalld start。禁用防火墙服务:systemctl disable firewalld / service disable stop。关闭防火墙服务:systemctl stop firewalld / service firewalld stop。
2025-01-06 20:20:19
772
原创 Windows下安装Rabbit MQ
执行结果如下(如果执行失败,去rabbitmq官网检查otp配置和rabbitmq版本是否兼容)2.安装完毕后配置环境变量,path:%erlang_install_path%/bin;3.检查,打开cmd,输入erl,看到我们的erlang版本号,就说明安装成功了;初始可以通过用户名:guest 密码guest来登录。系统:windows11;1.执行otp.exe;来访问web端的管理界面。这就说明我们安装成功了。
2024-12-21 14:19:08
776
原创 微服务——服务配置中心
通过服务本地文件实现配置的缺点:1.缺少权限控制:由于配置能改变程序的行为,不正确的配置甚至能引起灾难,所以对配置的修改必须有比较完善的权限控制2.缺少版本控制:在整个开发过程中,配置会经常变更,版本控制非常必要;开发、测试、生产环境会有不同的配置参数;3.缺少实时控制:配置发生变化后,需要重启才能生效,费时费力,迫切需要实时生效;4.微服务和分布式带来的变更繁琐问题;
2024-11-26 19:46:13
501
原创 MySQL windows archive 安装
2.2.删除datadir // 即my.ini配置文件的datadir属性描述了data的存放路径,删除该data目录。1.mysqld --install mysql // mysql是本次安装的服务命名,也可以叫做mysql8 etc.2.3.mysqld --install mysql8 // 更改服务命名 重新安装。
2024-09-09 11:24:59
831
1
原创 Mysql8客户端连接异常:Public Key Retrieval is not allowed
mysql 8.0 默认使用 caching_sha2_password 身份验证机制 (即从原来mysql_native_password 更改为 caching_sha2_password。从 5.7 升级 8.0 版本的不会改变现有用户的身份验证方法,但新用户会默认使用新的 caching_sha2_password。客户端不支持新的加密方式。修改用户的密码和加密方式。方案一:在命令行模式下进入mysql,输入以下命令:或者然后就可以正常连接了。
2024-09-06 17:27:45
703
原创 kernel-devel导致的linux网卡驱动安装异常
安装包下载:iso镜像文件解压后进入package路径,可以找到所有想要的rpm安装包。
2024-08-02 06:21:08
616
原创 复杂的maven项目构建思路和方案
项目的pom还有其它引入方式,此处引入的是实际开发中用到的一种比较合理和易读的方式。也有些方式不会把module的依赖引到project.pom,此时如果module1依赖module2,则要在module1.pom中引入module2的依赖时加上version。sub_module3.pom文件。project.pom文件。module4.pom文件。
2024-07-05 18:36:38
463
原创 XXL-JOB
主要分为调动服务、应用服务,即应用服务对方法添加@Xxljob("taskname")注解标记为定时任务,然后注册到调度服务,最后调度服务会根据cron触发任务。@Scheduled 定时任务_DO your like的博客-优快云博客。分布式定时任务可以有效解决上述传统定时任务的缺陷。传统定时任务(以Spring自带定时任务为例)
2023-09-18 10:02:45
419
原创 Java IO基础梳理
NIO介绍全程java non-blocking IO,是JDK提供的新API。从1.4开始,提供了一系列改进的输入、输出特性,被统称为NIO,即同步非阻塞 NIO相关类放到了java.nio下,并且对原java.io包中的很多了进行了改写 NIO三大组件:Channel,Buffer,Selector NIO是面向缓冲区,或者面向块的编程。增加了处理的灵活性,实现了同步通信的非阻塞NIO和BIO的比较BIO以流的方式处理数据,NIO以块的方式处理数据,块IO的效率高很多 BIO是阻塞的,
2023-09-17 14:43:56
881
3
原创 Seata
seata中文使用文档概念Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。由一ID+三组件实现一IDTransaction ID XID 全局唯一三组件TC (Transaction Coordinator) - 事务协调者:维护全局和分支事务的状态,驱动全局事务提交或回滚。 TM (Transaction Manage...
2023-09-17 14:36:30
511
原创 @Scheduled 定时任务
/”代表触发步进(step),”/”前面的值代表初始值(““等同”0”),后面的值代表偏移量,比如”0/20”或者”/20”代表从0秒钟开始,每隔20秒钟触发1次,即0秒触发1次,20秒触发1次,40秒触发1次;”5/20”代表5秒触发1次,25秒触发1次,45秒触发1次;”10-45/20”代表在[10,45]内步进20秒命中的时间点触发,即10秒触发1次,30秒触发1次。“-“代表在指定的范围内触发,比如”25-45”代表从25秒开始触发到45秒结束触发,每隔1秒触发1次。“30 10 1?
2023-09-17 12:30:04
673
原创 SpringSecurity
1、SpringSecuritySpringSecurity本质上是一个基于ServletFilter实现的过滤器链框架,当容器创建时相关的过滤器都跟着被创建,其中常用的过滤器有下面几个org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter org.springframework.security.web.header.HeaderWriterFilter ...
2023-09-17 10:42:24
161
原创 Spring深入理解
1、IOC2、Spring如何启动3、Spring如何加载配置文件到应用程序4、掌握BeanDefinitionReader接口5、掌握BeanFactory接口6、掌握refresh方法7、BeanPostProcessor接口的作用和实现8、BeanFactoryPostProcessor接口的作用和实现9、SpringBean有无必要实现Aware接口10、SpringBean的实例化过程11、SpringBean的初始化12、掌握FactoryBean接口
2023-09-17 10:41:45
185
原创 Zookeeper客户端——I0Itec-zkClient
dubbo使用了zkClient而不是使用zookeeper本身的客户端与zookeeper进行交互,为什么呢?先看看zookeeper本身自带的客户端的问题。1)ZooKeeper的Watcher是一次性的,用过了需要再注册;2) session的超时后没有自动重连,生产环境中如果网络出现不稳定情况,那么这种情况出现的更加明显;3) 没有领导选举机制,集群情况下可能需要实现stand by,一个服务挂了,另一个需要接替的效果;4) 客户端只提供了存储byte数组的接口,而项目中一般都会使用
2023-09-17 10:39:10
240
原创 物理分代垃圾回收器
内存结构内存分配堆上分配 大多数情况在eden【年轻代中的一个区域】上分配,偶尔会直接在old【老年代】上分配,细节取决于GC的实现。 栈上分配(发生了指针逃逸,又叫指针逃逸分析——JVM优化) 原子类型的局部变量。GC1、在物理分代模型上,GC 从思想上分为 Young GC 和 Full GC,从实现上分为Minor GC、Major GC。【注:】方法区的数据是类信息,常量池什么的,而Young、Old是对象信息2、Young GC(通过 Minor GC 具体实现..
2023-08-02 19:18:30
266
原创 Rabbitmq使用笔记
延时队列在需要延时处理的场景下非常有用,使用 RabbitMQ 来实现延时队列可以很好地利用 RabbitMQ 的特性,如:消息可靠发送、消息可靠投递、死信队列,来保证消息至少被消费一次以及未被正确处理的消息不会被丢弃。另外,通过 RabbitMQ 集群的特性,可以很好要的解决单点故障问题,不会因为单个节点挂掉导致延时队列不可用或者消息丢失。
2023-07-14 08:02:39
719
原创 docker容器启动失败:Error response from daemon: driver failed programming external connectivity on endpoint
描述:体验Docker容器时对防火墙firewalld进行了同步操作,发生上述报错,原因:docker服务启动时定义的自定义链DOCKER,当 centos7 firewall 被清掉时,firewall的底层是使用iptables进行数据过滤,建立在iptables之上,这可能会与 Docker 产生冲突。解决方案当 firewalld 启动或者重启的时候,将会从 iptables 中移除 DOCKER 的规则,从而影响了 Docker 的正常工作,重启docker即可。
2023-07-06 10:20:25
471
原创 shell脚本
定义变量:变量名=变量值(前后不可有空格)撤销变量:unset 变量名声明静态变量:readonly 但不可撤销可以使用字母数字下划线,不可以数字开头,环境变量名推荐系统、自定义全局大写=两侧不可空格,如果变量值中有空格,可以用 " " 或者 ' ' 括起来bash中变量默认全部是字符串 无法直接数值运算 需要用运算符运算 后面会描述action;【注:】1.先声明函数再调用函数,shell是逐行解析,不想高级语言预先编译后再解析返回值只能通过$?获取,如果没有return,则。
2023-06-27 16:09:41
560
原创 网络IO(non-blocking io)基础
三大核心:selector、channel、buffer(基于linux系统select函数)JDK1.4起JDK源码提供nio包。
2023-04-11 17:21:22
1371
原创 brew安装问题:error: Not a valid ref: refs/remotes/origin/master
brew工具的重复安装
2022-10-24 15:26:42
2437
1
转载 MySQL5.7访问被拒 1045 (28000): Access denied for user ‘mysql‘@‘localhost‘ (using password: YES)
说一下目前的环境,本人在云服务器上的docker部署了mysql近来连接项目发现连不上,报错ERROR1045(28000)Accessdeniedforuser'root'@'localhost',网上查阅了各种资料,最后得以解决.这里条是授权相关的语句也是解决问题的关键,localhost代表的是你的地址root代表数据库密码,由于是docker容器启动的mysql,我发现这条语句执行完毕并不能解决问题。下面是最有争议的一步,网上大部分是。由此解决问题,mysql连接正常。...
2022-07-15 18:28:38
905
转载 String类为何final修饰
展开全部主要是为了“效率” 和 “安全性” 的缘故。若 String允许被继承, 由于它的高度被使用率, 会降低性能,所以String被final修饰。带有final修饰符的类是不可派生的。在Java核心API中,有许多应用final的例子,例如java.lang.String。为String类指定final防止了人们覆盖length()方法。另外,如果指定一个类为final,则该类所有的方法都是final。Java编译器会寻找机会内联(inline)所有的final方法(这和具体的...
2022-05-27 03:43:53
515
原创 MySQL核心点笔记
条件查询-- 1、关系运算符:> < >= <= = <> (也可以用!=,是一种宽容处理,不建议)select count(last_name),last_name,first_name FROM employees WHERE salary<>20000 -- 聚集函数只能显示一行-- 2、按逻辑表达式筛选:and or-- 3、范围表达式:between and,not between and-- 4、确定集合:in,not in--...
2022-05-22 19:21:23
15820
转载 StringUtil
StringUtils 方法的操作对象是 Java.lang.String 类型的对象,是 JDK 提供的 String 类型操作方法的补充,并且是 null 安全的(即如果输入参数 String 为 null 则不会抛出 NullPointerException ,而是做了相应处理,例如,如果输入为 null 则返回也是 null 等,具体可以查看源代码)。除了构造器,StringUtils 中一共有130多个方法,并且都是 static 的,所以我们可以这样调用 StringUtils.xxx()
2022-05-13 21:35:06
1076
转载 ThreadLocal
ThreadLocal对于每一位Java读者而言我想可能都不陌生,因为面试基本都会被问到。ThreadLocalJDK1.2的版本中就提供java.lang.ThreadLocal类,每一个ThreadLocal能够放一个线程级别的变量, 它本身能够被多个线程共享使用,并且又能够达到线程安全的目的,且绝对线程安全。ThreadLocal包含了四个方法:void set(Object value)设置当前线程的线程局部变量的值。public Object get()该方法返回当前线.
2022-05-07 11:40:32
450
原创 面向对象设计模式
开闭原则定义Software entities like classes,modules and functions should be open for extension but closed for modifications 一个软件实体, 如类, 模块, 函数等应该对扩展开放, 对修改封闭.这也是开放封闭原则的核心思想:对扩展开放,意味着有新的需求或变化时,可以对现有代码进行扩展,以适应新的情况。 对修改封闭,意味着类一旦设计完成,就可以独立完成其工作,而不要对已有代码进行任
2022-05-06 17:23:13
217
原创 Nacos程序连接MySQL8.0+ NullPointerException
1、报错问题:Nacos改用MySQL存储后,启动Nacos服务出现报错com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.Nat...
2022-04-22 01:20:41
795
原创 MySQL 8.0远程连接2059异常
native不支持MySQL8.0的root账号的密码验证插件,变更如下内容即可# 登录mysql -h localhost -u root -p# 修改加密规则password是自己的密码,root也是登陆账户,下同。ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; # 更新一下用户的密码ALTER USER 'root'@'localhost' IDENTIFIED WITH .
2022-04-21 16:45:32
984
原创 token续签总结
方式1、通过Redis设置时间过期登陆后端通过客户端的特征信息做md5加密,生产digest并存入Redis,设置EXP,比如2小时,生成无过期时间的Token返回前端后续请求后端通过客户端特征信息做md5加密,生成digest并到Redis查询:如果有值且ttl剩余1小时以上则不续签,处理token负载内容; 如果有值且ttl剩余不到1小时则续签,比如续签1小时,处理token负载内容; 如果无值,表示客户端特征信息有假不存在或者超过2小时R...
2022-04-01 23:07:34
2381
原创 SpringBoot启动失败报 “exit code 1“
SSM框架项目启动发现启动不起来,反而控制台无限输出:Logging initialized using 'class org.apache.ibatis.logging.stdout.StdOutImpl' adapter. ,这个错误只有在和Spring集成的情况下才会出现。每次只要出现这个错误都意味着Mybatis的存放sql操作的XML出错了,但是具体是那个XML还没法直接确认,因为这里的日志看不出来任何有用的信息。报错信息如下 . ____ ...
2022-04-01 21:51:14
2004
转载 Mybatis——插入语句useGeneratedKeys的用法
在使用mybatis时,常常会出现这种需求:当主键是自增的情况下,添加一条记录的同时,其主键是不能使用的,但是有时我们需要该主键,这时我们该如何处理呢?这时我们只需要在其对应xml中加入以下属性即可:useGeneratedKeys="true" keyProperty="对应的主键的对象"。如下例: 1 2 3 4 5 6 7 8 <!-- 主要是在主键是自增的情况下,添加成功后可以直接使用主键值,...
2022-03-31 01:25:02
990
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅