自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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

原创 Linux真实机器安装

装机电脑:具有网卡硬件、磁盘空间 >= 64G、内存空间 >= 4G;,u盘(8G);联网工具:路由器,网线。

2024-08-01 21:58:04 2625

原创 复杂的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

原创 k8s一站式使用笔记

个人感觉比较磨心态,要坐住,因为细节太多,建议:一遍看个大概,二遍回来细品,不要当成任务,把握零碎时间。

2023-07-29 17:48:17 1137 1

原创 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

原创 字段更新器

2023-03-27 15:23:13 500

原创 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关注的人

提示
确定要删除当前文章?
取消 删除