<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[marching1986的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/marching1986</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; marching1986]]></copyright><item><title><![CDATA[构建高效的文本相似度计算系统：本地模型与向量数据库实践]]></title><link>https://blog.youkuaiyun.com/marching1986/article/details/154445405</link><guid>https://blog.youkuaiyun.com/marching1986/article/details/154445405</guid><author>marching1986</author><pubDate>Wed, 05 Nov 2025 15:46:46 +0800</pubDate><description><![CDATA[本地嵌入模型：使用Qwen系列模型进行文本向量化向量数据库：基于SQLite的轻量级向量存储方案相似度计算：基于余弦相似度的语义匹配API服务：提供RESTful接口供外部调用。]]></description><category></category></item><item><title><![CDATA[本地开发测试用的负载均衡实现]]></title><link>https://blog.youkuaiyun.com/marching1986/article/details/150396894</link><guid>https://blog.youkuaiyun.com/marching1986/article/details/150396894</guid><author>marching1986</author><pubDate>Thu, 14 Aug 2025 17:57:09 +0800</pubDate><description><![CDATA[此注解确保所有服务调用均使用我们定义的。本文实现的✅ 客户端IP感知✅ 本地实例优先✅ 标准Nacos负载均衡兜底✅ 完整日志追踪。]]></description><category></category></item><item><title><![CDATA[install_xxljob_docker.sh]]></title><link>https://blog.youkuaiyun.com/marching1986/article/details/149808748</link><guid>https://blog.youkuaiyun.com/marching1986/article/details/149808748</guid><author>marching1986</author><pubDate>Thu, 31 Jul 2025 16:31:22 +0800</pubDate><description><![CDATA[echo -e "► 控制台地址: \033[34mhttp://${EXISTING_MYSQL_HOST}:${XXL_JOB_ADMIN_PORT}/xxl-job-admin\033[0m"echo -e "► 管理员账号: \033[33m${XXL_JOB_ADMIN_USER}\033[0m"echo -e "► 管理员密码: \033[33m${XXL_JOB_ADMIN_PASS}\033[0m"EXISTING_MYSQL_PASSWORD=""    # 数据库密码（建议强密码）]]></description><category></category></item><item><title><![CDATA[Mysql -（innodb）多版本多版本并发控制]]></title><link>https://blog.youkuaiyun.com/marching1986/article/details/108609279</link><guid>https://blog.youkuaiyun.com/marching1986/article/details/108609279</guid><author>marching1986</author><pubDate>Tue, 15 Sep 2020 20:51:09 +0800</pubDate><description><![CDATA[Mysql -（innodb）多版本多版本并发控制

MVCC是行级锁的一个变种，在很多情况下避免了加锁的操作，实现了非阻塞的读操作，写操作也只锁定必要的行。MVCC的实现，是通过保存数据在某个时间点的快照来实现的。

InnoDB的MVCC，是通过在每行记录后面保存两个隐藏的列来实现的。其中，一列保存了行的创建时的系统版本号（system version number），一列保存了行的更新或者删除时的系统版本号。每开始一个新的事务，系统版本号都会自动递增。事务开始时刻的系统版本号会作为会作为事务的版本号，]]></description><category></category></item><item><title><![CDATA[Oracle笔记-SQL优化]]></title><link>https://blog.youkuaiyun.com/marching1986/article/details/107296696</link><guid>https://blog.youkuaiyun.com/marching1986/article/details/107296696</guid><author>marching1986</author><pubDate>Sun, 12 Jul 2020 11:11:19 +0800</pubDate><description><![CDATA[Oracle数据库里SQL优化的终极目标就是要缩短sql语句的执行时间。要达到上述目的，我们通常只有如下三种方法可以选择。

降低目标sql的资源消耗。
并行执行目标sql语句。
平衡系统资源的消耗。

Oracle数据库里sql优化方法论包含如下核心内容:

Oracle里SQL优化的本质是基于对CBO和执行计划的深刻理解。
Oracle里SQL优化需要联系实际的业务。
Oracle里SQL优化需要适合的使用绑定变量。

降低目标sql的资源消耗
“降低目标sql的资源消耗”以缩短执行时间，这是最常用的s]]></description><category></category></item><item><title><![CDATA[oracle的多版本控制]]></title><link>https://blog.youkuaiyun.com/marching1986/article/details/106675850</link><guid>https://blog.youkuaiyun.com/marching1986/article/details/106675850</guid><author>marching1986</author><pubDate>Wed, 10 Jun 2020 21:47:34 +0800</pubDate><description><![CDATA[多版本控制
oracle采用了多版本、读一致的并发模型，多版本指oracle能够同时维护多个版本（或时间点）的数据。多版本控制是并发控制的基础，oracle利用这种机制提供了以下特性：

读一致查询：对于一个给定的时间点(point in time),查询会产生一样的结果。
非阻塞查询：查询的会话不会被写入的会话阻塞。oracle利用多版本控制得到结果（查询开始时时间点的结果），在查询的过程中，不需要对任何数据加锁。

oracle使用事务机制，在修改数据时，生成redo和undo日志。redo中的记录用于]]></description><category></category></item><item><title><![CDATA[centos中rabbitmq3.7.18安装]]></title><link>https://blog.youkuaiyun.com/marching1986/article/details/106592978</link><guid>https://blog.youkuaiyun.com/marching1986/article/details/106592978</guid><author>marching1986</author><pubDate>Sat, 06 Jun 2020 20:27:30 +0800</pubDate><description><![CDATA[[官方网站]https://www.rabbitmq.com/
RabbitMQ是实现了高级消息队列协议（AMQP）的开源消息代理软件（亦称面向消息的中间件）,其服务端是用Erlang语言编写的，需要版本对应，关联版本地址
https://www.rabbitmq.com/which-erlang.html
##安装erlang

安装erlang

cd /usr/local/
mkdir erlang
##下载erlang
wget https://github.com/rabbitmq/erlang-]]></description><category></category></item><item><title><![CDATA[JVM笔记]]></title><link>https://blog.youkuaiyun.com/marching1986/article/details/106576089</link><guid>https://blog.youkuaiyun.com/marching1986/article/details/106576089</guid><author>marching1986</author><pubDate>Fri, 05 Jun 2020 19:51:11 +0800</pubDate><description><![CDATA[运行时数据区域

方法区、虚拟机栈、本地方法栈、堆、程序计数器。



方法区：各个线程的共享区域，用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等信息。


程序计数器：线程私有的内存区域，是当前线程所执行的字节码的行号指示器。


虚拟机栈： 线程私有的内存区域，生命周期和线程相同，描述了java方法执行的内存模型：每个方法被执行时都会创建一个栈帧（Stack Frame）用于存储局部变量表、操作数栈、动态链接、方法出口等信息。局部变量表存放了编译期可知的各种基本数据类型、对象引]]></description><category></category></item><item><title><![CDATA[oracle笔记-常用数据类型]]></title><link>https://blog.youkuaiyun.com/marching1986/article/details/106549657</link><guid>https://blog.youkuaiyun.com/marching1986/article/details/106549657</guid><author>marching1986</author><pubDate>Thu, 04 Jun 2020 16:16:35 +0800</pubDate><description><![CDATA[表
oracle支持多种表类型：

堆组织表（heap prganized,默认的“普通”表）：数据在其中以堆的方法管理。增加数据时，会找到并使用段中第一个能放下此数据的自由空间。
索引组织表(index organized table)：按索引结构存储。IOT对信息检索，空间数据和OLAP应用特别有用。
索引聚簇表(index clustered)：聚簇是指一个或多个表组成的组，这些表中的数据物理地址存储在相同的数据块上，有相同聚簇键值的所有物理行存储在相邻的位置。索引聚簇表的优点是当平凡访问以聚簇键连接]]></description><category></category></item><item><title><![CDATA[oracle笔记-锁]]></title><link>https://blog.youkuaiyun.com/marching1986/article/details/106307423</link><guid>https://blog.youkuaiyun.com/marching1986/article/details/106307423</guid><author>marching1986</author><pubDate>Sat, 23 May 2020 22:28:34 +0800</pubDate><description><![CDATA[在oracle中主要有3类锁


DML锁：一般指select，insert，update，merge和delete语句。DML锁机制允许并发执行修改。例如，DML锁可能是特定数据行的锁，或者是锁定表中所有行的锁。


DDL锁：如create和alter语句等。DDL锁可以保护对象的结构定义。


内部锁和闩：oracle使用这些锁来保护其内部数据结构。例如，oracle解析一个查询并生成优化的查询计划时，它会把库缓存闩上，将查询计划放在那里，以供其他回话使用。


DML锁
DML锁用于确保一次只有一个]]></description><category></category></item><item><title><![CDATA[MyBatis 插件原理与自定义插件]]></title><link>https://blog.youkuaiyun.com/marching1986/article/details/106289641</link><guid>https://blog.youkuaiyun.com/marching1986/article/details/106289641</guid><author>marching1986</author><pubDate>Fri, 22 May 2020 20:17:56 +0800</pubDate><description><![CDATA[MyBatis 通过提供插件机制，让我们可以根据自己的需要去增强 MyBatis 的功能。
mybatis可拦截的相关对象及方法
插件调用流程如下图：

下面我们利用其插件机制实现替换其sql参数为真实的值插件。
package com.march.common.mybatis.plugin;

import org.apache.ibatis.cache.CacheKey;
import org.apache.ibatis.executor.Executor;
import org.apache.ibat]]></description><category></category></item><item><title><![CDATA[TCP数据传输机制]]></title><link>https://blog.youkuaiyun.com/marching1986/article/details/106268292</link><guid>https://blog.youkuaiyun.com/marching1986/article/details/106268292</guid><author>marching1986</author><pubDate>Thu, 21 May 2020 21:47:48 +0800</pubDate><description><![CDATA[TCP数据传输机制
TCP的段结构

    源端口目标端口
    序列号
    确认号
    头长度标志窗口
    校验和
        紧急数据指针
    选项(可变长度)
    数据



源端口：16 byte，源节点进程端口


目标端口：16 byte，目标节点端口


序列号： 32 byte，TCP对字节流中的每个字节都编号。假设每个数据段包含1000个数据字节，第一个字节的编号为X,则对于字节流中各段的第一个字节的序列号分别为：X，X + 1000，X + 2000等。


]]></description><category></category></item><item><title><![CDATA[一次普通的http请求]]></title><link>https://blog.youkuaiyun.com/marching1986/article/details/106214152</link><guid>https://blog.youkuaiyun.com/marching1986/article/details/106214152</guid><author>marching1986</author><pubDate>Wed, 20 May 2020 21:11:31 +0800</pubDate><description><![CDATA[一次普通的http请求，除了3次握手4次挥手之外，还经历了什么呢？三次握手过程如下图


]]></description><category></category></item><item><title><![CDATA[使用@Enable驱动实现mybatis多数据配置]]></title><link>https://blog.youkuaiyun.com/marching1986/article/details/106211457</link><guid>https://blog.youkuaiyun.com/marching1986/article/details/106211457</guid><author>marching1986</author><pubDate>Tue, 19 May 2020 12:41:04 +0800</pubDate><description><![CDATA[在Spring中，@Enable驱动基于@Import实现，通过@Import装载导入类，将其定义为Spring Bean。而导入类主要


@Configuration标注的类，接口ImportBeanDefinitionRegistrar以及ImportSelector的实现三种实现形式。以下代码基于此实现mybatis多数据配置。

POM文件依赖


&lt;parent&gt;
        &lt;groupId&gt;org.springframework.boot&lt;/groupId&]]></description><category></category></item><item><title><![CDATA[Spring Boot运行阶段]]></title><link>https://blog.youkuaiyun.com/marching1986/article/details/103845130</link><guid>https://blog.youkuaiyun.com/marching1986/article/details/103845130</guid><author>marching1986</author><pubDate>Sun, 05 Jan 2020 17:52:51 +0800</pubDate><description><![CDATA[运行阶段是Spring Boot的核心过程，主要围绕public ConfigurableApplicationContext run(String... args) 方法展开，该过程结合初始化阶段完成的状态，进一步完善了运行时所需要的资源，随后启动ApplicationContext上下文，整个流程可分为上下文启动前阶段，上下文装备阶段，上下文启动阶段和上下文启动后阶段。在此期间，触发sprin...]]></description><category></category></item><item><title><![CDATA[centos中gitlab私服搭建，卸载与常见问题]]></title><link>https://blog.youkuaiyun.com/marching1986/article/details/103664424</link><guid>https://blog.youkuaiyun.com/marching1986/article/details/103664424</guid><author>marching1986</author><pubDate>Mon, 23 Dec 2019 14:23:42 +0800</pubDate><description><![CDATA[添加GitLab镜像源并安装gitlab服务器

安装并配置必要的依赖关系


在CentOS系统上安装所需的依赖：ssh，防火墙,postfix(用于邮件通知) ，wget，以下这些命令也会打开系统防火墙中的HTTP和SSH端口访问。

可用内存建议2G



	安装ssh

	
sudo yum install -y curl policycoreutils-python openssh-s...]]></description><category></category></item><item><title><![CDATA[Spring Boot初始化阶段]]></title><link>https://blog.youkuaiyun.com/marching1986/article/details/103264415</link><guid>https://blog.youkuaiyun.com/marching1986/article/details/103264415</guid><author>marching1986</author><pubDate>Tue, 26 Nov 2019 20:22:55 +0800</pubDate><description><![CDATA[Spring Boot初始化阶段

通常情况下，我们启动一个SpringBoot应用，会以下面的方式启动：


public static void main(String[] args) {
    SpringApplication.run(MyBootstrap.class, args);
}

除了以上方式外，Spring boot还提供了SpringApplicationBuilder的...]]></description><category></category></item><item><title><![CDATA[Spring Boot 默认支持异步事件吗？]]></title><link>https://blog.youkuaiyun.com/marching1986/article/details/103220929</link><guid>https://blog.youkuaiyun.com/marching1986/article/details/103220929</guid><author>marching1986</author><pubDate>Sun, 24 Nov 2019 01:33:24 +0800</pubDate><description><![CDATA[问题：

Spring Boot 默认支持异步事件吗？



在spring和Spring boot 中，SimpleApplicationEventMulticaster是ApplicationEventMulticaster的唯一实现，除了提供发布事件功能，其集成的抽象类AbstractApplicationEventMulticaster还提供了增加移除监听器的功能。同时，SimpleAp...]]></description><category></category></item><item><title><![CDATA[spring springBoot事件]]></title><link>https://blog.youkuaiyun.com/marching1986/article/details/103103581</link><guid>https://blog.youkuaiyun.com/marching1986/article/details/103103581</guid><author>marching1986</author><pubDate>Wed, 20 Nov 2019 22:16:27 +0800</pubDate><description><![CDATA[Application context生命周期事件


 public class SpringEventListenerBootstrap {
 
   public static void main(String[] args) {
     new SpringApplicationBuilder(Object.class)
         .list...]]></description><category></category></item><item><title><![CDATA[oracle笔记-执行计划]]></title><link>https://blog.youkuaiyun.com/marching1986/article/details/103104481</link><guid>https://blog.youkuaiyun.com/marching1986/article/details/103104481</guid><author>marching1986</author><pubDate>Sat, 16 Nov 2019 23:34:06 +0800</pubDate><description><![CDATA[sqlplus sys/admin as sysdba；

--清空缓存
alter system flush [SHARED_POOL/BUFFER_CACHE/GLOBAL CONTEXT]


---------------------使用10046事件查看真实执行计划 start-----------
--在当前session中使用oradebug命令
oradebug setmypid;...]]></description><category></category></item></channel></rss>