<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[CMLXZL的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/CMLXZL</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; CMLXZL]]></copyright><item><title><![CDATA[性能调优 -- Explain详解与索引最佳实践]]></title><link>https://blog.youkuaiyun.com/CMLXZL/article/details/151761112</link><guid>https://blog.youkuaiyun.com/CMLXZL/article/details/151761112</guid><author>CMLXZL</author><pubDate>Tue, 16 Sep 2025 18:01:44 +0800</pubDate><description><![CDATA[使用EXPLAIN关键字可以模拟优化器执行SQL语句，分析你的查询语句或是结构的性能瓶颈在 select 语句之前增加 explain 关键字 ，MySQL 会在查询上设置一个标记，执行查询会返回执行计划的信息，而不是执行这条SQL如果 from 中包含子查询，仍会执行该子查询，将结果放入临时表中在查询中的每个表会输出一行，如果有两个表通过 join 连接查询，那么会输出两行。]]></description><category></category></item><item><title><![CDATA[Golang脚本]]></title><link>https://blog.youkuaiyun.com/CMLXZL/article/details/151751305</link><guid>https://blog.youkuaiyun.com/CMLXZL/article/details/151751305</guid><author>CMLXZL</author><pubDate>Tue, 16 Sep 2025 10:41:32 +0800</pubDate><description><![CDATA[【代码】Golang脚本。]]></description><category></category></item><item><title><![CDATA[Java服务器监控【Prometheus+Grafana】]]></title><link>https://blog.youkuaiyun.com/CMLXZL/article/details/150929201</link><guid>https://blog.youkuaiyun.com/CMLXZL/article/details/150929201</guid><author>CMLXZL</author><pubDate>Wed, 27 Aug 2025 16:13:37 +0800</pubDate><description><![CDATA[本文介绍了在Windows环境下搭建Java服务监控系统（Prometheus+Grafana）的完整流程。主要内容包括：1）环境准备，包括Prometheus和Grafana的安装配置；2）Java项目配置，通过引入依赖和启用Spring Boot Actuator暴露监控指标；3）Grafana配置，包括数据源添加和Dashboard导入；4）常见问题解决方案。该系统可监控JVM、系统资源、应用性能等指标，实现可视化监控，帮助开发者快速定位性能问题。文章还提供了详细的配置参数和操作步骤，适合开发人员快速]]></description><category></category></item><item><title><![CDATA[Mysql触发器]]></title><link>https://blog.youkuaiyun.com/CMLXZL/article/details/124040358</link><guid>https://blog.youkuaiyun.com/CMLXZL/article/details/124040358</guid><author>CMLXZL</author><pubDate>Fri, 08 Apr 2022 14:17:30 +0800</pubDate><description><![CDATA[链接：http://aiezu.com/article/mysql_trigger_syntax.html
一、同表
– 创建触发器(添加行)
DELIMITER $
drop trigger if exists hr_social_salary_detail_insert$
create trigger hr_social_salary_detail_insert
before insert on hr_social_salary_detail
for each row
begin
set new.all]]></description><category></category></item><item><title><![CDATA[canal-adapter 同步mysql到es [基于tcp模式]]]></title><link>https://blog.youkuaiyun.com/CMLXZL/article/details/122687727</link><guid>https://blog.youkuaiyun.com/CMLXZL/article/details/122687727</guid><author>CMLXZL</author><pubDate>Tue, 25 Jan 2022 16:35:37 +0800</pubDate><description><![CDATA[文章目录canal环境搭建canal-servercanal-admincanal-adapter
canal环境搭建

canal官网下载 https://github.com/alibaba/canal/tags
分别将三个tar.gz包解压到指定的包下(adapter|admin|deployer)

canal-server

将自己伪装成mysql的slave节点,来订阅mysql binlog的变更
配置mysql,开启binlog

log-bin=mysql-bin # 开启 
binlog]]></description><category></category></item><item><title><![CDATA[SpringBoot配置文件敏感信息加密]]></title><link>https://blog.youkuaiyun.com/CMLXZL/article/details/122583788</link><guid>https://blog.youkuaiyun.com/CMLXZL/article/details/122583788</guid><author>CMLXZL</author><pubDate>Wed, 19 Jan 2022 16:23:26 +0800</pubDate><description><![CDATA[文章目录引包配置加/解密的slot测试生成加密后的秘钥将加密后的字符串替换原明文
引包
&lt;dependency&gt;
        &lt;groupId&gt;com.github.ulisesbocchio&lt;/groupId&gt;
        &lt;artifactId&gt;jasypt-spring-boot-starter&lt;/artifactId&gt;
        &lt;version&gt;2.1.0&lt;/version&gt;
&lt;/depende]]></description><category></category></item><item><title><![CDATA[MQTT在java中的应用]]></title><link>https://blog.youkuaiyun.com/CMLXZL/article/details/122364554</link><guid>https://blog.youkuaiyun.com/CMLXZL/article/details/122364554</guid><author>CMLXZL</author><pubDate>Fri, 07 Jan 2022 15:47:01 +0800</pubDate><description><![CDATA[java整合mqtt1、安装emqx2、集群搭建3、端口4、相关配置
1、安装emqx

通过 emqx.io (opens new window)选择 Centos 版本，然后下载要安装的 EMQ X 版本的 zip 包(我们这里选择开源版)。

解压并启动EMQX

./bin/emqx start
./bin/emqx_ctl status

2、集群搭建

修改各节点 emqx.conf

node.name = emqx@192.168.10.102


加入集群

./bin/emqx_ctl ]]></description><category></category></item><item><title><![CDATA[设计模式详解]]></title><link>https://blog.youkuaiyun.com/CMLXZL/article/details/120267695</link><guid>https://blog.youkuaiyun.com/CMLXZL/article/details/120267695</guid><author>CMLXZL</author><pubDate>Mon, 13 Sep 2021 16:49:02 +0800</pubDate><description><![CDATA[设计模式设计模式七大原则
设计模式七大原则

单一职责
一个类只负责一项职责
接口隔离
一个类对另一个类的依赖应该建立在最小的接口上
依赖倒转
中心思想是面向接口编程，接口或抽象类制定规范，实现类展现细节
里式替换
引用基类的地方必须能透明地使用其子类的对象，子类中尽量不重写父类的方法，可以通过聚合、组合、依赖解决问题
开闭原则
对扩展开放(对提供方)，对修改关闭(对使用方)，用抽象构建框架，用实现扩展细节
迪米特法则
最少知道原则，一个类对自己依赖的类知道的越少越好，降低类之间的耦合。
我们称成员变量、方]]></description><category></category></item><item><title><![CDATA[ELK日志实时分析平台--FileBeat篇]]></title><link>https://blog.youkuaiyun.com/CMLXZL/article/details/120217996</link><guid>https://blog.youkuaiyun.com/CMLXZL/article/details/120217996</guid><author>CMLXZL</author><pubDate>Fri, 10 Sep 2021 11:10:30 +0800</pubDate><description><![CDATA[FileBeat运行
运行
./filebeat -e -c filebeat.yml -d “publish”
输出到 stderr，默认输出到 syslog 和 logs/filebeat文件

]]></description><category></category></item><item><title><![CDATA[ELK日志实时分析平台--Logstash篇]]></title><link>https://blog.youkuaiyun.com/CMLXZL/article/details/120158847</link><guid>https://blog.youkuaiyun.com/CMLXZL/article/details/120158847</guid><author>CMLXZL</author><pubDate>Tue, 07 Sep 2021 15:18:43 +0800</pubDate><description><![CDATA[ELK日志实时分析平台--LogStash篇注意事项
注意事项
Persisted Queue 基本配置
queue.type: persisted
queue.max_bytes: 4gb

]]></description><category></category></item><item><title><![CDATA[ELK日志实时分析平台--Elastic篇]]></title><link>https://blog.youkuaiyun.com/CMLXZL/article/details/119784085</link><guid>https://blog.youkuaiyun.com/CMLXZL/article/details/119784085</guid><author>CMLXZL</author><pubDate>Fri, 20 Aug 2021 15:27:21 +0800</pubDate><description><![CDATA[ELK日志实时分析平台概述环境搭建ElasticSearch安装
概述

日志统一手机、管理、访问。查找问题方便安全，收集放到搜索引擎中。E：ElasticSearch：分布式搜索引擎存储库，NoSql，核心是倒排索引库，可以存TB级的数据。
ElasticSearch
基于Lucene的分布式全文搜索框架，可以对logs进行分布式存储，有点像hdfs。此为ELK的核心组件，日志的分析以及存储全部由es完成
LogStash
可以流放到各自的服务器上收集Log日志，通过内置的ElasticSearch插件解]]></description><category></category></item><item><title><![CDATA[RocketMq]]></title><link>https://blog.youkuaiyun.com/CMLXZL/article/details/119532980</link><guid>https://blog.youkuaiyun.com/CMLXZL/article/details/119532980</guid><author>CMLXZL</author><pubDate>Mon, 09 Aug 2021 14:52:57 +0800</pubDate><description><![CDATA[RocketMq安装及练习2m-2s-sync集群搭建
2m-2s-sync集群搭建

集群各角色介绍


Producer：消息发送者
Consumer：消息接收者
Broker：暂存和传输消息
NameServer：管理Broker
Topic：区分消息的种类；一个发送者可以发送消息给一个或者多个Topic；一个消息的接收者可以订阅一个或者多个Topic消息


集群工作流程


启动NameServer，NameServer起来后监听端口9876，等待Broker、Producer、Consumer连]]></description><category></category></item><item><title><![CDATA[Java面试相关]]></title><link>https://blog.youkuaiyun.com/CMLXZL/article/details/119390273</link><guid>https://blog.youkuaiyun.com/CMLXZL/article/details/119390273</guid><author>CMLXZL</author><pubDate>Wed, 04 Aug 2021 18:59:15 +0800</pubDate><description><![CDATA[面试专栏SpringBoot相关1、SpringBoot是如何实现自动化配置的？2、
SpringBoot相关
1、SpringBoot是如何实现自动化配置的？
1&gt;、自动配置原理
  自动配置的核心注解是 @SpringBootApplication，启动类注解，是一个复合注解：其中包含 @SpringBootConfiguration 和 @EnableAutoConfiguration。
  (1) @SpringBootConfiguration：该注解上有@Configuration 表明s]]></description><category></category></item><item><title><![CDATA[部署Zookeeper集群]]></title><link>https://blog.youkuaiyun.com/CMLXZL/article/details/119002573</link><guid>https://blog.youkuaiyun.com/CMLXZL/article/details/119002573</guid><author>CMLXZL</author><pubDate>Thu, 22 Jul 2021 16:31:33 +0800</pubDate><description><![CDATA[下载
https://downloads.apache.org/zookeeper/
下载后缀带 bin的是被编译过的不然需要自己编译
安装

解压到指定目录
cp conf/zoo-example.cfg zoo.example
vim zoo.example 添加如下配置

server.1=192.168.10.101:2188:2888
server.2=192.168.10.102:2188:2888
server.3=192.168.10.103:2188:2888


分别在三台服务器上执行
]]></description><category></category></item><item><title><![CDATA[java位运算符和二进制转换]]></title><link>https://blog.youkuaiyun.com/CMLXZL/article/details/116740023</link><guid>https://blog.youkuaiyun.com/CMLXZL/article/details/116740023</guid><author>CMLXZL</author><pubDate>Thu, 13 May 2021 11:42:49 +0800</pubDate><description><![CDATA[最近在看源码的时候，遇到这样一段代码

整理下相关的知识点
1. 十进制转二进制
(1) 正整数
除2取余，逆序排列
(2) 负数
		// 求-1的二进制
        00000000 00000000 00000000 00000001    原码：一个整数，按照绝对值大小转换成的二进制
        11111111 11111111 11111111 11111110    反码：将二进制按位取反
        11111111 11111111 11111111 11111111    补]]></description><category></category></item><item><title><![CDATA[java retry: 详解]]></title><link>https://blog.youkuaiyun.com/CMLXZL/article/details/116720045</link><guid>https://blog.youkuaiyun.com/CMLXZL/article/details/116720045</guid><author>CMLXZL</author><pubDate>Wed, 12 May 2021 20:53:18 +0800</pubDate><description><![CDATA[java retry: 详解发现验证结论反编译验证结论启发扩展
发现
今天在探索线程池实现原理的时候，遇到一个重来没有见过的语法，通过网上查阅资料，自己也做了验证

验证
通过查阅资料，retry其实就是一个标记，标记对一个循环的操作(continue和bread)处理点，功能类似于goto，所以retry一般都是伴随着for循环出现，retry: 标记的下一行就是for循环，在for循环里面调用continue或者break 再紧接着retry标记时，就表示从这个地方开始执行continue或者break]]></description><category></category></item><item><title><![CDATA[设计模式--模板方法设计模式]]></title><link>https://blog.youkuaiyun.com/CMLXZL/article/details/116701670</link><guid>https://blog.youkuaiyun.com/CMLXZL/article/details/116701670</guid><author>CMLXZL</author><pubDate>Wed, 12 May 2021 12:28:27 +0800</pubDate><description><![CDATA[这里写目录标题概念举例钩子方法整合Spring
 场景：针对不同的度量模型来执行不同的方法，支持后面用最少的代码、最简单的方法来复用实现更多度量模型。
概念
在一个方法中定义了一个算法的骨架或者步骤，而将一些步骤延迟到子类中实现。模板方法使得子类可以在不改变算法接口的情况下，重新定义算法中的某一些步骤。
举例
去银行处理业务步骤：1.取号、2.办业务、3.评价。三个步骤取号和评价都是固定的流程，但是每个人办理业务的不同需要不同的实现，我们就将办业务封装为一个抽象类：
/**
 * @Author CMLX
]]></description><category></category></item><item><title><![CDATA[Java类对象的初始化顺序和类在什么时候会被加载]]></title><link>https://blog.youkuaiyun.com/CMLXZL/article/details/116662780</link><guid>https://blog.youkuaiyun.com/CMLXZL/article/details/116662780</guid><author>CMLXZL</author><pubDate>Tue, 11 May 2021 19:52:07 +0800</pubDate><description><![CDATA[类对象初始化顺序及类加载时机类对象初始化顺序java类在何时被加载总结
类对象初始化顺序
 分别在父类和子类中测试静态代码块、普通代码块、静态成员变量、构造器、静态内部类。

代码块及变量测试

//
class Field {

    public static String baseFieldInit() {
        System.out.println("父类全局变量");
        return "";
    }

    public static String baseStat]]></description><category></category></item><item><title><![CDATA[使用Dockerfile创建Docker镜像(详解)]]></title><link>https://blog.youkuaiyun.com/CMLXZL/article/details/116148979</link><guid>https://blog.youkuaiyun.com/CMLXZL/article/details/116148979</guid><author>CMLXZL</author><pubDate>Mon, 26 Apr 2021 14:56:57 +0800</pubDate><description><![CDATA[使用Dockerfile创建Docker镜像什么是Dockerfile？Dockerfile的基本架构Dockerfile命令详解案例
什么是Dockerfile？
  Dockerfile是一个包含用于组合镜像命令的文本文档。可以使用命令行中任何命令。Docker通过读取Dockerfile中的指令自动生成镜像。
docker build -f /path/dockerfile

Dockerfile的基本架构
  Dockerfile一般分为四部分：基础镜像信息、维护者信息、镜像操作指令和容器启动时执行]]></description><category></category></item><item><title><![CDATA[CentOS7磁盘空间以及文件系统扩容]]></title><link>https://blog.youkuaiyun.com/CMLXZL/article/details/116064084</link><guid>https://blog.youkuaiyun.com/CMLXZL/article/details/116064084</guid><author>CMLXZL</author><pubDate>Fri, 23 Apr 2021 17:36:40 +0800</pubDate><description><![CDATA[查看当前文件系统的空间分配情况

 现在挂载点为根目录的文件系统/dev/mapper/centos-root 空间为37G，现在想加入一块500G磁盘，将新的磁盘全部挂载到这个文件系统中(37G+500G)
查看当前磁盘空间

 红框内就是我们新加入的400G磁盘
PV前期工作

 这里我们只划分一个分区
将新分区修改成逻辑卷

格式化PV

使用lvm创建PV


将新的PV加入VG

 将新的PV加入其中，或者创建自己新的VG

LV扩容
 给根目录挂载点的LV扩容

 上面的意思是将100%空间全部]]></description><category></category></item></channel></rss>