自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(287)
  • 收藏
  • 关注

原创 XXL-JOB

主要分为调动服务、应用服务,即应用服务对方法添加@Xxljob("taskname")注解标记为定时任务,然后注册到调度服务,最后调度服务会根据cron触发任务。@Scheduled 定时任务_DO your like的博客-CSDN博客。分布式定时任务可以有效解决上述传统定时任务的缺陷。传统定时任务(以Spring自带定时任务为例)

2023-09-18 10:02:45 200

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

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

原创 SpringSecurity

1、SpringSecuritySpringSecurity本质上是一个基于ServletFilter实现的过滤器链框架,当容器创建时相关的过滤器都跟着被创建,其中常用的过滤器有下面几个org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter org.springframework.security.web.header.HeaderWriterFilter ...

2023-09-17 10:42:24 66

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

原创 Zookeeper客户端——I0Itec-zkClient

dubbo使用了zkClient而不是使用zookeeper本身的客户端与zookeeper进行交互,为什么呢?先看看zookeeper本身自带的客户端的问题。1)ZooKeeper的Watcher是一次性的,用过了需要再注册;2) session的超时后没有自动重连,生产环境中如果网络出现不稳定情况,那么这种情况出现的更加明显;3) 没有领导选举机制,集群情况下可能需要实现stand by,一个服务挂了,另一个需要接替的效果;4) 客户端只提供了存储byte数组的接口,而项目中一般都会使用

2023-09-17 10:39:10 64

原创 物理分代垃圾回收器

内存结构内存分配堆上分配 大多数情况在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 167

原创 k8s一站式使用笔记

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

2023-07-29 17:48:17 675

原创 Rabbitmq使用笔记

延时队列在需要延时处理的场景下非常有用,使用 RabbitMQ 来实现延时队列可以很好地利用 RabbitMQ 的特性,如:消息可靠发送、消息可靠投递、死信队列,来保证消息至少被消费一次以及未被正确处理的消息不会被丢弃。另外,通过 RabbitMQ 集群的特性,可以很好要的解决单点故障问题,不会因为单个节点挂掉导致延时队列不可用或者消息丢失。

2023-07-14 08:02:39 410

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

原创 shell脚本

定义变量:变量名=变量值(前后不可有空格)撤销变量:unset 变量名声明静态变量:readonly 但不可撤销可以使用字母数字下划线,不可以数字开头,环境变量名推荐系统、自定义全局大写=两侧不可空格,如果变量值中有空格,可以用 " " 或者 ' ' 括起来bash中变量默认全部是字符串 无法直接数值运算 需要用运算符运算 后面会描述action;【注:】1.先声明函数再调用函数,shell是逐行解析,不想高级语言预先编译后再解析返回值只能通过$?获取,如果没有return,则。

2023-06-27 16:09:41 173

原创 网络IO(non-blocking io)基础

三大核心:selector、channel、buffer(基于linux系统select函数)JDK1.4起JDK源码提供nio包。

2023-04-11 17:21:22 1252 1

原创 字段更新器

2023-03-27 15:23:13 405

原创 brew安装问题:error: Not a valid ref: refs/remotes/origin/master

brew工具的重复安装

2022-10-24 15:26:42 1480 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 751

转载 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 417

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

转载 StringUtil

StringUtils 方法的操作对象是 Java.lang.String 类型的对象,是 JDK 提供的 String 类型操作方法的补充,并且是 null 安全的(即如果输入参数 String 为 null 则不会抛出 NullPointerException ,而是做了相应处理,例如,如果输入为 null 则返回也是 null 等,具体可以查看源代码)。除了构造器,StringUtils 中一共有130多个方法,并且都是 static 的,所以我们可以这样调用 StringUtils.xxx()

2022-05-13 21:35:06 712

转载 ThreadLocal

ThreadLocal对于每一位Java读者而言我想可能都不陌生,因为面试基本都会被问到。ThreadLocalJDK1.2的版本中就提供java.lang.ThreadLocal类,每一个ThreadLocal能够放一个线程级别的变量, 它本身能够被多个线程共享使用,并且又能够达到线程安全的目的,且绝对线程安全。ThreadLocal包含了四个方法:void set(Object value)设置当前线程的线程局部变量的值。public Object get()该方法返回当前线.

2022-05-07 11:40:32 254

原创 面向对象设计模式

开闭原则定义Software entities like classes,modules and functions should be open for extension but closed for modifications 一个软件实体, 如类, 模块, 函数等应该对扩展开放, 对修改封闭.这也是开放封闭原则的核心思想:对扩展开放,意味着有新的需求或变化时,可以对现有代码进行扩展,以适应新的情况。 对修改封闭,意味着类一旦设计完成,就可以独立完成其工作,而不要对已有代码进行任

2022-05-06 17:23:13 107

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

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

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

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

转载 Mybatis——插入语句useGeneratedKeys的用法

在使用mybatis时,常常会出现这种需求:当主键是自增的情况下,添加一条记录的同时,其主键是不能使用的,但是有时我们需要该主键,这时我们该如何处理呢?这时我们只需要在其对应xml中加入以下属性即可:useGeneratedKeys="true" keyProperty="对应的主键的对象"。如下例: 1 2 3 4 5 6 7 8 <!-- 主要是在主键是自增的情况下,添加成功后可以直接使用主键值,...

2022-03-31 01:25:02 807

转载 Filter、FilterChain、FilterConfig 介绍

一、Filter 的基本工作原理1、Filter 程序是一个实现了特殊接口的 Java 类,与 Servlet 类似,也是由 Servlet 容器进行调用和执行的。 2、当在 web.xml 注册了一个 Filter 来对某个 Servlet 程序进行拦截处理时,它可以决定是否将请求继续传递给 Servlet 程序,以及对请求和响应消息是否进行修改。 3、当 Servlet 容器开始调用某个 Servlet 程序时,如果发现已经注册了一个 Filter 程序来对该 Servlet 进行拦截,那么容器

2022-03-20 13:51:10 504

原创 vm中的网络问题记录

1、后台的dhcp服务关闭引发的网关域名服务失效vm中之前有一个centos,现在用起来发现没了外网,搞了半天记录下问题情况:内网正常,说明网关也正常,可就是不连网 vm的后台net协议正常,说明网关能连接外网 宿主机也有网络,说明不存在网络硬性问题 用的静态ip,vm的后台自动关闭了dhcp服务判断:vm的dhcp服务是由一个虚拟ip提供,但感觉不只如此,可能网关的域名服务也因此受了影响,也就是说网关的域名服务失效测试:vi /etc/sysconfig/n...

2022-03-18 15:32:56 964

原创 红黑树逻辑

1、规则每个节点不是黑色就是红色 根节点是黑色 如果红色节点下有子节点,必定都是黑色 任一节点到每个叶子节点的路径中含有相同数量的黑色节点2、红黑树自平衡三招左旋:以某个节点作为指点,其右子节点变为旋转节点的父节6点,右子节点的左子节点变为旋转节点的右子节点,左子节点保持不变右旋:以某个节点作为指点,其左子节点变为旋转节点的父节点,左子节点的右子节点变为旋转节点的左子节点,右子节点保持不变变色:节点颜色由黑变红、由红变黑(不好理解,配图如下)...

2022-03-15 18:33:10 1196

原创 获取源码并打包到maven仓库

以swagger-bootstrap-ui为例1.把项目下载到本地git clone https://codeload.github.com/xiaoymin/swagger-bootstrap-ui/zip/refs/tags/v1.9.22.编译项目mvn install -f .../src/pom.xml -Dmaven.test.skip=true(操作的文件是项目src路径下的pom.xml)3.安装到maven本地仓库中mvn install:install-fil..

2022-03-09 07:56:06 623

转载 共享锁、排他锁、互斥锁、悲观锁、乐观锁、行锁、表锁、页面锁、不可重复读、丢失修改、读脏数据

共享锁(S锁)又称为读锁,可以查看但无法修改和删除的一种数据锁。如果事务T对数据A加上共享锁后,则其他事务只能对A再加共享锁,不能加排它锁。获准共享锁的事务只能读数据,不能修改数据。 共享锁下其它用户可以并发读取,查询数据。但不能修改,增加,删除数据。资源共享.排它锁(X锁)又称为写锁、独占锁,若事务T对数据对象A加上X锁,则只允许T读取和修改A,其他任何事务都不能再对A加任何类型的锁,直到T释放A上的锁。这就保证了其他事务在T释放A上的锁之前不能再读取和修改A互斥锁在编程中,引入了对象

2021-12-10 23:24:47 247

原创 反射机制——字节码管理器

一、啥是反射机制Java反射机制在运行状态中,对于任意一个类,都能够拿到这个类的所有属性和方法,对于任意一个对象,都能够动态调用他们的任意属性和方法,这种动态获取类信息和动态调用对象的资源功能就是反射机制。二、在JDK中,主要由下面类来实现JAVA的反射机制,这些类位于java.lang.reflect包中—— Class 类:代表一个类,这是最根本类—— Field 类:代表类的成员变量—— Method 类:代表类的成员方法—— Constructor 类:代表类的构..

2021-12-06 09:23:13 93

原创 MyISAM和InnoDB的区别

MyISAM和InnoDB MyISAM InnoDB 外键 不支持 支持 事务 不支持 支持 行/表锁 表锁,不适合高并发 行锁,适合高并发 缓存 只缓存索引,不缓存真实数据 不仅缓存索引,还缓存真实数据;对内存要求高,而且内存大小对性能有直接影响 关注 节省资源,消耗少 并发写、事务、耗资源 ...

2021-12-06 09:21:47 160

转载 应用RSet的垃圾回收器

在CMS中,有RSet的概念只能做老年代回收器 在老年代中有一块区域用来记录指向新生代的引用 在进行Young GC时,扫描根时,仅仅需要扫描这一块区域,而不需要扫描整个老年代。 这是一种point-out(外部指针)在G1中RSet的概念,YoungGC 阶段:使用point-in(内部指针)来解决 标记哪些新生代引用老年代 原因在于每次GC时,所有新生代都会被扫描, 检测从年轻代指向年老代的对象 分区中存放的是卡表 如果引用的对象很多,赋值器需要对每个引用做处理,赋值器开.

2021-12-06 08:39:43 385

原创 redis关于集群的快速搭建——全网最快速无坑

依赖安装redis安装集群测试

2021-11-22 14:37:52 798

原创 JVM内存结构

JVM流程图JVM流程图细化

2021-10-26 20:23:35 58

原创 Class文件

Magic NumberMinor VersionMajor Versionconstant_pool_countconstant_poolaccess_flagsthis_classsuper_classinterfaces_countinterfacesfields_countfieldsmethods_countmethodsattributes_countattributes

2021-09-12 10:27:21 57

原创 分布式ID算法——雪花算法

所需ID的业务需求全局唯一 趋势递增 单调递增:保证下一个ID一定大于上一个ID,例如事务版本号、IM增量消息、排序等 信息安全 含时间戳ID号生成系统的可用性高可用:要保证99.999% 低延迟:发一个获取分布式ID的请求,服务器就是要快,极速 高QPS:加入并发一口气10万个请求,要顶住且成功响应10万个请求背景MySQL官方强烈建议id越短越好,有助于减少存储容量;要有序,有助于B+树的构建,现在的主流解决方案如下,各有缺点:UUID生成的字符:问题是长度36且无序

2021-08-20 00:09:41 298

原创 Reactor默认

单Reactor单线程模式单Reactor单线程模式示意图如上图所示,很简单,一个线程即处理连接又处理请求优点:简单,适合单核cpu处理,不存在线程安全问题缺点:性能跟不上,只适合简单的业务场景,白瞎多核cpu性能;可靠性低下,出现IO异常(意外中断,死循环等)使整个系统无法接收处理请求,造成节点故障适用场景:处理请求有限,数据安全要求不高的情况单Reactor多线程模式单Reactor多线程示意图示意图整个执行流程如下:事件监听有Reactor执...

2021-08-19 22:09:49 85

原创 Spring应用

bean定义基本的几个属性值有id、name、classid是唯一指定标识,name可以有多个,class指定bean类型<bean id="person" name="n1,n2,n3" class="com.baizhiedu.basic.Person" scope="singleton"></bean>如果是web服务,IOC容器类型为XmlWebApplicationContext,我是在测试环境下,用ClassPathXmlApplicationConte

2021-08-05 18:40:51 1792 7

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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