<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[niceHack的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/niceHack</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; niceHack]]></copyright><item><title><![CDATA[Sublime浏览器预览Markdown设置流程]]></title><link>https://blog.youkuaiyun.com/niceHack/article/details/166828413</link><guid>https://blog.youkuaiyun.com/niceHack/article/details/166828413</guid><author>niceHack</author><pubDate>Tue, 29 Sep 2026 08:53:35 +0800</pubDate><description><![CDATA[在Sublime中预览Markdown，需先通过Package Control安装“MarkdownPreviewEnhanced”插件。打开.md文件后，按Ctrl+Shift+M（Mac为Cmd+Shift+M）即可在浏览器中实时渲染预览。支持自动更新、滚动同步与快速聚焦。可通过自定义CSS（如修改style.less）个性化样式，提升阅读体验。]]></description><category></category></item><item><title><![CDATA[spring初始化插入数据报IncompleteElementException错误问题分析]]></title><link>https://blog.youkuaiyun.com/niceHack/article/details/166224519</link><guid>https://blog.youkuaiyun.com/niceHack/article/details/166224519</guid><author>niceHack</author><pubDate>Mon, 21 Sep 2026 09:23:47 +0800</pubDate><description><![CDATA[摘要（148字）： 项目在Spring Boot启动时，通过@PostConstruct异步初始化2000条模板数据，偶发报ITopoNodeDao的ResultMap找不到异常。实际执行的是DevRoleDao.insertRole()，却因竞态条件引发非必现错误。根本原因在于new Thread()未等待MyBatis Mapper初始化完成，导致子线程在主流程尚未解析完XML时触发不完整Statement的重新解析，引发IncompleteElementException。问题本质是启动时序竞争，而非]]></description><category></category></item><item><title><![CDATA[InnoDB中的undo日志和历史系统的基础机制]]></title><link>https://blog.youkuaiyun.com/niceHack/article/details/159086690</link><guid>https://blog.youkuaiyun.com/niceHack/article/details/159086690</guid><author>niceHack</author><pubDate>Sun, 15 Mar 2026 21:59:00 +0800</pubDate><description><![CDATA[本文探讨了InnoDB中MVCC机制的核心实现原理。重点分析了undo日志和历史系统如何支持多版本并发控制：当记录被修改时，旧版本会作为undo记录保存，形成版本链；所有事务都直接操作&quot;实时&quot;数据，但通过读取视图控制可见性；文章还介绍了三种事务隔离级别（READ UNCOMMITTED、READ COMMITTED和REPEATABLE READ）对MVCC的影响。这些机制使不同事务能看到数据的不同版本，从而在保证一致性的同时提高并发性能。]]></description><category></category></item><item><title><![CDATA[计算机网络中的常用表项梳理]]></title><link>https://blog.youkuaiyun.com/niceHack/article/details/149105677</link><guid>https://blog.youkuaiyun.com/niceHack/article/details/149105677</guid><author>niceHack</author><pubDate>Fri, 04 Jul 2025 07:00:00 +0800</pubDate><description><![CDATA[网络转发关键表项解析 摘要：本文对比分析了网络通信中的核心表项功能。MAC表/FDB表在数据链路层记录MAC地址与端口映射关系，用于二层转发；ARP表实现IP与MAC地址解析，为三层封装提供支持；路由表决定网络层数据包的转发路径。三者协同工作：路由表选择下一跳→ARP表解析目标MAC→FDB/MAC表确定出端口。此外还介绍了IPv6的ND表及802.1D/Q协议差异。这些表项分别解决&quot;去哪&quot;、&quot;是谁&quot;、&quot;从哪出&quot;三个关键问题，构成网络数据流转的基础]]></description><category></category></item><item><title><![CDATA[MySQL数据类型]]></title><link>https://blog.youkuaiyun.com/niceHack/article/details/149057736</link><guid>https://blog.youkuaiyun.com/niceHack/article/details/149057736</guid><author>niceHack</author><pubDate>Wed, 02 Jul 2025 07:00:00 +0800</pubDate><description><![CDATA[MySQL数据类型选择指南：整数类型应根据范围需求选择TINYINT到BIGINT，UNSIGNED可扩大正数范围；实数类型中DECIMAL精度最高但性能较差，建议用BIGINT替代；字符串类型VARCHAR最常用，注意字符集影响存储空间；日期类型优先使用DATETIME，时区相关用TIMESTAMP；KEY选择应优先整数类型，避免字符串和随机值；特殊数据如IP地址可转换为整数存储；设计时应选择更小更简单的数据类型，避免NULL值和过多联表查询。合理的数据类型选择对性能和存储效率至关重要。]]></description><category></category></item><item><title><![CDATA[加密、加签、摘要算法对比]]></title><link>https://blog.youkuaiyun.com/niceHack/article/details/148725029</link><guid>https://blog.youkuaiyun.com/niceHack/article/details/148725029</guid><author>niceHack</author><pubDate>Tue, 17 Jun 2025 22:13:38 +0800</pubDate><description><![CDATA[本文梳理了加密、加签和摘要算法的核心概念及区别。对称加密（如AES）使用相同密钥，速度快但密钥分发困难；非对称加密（如RSA）使用公钥/私钥对，解决密钥分发问题；摘要算法（如SHA-256）生成不可逆的唯一指纹。数字签名通过私钥加签、公钥验签实现身份认证和数据完整性验证。实际应用中常组合使用这些技术，如HTTPS结合对称和非对称加密，密码存储采用加盐哈希（推荐PBKDF2/bcrypt）。关键区别在于：对称加密可逆、非对称加密可逆、摘要算法不可逆，需注意算法选择和密钥管理。]]></description><category></category></item><item><title><![CDATA[Kafka问题排查笔记]]></title><link>https://blog.youkuaiyun.com/niceHack/article/details/148621268</link><guid>https://blog.youkuaiyun.com/niceHack/article/details/148621268</guid><author>niceHack</author><pubDate>Fri, 13 Jun 2025 00:03:43 +0800</pubDate><description><![CDATA[摘要：本文介绍了Kafka消费者组的监控命令和Broker架构对比。通过kafka-consumer-groups.sh命令可以查看消费者组列表、消费详情（包括TOPIC、PARTITION、LAG等关键指标）和状态信息。对比分析了Kafka与RocketMQ的Broker差异：Kafka的Broker是物理节点，采用动态ISR机制，副本分配灵活；RocketMQ的Broker是Master-Slave逻辑组，强调主从强一致性。两种架构在数据同步、扩展性和高可用设计上各有特点。]]></description><category></category></item><item><title><![CDATA[MySQL用户和授权]]></title><link>https://blog.youkuaiyun.com/niceHack/article/details/148481043</link><guid>https://blog.youkuaiyun.com/niceHack/article/details/148481043</guid><author>niceHack</author><pubDate>Fri, 06 Jun 2025 19:36:55 +0800</pubDate><description><![CDATA[本文介绍了MySQL白名单配置和只读用户授权操作。首先通过iptables-save命令验证客户端IP访问权限，然后创建只读用户并授予特定表SELECT权限。重点解决了两个常见问题：1)授权后需重新登录才能生效；2)联表查询需要额外授予临时表权限。文章提供了权限查询对比示例，并强调在HA环境中需主备库同步执行授权操作，同时建议始终授予临时表权限以支持联表查询。最后提醒授权变更后应重新连接以更新会话权限。]]></description><category></category></item><item><title><![CDATA[定时线程池失效问题引发的思考]]></title><link>https://blog.youkuaiyun.com/niceHack/article/details/148411293</link><guid>https://blog.youkuaiyun.com/niceHack/article/details/148411293</guid><author>niceHack</author><pubDate>Tue, 03 Jun 2025 22:20:58 +0800</pubDate><description><![CDATA[本文分析了线程池使用中的常见问题及解决方案。作者在开发中遇到定时线程池停止导致业务状态异常的情况，通过日志分析和Arthas工具定位到问题根源：普通线程池设置不当（核心线程数过小、队列容量不足）导致任务堆积，触发拒绝策略后异常未被捕获，进而停止定时线程池。文章深入解析了线程池的工作原理，指出扩容机制的关键点（队列满才会创建新线程），并给出优化建议：1)合理设置核心线程数和队列长度；2)选择适当的拒绝策略；3)定时任务必须添加异常捕获；4)监控线程池运行状态。特别强调要理解线程池参数与业务特性的匹配，避免任务]]></description><category></category></item><item><title><![CDATA[MySQL入门笔记]]></title><link>https://blog.youkuaiyun.com/niceHack/article/details/148320410</link><guid>https://blog.youkuaiyun.com/niceHack/article/details/148320410</guid><author>niceHack</author><pubDate>Fri, 30 May 2025 00:09:51 +0800</pubDate><description><![CDATA[主要根据《高性能MySQL-第四版》-MySQL架构章节内容进行读书笔记的整理，主要内容为MySQL的事务。]]></description><category></category></item><item><title><![CDATA[芯片指令集架构对比]]></title><link>https://blog.youkuaiyun.com/niceHack/article/details/146967736</link><guid>https://blog.youkuaiyun.com/niceHack/article/details/146967736</guid><author>niceHack</author><pubDate>Thu, 03 Apr 2025 00:25:30 +0800</pubDate><description><![CDATA[目前几种流行的指令集架构对比，x86、x64、arm、risc-v]]></description><category></category></item><item><title><![CDATA[svn代码提交乱码问题]]></title><link>https://blog.youkuaiyun.com/niceHack/article/details/146351310</link><guid>https://blog.youkuaiyun.com/niceHack/article/details/146351310</guid><author>niceHack</author><pubDate>Tue, 18 Mar 2025 20:20:49 +0800</pubDate><description><![CDATA[svn代码提交时候，patch预览的乱码问题分析]]></description><category></category></item><item><title><![CDATA[gcc编译初探]]></title><link>https://blog.youkuaiyun.com/niceHack/article/details/136725546</link><guid>https://blog.youkuaiyun.com/niceHack/article/details/136725546</guid><author>niceHack</author><pubDate>Fri, 15 Mar 2024 00:17:29 +0800</pubDate><description><![CDATA[记录gcc便编译遇到的问题和积累的经验]]></description><category></category></item><item><title><![CDATA[十分钟搞定正则]]></title><link>https://blog.youkuaiyun.com/niceHack/article/details/136611944</link><guid>https://blog.youkuaiyun.com/niceHack/article/details/136611944</guid><author>niceHack</author><pubDate>Sun, 10 Mar 2024 23:49:59 +0800</pubDate><description><![CDATA[十分钟搞定正则]]></description><category></category></item><item><title><![CDATA[tcpdump常用参数以及wireshark密文解密]]></title><link>https://blog.youkuaiyun.com/niceHack/article/details/135591343</link><guid>https://blog.youkuaiyun.com/niceHack/article/details/135591343</guid><author>niceHack</author><pubDate>Mon, 15 Jan 2024 00:15:07 +0800</pubDate><description><![CDATA[tcpdump常用参数以及wireshark密文解密]]></description><category></category></item><item><title><![CDATA[java线程状态流转]]></title><link>https://blog.youkuaiyun.com/niceHack/article/details/135563821</link><guid>https://blog.youkuaiyun.com/niceHack/article/details/135563821</guid><author>niceHack</author><pubDate>Sat, 13 Jan 2024 01:08:47 +0800</pubDate><description><![CDATA[本文主要分析jvm中涉及的线程状态以及这些状态的流转关系]]></description><category></category></item><item><title><![CDATA[java阻塞线程或繁忙线程的定位方式]]></title><link>https://blog.youkuaiyun.com/niceHack/article/details/135541193</link><guid>https://blog.youkuaiyun.com/niceHack/article/details/135541193</guid><author>niceHack</author><pubDate>Thu, 11 Jan 2024 23:41:46 +0800</pubDate><description><![CDATA[测试或生产环境偶尔会遇到线程阻塞或cpu飙升的问题，我们经常使用以下工具进行定位和分析，对分析命令和需要注意的点进行记录。]]></description><category></category></item><item><title><![CDATA[性能优化实践：通过数据库查询实体的部分属性]]></title><link>https://blog.youkuaiyun.com/niceHack/article/details/135515997</link><guid>https://blog.youkuaiyun.com/niceHack/article/details/135515997</guid><author>niceHack</author><pubDate>Thu, 11 Jan 2024 00:21:46 +0800</pubDate><description><![CDATA[在部分场景下只需要查询实体的部分属性，另外仅查询部分属性可以减少部分性能开销。本文通过mabatis的注解方式实现以上功能，对此进行记录。另外，通过mybatis从数据库查询回数据后，需要通过工具类将List类型数据转换为对应的实体对象集合，这部分逻辑也做记录。]]></description><category></category></item><item><title><![CDATA[一次线程被阻塞的线上问题排查复盘]]></title><link>https://blog.youkuaiyun.com/niceHack/article/details/135492313</link><guid>https://blog.youkuaiyun.com/niceHack/article/details/135492313</guid><author>niceHack</author><pubDate>Wed, 10 Jan 2024 00:08:18 +0800</pubDate><description><![CDATA[记录一次市场问题中线程被阻塞的问题，复刻问题，提供定时线程池和阻塞队列的实现方式]]></description><category></category></item><item><title><![CDATA[java垃圾回收算法和经典垃圾收集器]]></title><link>https://blog.youkuaiyun.com/niceHack/article/details/132957651</link><guid>https://blog.youkuaiyun.com/niceHack/article/details/132957651</guid><author>niceHack</author><pubDate>Mon, 18 Sep 2023 00:54:41 +0800</pubDate><description><![CDATA[主要总结jvm中的垃圾收集算法和垃圾收集器。]]></description><category></category></item></channel></rss>