自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Debezium介绍

Debezium是一个开源的分布式平台,用于捕获数据库的变更事件(CDC,Change Data Capture)。它能够实时捕获数据库中的行级更改,并将这些更改作为事件流发送到消息中间件(如 Apache Kafka)。Debezium 构建于 Apache Kafka Connect 之上,提供了一组 Kafka Connect 兼容的连接器,每个连接器都针对特定的数据库管理系统(DBMS)。高可用。

2025-03-22 10:40:42 1064

原创 Kafka集成Debezium监听postgresql变更

下载postgres的插件:https://debezium.io/documentation/reference/2.7/install.html。使用命令启动 Kafka Connect 服务(单机kafka)pgsql修改配置文件:postgresql.conf。进入kafka配置目录配置连接器(单机kafka)2.7版本支持postgresql12数据库。

2025-03-22 09:16:15 500

原创 centos7安装单机kafka

kafka-console-consumer.sh 使用 consumer 控制台订阅 topic。kafka-console-producer.sh 使用 producer 控制台发布 event。下载安装包并进行解压:kafka_2.12-2.2.1.tgz。验证kafka是否启动成功。

2025-03-22 09:08:21 433

原创 centos7安装单机zookeeper

下载安装包并解压:apache-zookeeper-3.4.14-bin.tar.gz。

2025-03-22 09:06:35 315

原创 centos7搭建postgresql12主从

主从搭建192.168.159.101 node1 主库(读写)192.168.159.102 node2 备库(只读)

2025-03-22 09:02:31 254

原创 centos7安装postgresql12

配置centos用户信息,pgsql不能在root用户启动。修改pg_hba.conf。

2025-03-22 08:57:10 144

原创 Springboot集成Debezium监听postgresql变更

2.application.properties配置。1.创建springboot项目引入pom。

2025-03-22 08:53:22 420

原创 docker搭建elk

2.ES配置elasticsearch.yml3.logstash配置logstash.ymllogstash.conf:4.kibana配置kibana.yml:

2025-03-12 19:57:48 502

原创 检查表达式是否合法

【代码】检查表达式是否合法。

2025-02-05 21:18:16 118

原创 JDK9新特性

a ==> 1b ==> 2$7 ==> 3...> }| 已创建 方法 sum(int,int)$9 ==> 3...> int a;...> int b;...> }...> }...> }| 已创建 类 Calc$12 ==> 3。

2025-02-05 21:09:34 1109

原创 CompleteFuture详解

如上图所示,这里描绘的是一个业务接口的流程,其中包括CF1/CF2/CF3/CF4/CF5共5个步骤,并描绘了这些步骤之间的依赖关系,每个步骤可以是一次RPC调 用、一次数据库操作或者是一次本地方法调用等,在使用CompletableFuture进行 异步化编程时,图中的每个步骤都会产生一个CompletableFuture对象,最终结果 也会用一个CompletableFuture来进行表示。传递时使用指定线程池中的线程,当不传递时,会使用ForkJoinPool中的共用线程池 CommonPool。

2024-12-30 19:37:38 1147 1

原创 三种SPI机制的了解及使用

实现DBApi接口,并且在resources下创建META-INF/services/全限定接口名称文件,这里如上图所示,然后文件中写实现类的全限定类名。SPI的本质就是将接口实现类的全限定名配置在文件中,并由服务加载器读取配置文件,加载实现类型。注意模块之间需要对应引用依赖,比如:db-api需要被其他三个模块引入,main-project要引入两个实现模块依赖。方式实现SPI机制,可以在不修改源码的前提下,提供Spring框架的扩展性。Spring SPI沿用了Java SPI的设计思想,采用。

2024-10-27 11:18:06 871

原创 SpringBoot自定义starter

resources -> META_INF -> spring -> org.springframework.boot.autoconfigure.AutoConfiguration.imports 文件。resources -> META_INF -> spring.factories # SpringBoot 2.7以前写法,2.7版本废除,3版本后终止使用。访问结果:http://localhost:8081/test/starter。2.7~3.0之间,两种方式共存。

2024-10-26 11:11:47 387 1

原创 策略模式结合Spring使用

【代码】策略模式结合Spring使用。

2024-05-30 23:21:24 502

原创 Vue父子组件传值

父组件传递过来的值:num:{{num}} 减加子组件的值:{{num}}

2024-05-23 20:44:42 493

原创 mybatis批量提交工具类

【代码】mybatis批量提交工具类。

2024-05-21 22:39:59 392

原创 mybatis代码生成器

【代码】mybatis代码生成器。

2024-05-21 22:29:58 299

原创 Jenkins的快速入门

GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。GitLab和GitHub一样属于第三方基于Git开发的作品,免费且开源(基于MIT协议),与Github类似,可以注册用户,任意提交你的代码,添加SSHKey等等。不同的是,GitLab是可以部署到自己的服务器上,数据库等一切信息都掌握在自己手上,适合团队内部协作开发,你总不可能把团队内部的智慧总放在别人的服务器上吧?简单来说可把GitLab看作个人版的GitHub。

2024-03-22 00:06:42 1926

原创 数据结构-栈-表达式运算

【代码】数据结构-栈-表达式运算。

2024-03-10 22:31:10 582 1

原创 数据结构-稀疏数组

当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。

2024-03-10 10:06:42 470

原创 mysql死锁排查

查看等待锁的事务:SELECT * FROM information_schema.INNODB_LOCK_WAITS。查看正在锁的事务:SELECT * FROM information_schema.INNODB_LOCKS。查看正在运行的事务:SELECT * FROM information_schema.INNODB_TRX。查看事务:SELECT * FROM information_schema.INNODB_TRX。查看线程列表:show processlist;表中数据:student。

2024-01-04 22:29:21 1573

原创 Reactor线程模型详解

在目前的线程模型中一种是传统阻塞的I/O模型,一种是Reactor线程模型。

2023-12-13 23:54:54 1625

原创 IO零拷贝

Linux 2.1 开始提供了 sendFile 函数,其基本原理是:数据根本不经过用户态,直接从 Kernel Buffer 进入到 Socket Buffer,并且由于和用户态完全无关,这就避免了一次上下文切换。因此零拷贝通常是站在操作系统的角度看,即整个过程中,内核缓冲区之间是没有重复数据的。由此可见,复制的操作太频繁,共有 2 次 DMA 拷贝、2 次 CPU 拷贝、4 次上下文切换。紧接着发生第二次数据拷贝,即从内核缓冲区拷贝到用户缓冲区,同时发生一次内核态到用户态的上下文切换。

2023-12-13 23:19:42 979

原创 Linux的五种IO模型

不管使用何种方式,好处都是应用进程不会阻塞,可以继续执行,只要等待信号通知数据准备好被处理了、数据准备好被读取了。操作系统内核收到用户进程发起的请求后,从 I/O 设备读取数据到 kernel buffer 中,再将 buffer 中的数据拷贝到用户进程的地址空间,用户进程获取到数据后返回给客户端。和信号驱动 I/O 模型的区别是前者内核告诉我们何时可以开始一个 I/O 操作,而后者内核会告诉我们一个 I/O 操作何时完成。众所周知,出于对 OS 安全性的考虑,用户进程是不能直接操作 I/O 设备的。

2023-12-13 23:08:50 1462 1

原创 基于ReentrantLock详解AQS源码

7.上述流程可以说是公平锁的抢占方式,每次都是队列头节点的下一个节点抢到锁,严格排队枪锁,如果是非公平锁,则在唤醒head的下一个节点进行抢锁时,其他线程也可以在此期间抢锁,如果被其他线程抢到锁,则head的下一个节点还是会重新挂起,然后新的抢占锁的线程会重新关联head节点。6.线程三释放锁,把AQS中的state设置为0,清空持有锁线程,队列中的节点还是存在一个头节点,这个节点的内容都是空的,只要头节点创建出来了就一直存在,持有锁的线程会关联头节点。

2023-12-12 23:49:40 1451

原创 HashMap JDK1.8源码详解

首先将高16位无符号右移16位与低十六位做异或运算。如果不这样做,而是直接做&运算那么高十六位所代表的部分特征就可能被丢失 将高十六位无符号右移之后与低十六位做异或运算使得高十六位的特征与低十六位的特征进行了混合得到的新的数值中就高位与低位的信息都被保留了 ,而在这里采用异或运算而不采用& ,| 运算的原因是 异或运算能更好的保留各部分的特征,如果采用&运算计算出来的值会向1靠拢,采用|运算计算出来的值会向0靠拢。int类型的数值是4个字节的,右移16位异或可以同时保留高16位于低16位的特征。

2023-09-10 22:31:14 225

原创 ConcurrentHashMap jdk1.8源码详解

原理:cas + synchronized + 数组 + 链表 + 红黑树。用来标识旧hash表扩容后占位的临时节点,即当前桶扩容迁移成功的标识。

2023-09-07 20:38:38 686

原创 shiro快速入门

基本上涉及到用户参与的系统都需要进行权限管理,权限管理属于系统安全的范畴,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户可以访问而且只能访问自己被授权的资源。权限管理包括用户身份认证和授权两部分,简称认证授权,对于需要访问控制的资源用户首先经过身份认证,认证过后用户具有该资源的访问权限即可访问。身份认证,就是判断一个用户是否为合法用户的处理过程,最常用的简单身份认证方式是系统通过核对用户输入的用户名和口令,看其是否与系统中存储的该用户的用户名和口令一致,来判断用户身份是否正确。

2023-08-02 23:19:11 271

原创 RabbitMQ快速入门

……导入依赖:发送消息模块:接收消息模块:发送消息:接收消息:Fanout类型的交换机:发送消息:接收消息:Topic类型的交换机:发送消息:接收消息:总结:Topic类型的交换机也是消息一对多的一种交换机类型,它和fanout都能实现一个消息同时发送给多个队列;fanout更适用于使用在一个功能不同的进程来获取数据,例如,手机App中的消息推送,一个App可能会还有很多个用户来进行安装,然后他们都会启动一个随机的队列来接收者自己的数据;Topic更适用于不同功能模块来接收同一个消息,

2023-08-02 23:10:49 2402 1

原创 Hibernate Validator

Null 被注释的元素必须为 null@NotNull 被注释的元素必须不为 null@AssertTrue 被注释的元素必须为 true@AssertFalse 被注释的元素必须为 false@Min(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值@Max(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值@DecimalMin(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值。

2023-08-02 22:46:59 680

原创 docker快速入门

Docker 本身是一个容器运行载体或称之为管理引擎。我们把应用程序和配置依赖打包好形成一个可交付的运行环境,这个打包好的运行环境就是image镜像文件。只有通过这个镜像文件才能生成Docker容器实例(类似Java中new出来一个对象)。image文件可以看作是容器的模板。Docker 根据 image 文件生成容器的实例。同一个 image 文件,可以生成多个同时运行的容器实例。

2023-08-02 22:34:36 1006

原创 单调递减队列

【代码】单调递减队列。

2023-05-09 21:58:03 155

原创 字符串匹配KMP

字符串匹配是计算机的基本任务之一。举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"?许多算法可以完成这个任务,Knuth-Morris-Pratt算法(简称KMP)是最常用的之一,它以三个发明者命名,起头的那个K就是著名科学家Donald Knuth。这种算法不太容易理解,网上有很多解释,但读起来都很费劲。直到读到...

2023-04-22 16:01:00 190 1

原创 ProcessBuilder工具类及执行多条命令

【代码】ProcessBuilder执行多条命令。

2023-04-01 10:46:01 2551

原创 centos7安装转码工具

【代码】centos7安装转码工具。

2023-04-01 10:41:38 158

原创 spring多线程事务控制

【代码】spring多线程事务控制。

2023-03-14 23:00:19 792

原创 JavaSE知识点总结

Java基础

2023-02-20 22:29:44 173

原创 git常用命令总结

工作区 —> 暂存区 —> 本地库 远程库。

2022-12-28 09:19:33 284

原创 redis的分片的数据倾斜问题

https://blog.youkuaiyun.com/weixin_43909795/article/details/125482881

2022-12-18 19:27:17 203

原创 给定两个二叉树的节点node1和node2,找到他们的最低公共祖先节点

【代码】给定两个二叉树的节点node1和node2,找到他们的最低公共祖先节点。

2022-12-11 20:52:29 451

空空如也

空空如也

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

TA关注的人

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