<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0"><channel><title>SLHAF's blog</title><link>https://blog.slhaf.work</link><atom:link href="https://blog.slhaf.work/feed.xml" rel="self" type="application/rss+xml"/><description>SLHAF的个人博客</description><generator>Halo v2.23.2</generator><language>zh-cn</language><image><url>https://blog.slhaf.work/upload/favicon.png</url><title>SLHAF's blog</title><link>https://blog.slhaf.work</link></image><lastBuildDate>Fri, 3 Apr 2026 20:01:15 GMT</lastBuildDate><item><title><![CDATA[真好用啊 阿里ESA]]></title><link>https://blog.slhaf.work/archives/3DP8D8xD</link><description><![CDATA[<img src="https://blog.slhaf.work/plugins/feed/assets/telemetry.gif?title=%E7%9C%9F%E5%A5%BD%E7%94%A8%E5%95%8A%20%E9%98%BF%E9%87%8CESA&amp;url=/archives/3DP8D8xD" width="1" height="1" alt="" style="opacity:0;">将服务器从Cloudflare双栈CDN切换至阿里ESA，并修改了原有的Cloudflare DDNS脚本以适配阿里云CLI。整个过程体验良好，通过阿里ESA有效隐藏了源站的IPv6地址，使得用户无法区分源站实际使用的协议类型。关键词涉及阿里ESA、脚本、香橙派、Linux及日常使用场景。]]></description><guid isPermaLink="false">/archives/3DP8D8xD</guid><dc:creator>slhaf</dc:creator><category>网络</category><category>日常</category><category>香橙派</category><pubDate>Wed, 1 Oct 2025 15:35:27 GMT</pubDate></item><item><title><![CDATA[java-websocket 中 Websocket Server 关闭后端口不会及时释放的解决方法]]></title><link>https://blog.slhaf.work/archives/3L4LP0aI</link><description><![CDATA[<img src="https://blog.slhaf.work/plugins/feed/assets/telemetry.gif?title=java-websocket%20%E4%B8%AD%20Websocket%20Server%20%E5%85%B3%E9%97%AD%E5%90%8E%E7%AB%AF%E5%8F%A3%E4%B8%8D%E4%BC%9A%E5%8F%8A%E6%97%B6%E9%87%8A%E6%94%BE%E7%9A%84%E8%A7%A3%E5%86%B3%E6%96%B9%E6%B3%95&amp;url=/archives/3L4LP0aI" width="1" height="1" alt="" style="opacity:0;">使用java-websocket包创建WebSocket服务器时，若建立过连接后关闭服务器，立即重启会提示端口被占用，但实际并无进程占用该端口。这是因为TCP协议在连接关闭后会将端口置于TIME_WAIT状态，持续30-120秒，期间端口无法重用。解决方案是在创建WebSocketServer时设置SO_REUSEADDR套接字选项，即添加this.setReuseAddr(true)。该选项允许端口在TIME_WAIT状态下重用，不会影响TCP协议的可靠性，因为新旧连接通过四元组和随机序列号区分，内核仍会正确处理原有连接的关闭流程。]]></description><guid isPermaLink="false">/archives/3L4LP0aI</guid><dc:creator>slhaf</dc:creator><category>后端</category><category>Java</category><pubDate>Thu, 25 Sep 2025 08:01:21 GMT</pubDate></item><item><title><![CDATA[为无头服务器配置带 GUI 的 Clash 客户端：基于 Xvfb + VNC 的解决方案]]></title><link>https://blog.slhaf.work/archives/3immiMk1</link><description><![CDATA[<img src="https://blog.slhaf.work/plugins/feed/assets/telemetry.gif?title=%E4%B8%BA%E6%97%A0%E5%A4%B4%E6%9C%8D%E5%8A%A1%E5%99%A8%E9%85%8D%E7%BD%AE%E5%B8%A6%20GUI%20%E7%9A%84%20Clash%20%E5%AE%A2%E6%88%B7%E7%AB%AF%EF%BC%9A%E5%9F%BA%E4%BA%8E%20Xvfb%20%2B%20VNC%20%E7%9A%84%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88&amp;url=/archives/3immiMk1" width="1" height="1" alt="" style="opacity:0;">作者使用香橙派作为服务器，通过`create_ap`共享网络，并尝试在无图形界面的Linux服务器上运行带GUI的Clash客户端。为解决配置不便的问题，采用`xvfb`提供虚拟X环境，配合`x11vnc`实现VNC远程桌面连接，最终通过TigerVNC客户端访问图形化Clash-Verge界面。该方法虽然资源占用较高，但实现了服务器端代理的可视化管理，同时提到轻量级替代方案如clash核心+yacd面板。]]></description><guid isPermaLink="false">/archives/3immiMk1</guid><dc:creator>slhaf</dc:creator><category>网络</category><category>bash</category><category>香橙派</category><pubDate>Mon, 4 Aug 2025 11:27:40 GMT</pubDate></item><item><title><![CDATA[Manjaro/X11 环境下通过 bbswitch 关闭 NVIDIA 显卡以延长续航]]></title><link>https://blog.slhaf.work/archives/bXsOd13j</link><description><![CDATA[<img src="https://blog.slhaf.work/plugins/feed/assets/telemetry.gif?title=Manjaro%2FX11%20%E7%8E%AF%E5%A2%83%E4%B8%8B%E9%80%9A%E8%BF%87%20bbswitch%20%E5%85%B3%E9%97%AD%20NVIDIA%20%E6%98%BE%E5%8D%A1%E4%BB%A5%E5%BB%B6%E9%95%BF%E7%BB%AD%E8%88%AA&amp;url=/archives/bXsOd13j" width="1" height="1" alt="" style="opacity:0;">本文介绍了在Manjaro/X11环境下通过禁用NVIDIA显卡模块和使用bbswitch关闭显卡电源来延长笔记本续航的方法。作者发现混合显卡笔记本在Linux系统中存在高功耗问题，经过排查确定NVIDIA显卡是主要耗电源。解决方案包括修改模块配置文件、创建切换脚本以及利用bbswitch动态监测显卡状态，同时配合CPU频率调整等优化措施。该方法可使续航提升至5小时左右，但仅适用于NVIDIA显卡和X11显示环境，且需要重启才能生效切换。]]></description><guid isPermaLink="false">/archives/bXsOd13j</guid><dc:creator>slhaf</dc:creator><category>bash</category><category>Manjaro</category><category>Linux</category><pubDate>Sun, 3 Aug 2025 10:59:46 GMT</pubDate></item><item><title><![CDATA[关于Bottles中同一容器内不同应用需要配置不同显卡方案的解决办法]]></title><link>https://blog.slhaf.work/archives/xx7iGwfK</link><description><![CDATA[<img src="https://blog.slhaf.work/plugins/feed/assets/telemetry.gif?title=%E5%85%B3%E4%BA%8EBottles%E4%B8%AD%E5%90%8C%E4%B8%80%E5%AE%B9%E5%99%A8%E5%86%85%E4%B8%8D%E5%90%8C%E5%BA%94%E7%94%A8%E9%9C%80%E8%A6%81%E9%85%8D%E7%BD%AE%E4%B8%8D%E5%90%8C%E6%98%BE%E5%8D%A1%E6%96%B9%E6%A1%88%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95&amp;url=/archives/xx7iGwfK" width="1" height="1" alt="" style="opacity:0;">在Bottles容器中运行不同应用时遇到显卡配置冲突问题：MC《落幕曲》需关闭独显而Epic需开启独显。通过修改`bottle.yml`的`discrete_gpu`字段可切换配置，但需手动操作。为此编写了两个脚本：`bottles-gpu-switch`用于动态修改显卡状态，`bottles-desktop-patch`用于调整`.desktop`文件的启动命令。该方案仅适用于终端或快捷方式启动，GUI界面仍需手动设置。]]></description><guid isPermaLink="false">/archives/xx7iGwfK</guid><dc:creator>slhaf</dc:creator><category>bash</category><category>Bottles</category><category>日常</category><pubDate>Sat, 2 Aug 2025 13:00:34 GMT</pubDate></item><item><title><![CDATA[day_3 分布式入门: Gateway]]></title><link>https://blog.slhaf.work/archives/Q4nwWsRo</link><description><![CDATA[<img src="https://blog.slhaf.work/plugins/feed/assets/telemetry.gif?title=day_3%20%E5%88%86%E5%B8%83%E5%BC%8F%E5%85%A5%E9%97%A8%3A%20Gateway&amp;url=/archives/Q4nwWsRo" width="1" height="1" alt="" style="opacity:0;">文章介绍了Spring Cloud Gateway的功能、依赖导入与基础原理，包括路由规则配置、断言规则实现及自定义过滤器开发。通过YAML配置示例展示了路由匹配、负载均衡及路径重写功能，并演示了如何自定义断言和过滤器。还提及全局跨域配置方法，适用于Java分布式系统开发中的API网关实现。]]></description><guid isPermaLink="false">/archives/Q4nwWsRo</guid><dc:creator>slhaf</dc:creator><category>Gateway</category><category>后端</category><pubDate>Sun, 13 Jul 2025 11:20:23 GMT</pubDate></item><item><title><![CDATA[day_2 分布式入门: Sentinel]]></title><link>https://blog.slhaf.work/archives/5LGvXG1H</link><description><![CDATA[<img src="https://blog.slhaf.work/plugins/feed/assets/telemetry.gif?title=day_2%20%E5%88%86%E5%B8%83%E5%BC%8F%E5%85%A5%E9%97%A8%3A%20Sentinel&amp;url=/archives/5LGvXG1H" width="1" height="1" alt="" style="opacity:0;">Sentinel是阿里巴巴开源的分布式系统流量控制组件，提供流控、熔断、热点参数防护等功能。文章介绍了Sentinel的基础架构、资源规则及工作原理，包括部署方式与控制面板配置。重点讲解了异常处理机制，针对Web请求、方法级资源、OpenFeign调用和硬编码四种场景分别提供了BlockException处理方案。详细解析了流控规则（直接/关联/链路模式）和三种流控效果（快速失败/排队等待/Warm up），以及熔断规则和断路器原理。最后说明热点参数规则需配合@SentinelResource注解使用，并需关闭Web上下文合并才能支持链路模式。]]></description><guid isPermaLink="false">/archives/5LGvXG1H</guid><dc:creator>slhaf</dc:creator><category>Sentinel</category><category>后端</category><pubDate>Sat, 12 Jul 2025 15:38:09 GMT</pubDate></item><item><title><![CDATA[day_1 分布式入门: OpenFeign]]></title><link>https://blog.slhaf.work/archives/1GiKojyW</link><description><![CDATA[<img src="https://blog.slhaf.work/plugins/feed/assets/telemetry.gif?title=day_1%20%E5%88%86%E5%B8%83%E5%BC%8F%E5%85%A5%E9%97%A8%3A%20OpenFeign&amp;url=/archives/1GiKojyW" width="1" height="1" alt="" style="opacity:0;">OpenFeign是Spring Cloud中的声明式HTTP客户端，通过@EnableFeignClients启用并配合@FeignClient注解实现远程服务调用。文章介绍了其依赖配置、超时控制（默认连接10s/读取60s）、重试机制（通过配置文件或Retryer Bean）、请求拦截器实现以及Fallback熔断机制（需结合Sentinel）。OpenFeign提供了集中式的异常处理方案，相比try-catch更优雅，支持通过接口实现兜底逻辑。这些特性使其成为分布式系统中服务调用的重要工具。]]></description><guid isPermaLink="false">/archives/1GiKojyW</guid><dc:creator>slhaf</dc:creator><category>OpenFeign</category><category>后端</category><pubDate>Thu, 10 Jul 2025 15:13:30 GMT</pubDate></item><item><title><![CDATA[day_0 分布式入门: 基本知识+Nacos基础]]></title><link>https://blog.slhaf.work/archives/sVqzjsJM</link><description><![CDATA[<img src="https://blog.slhaf.work/plugins/feed/assets/telemetry.gif?title=day_0%20%E5%88%86%E5%B8%83%E5%BC%8F%E5%85%A5%E9%97%A8%3A%20%E5%9F%BA%E6%9C%AC%E7%9F%A5%E8%AF%86%2BNacos%E5%9F%BA%E7%A1%80&amp;url=/archives/sVqzjsJM" width="1" height="1" alt="" style="opacity:0;">作者回顾了大二学习经历，计划暑假补充微服务知识，认为大模型应用工程可能成为新风口。文章重点介绍了分布式系统基础概念，包括单体、集群和分布式架构的优缺点，并详细讲解了Nacos的安装与功能，如服务注册、发现、远程调用和负载均衡的实现方法，涉及相关代码配置和依赖管理。]]></description><guid isPermaLink="false">/archives/sVqzjsJM</guid><dc:creator>slhaf</dc:creator><category>后端</category><category>Nacos</category><pubDate>Wed, 9 Jul 2025 12:26:38 GMT</pubDate></item><item><title><![CDATA[简单的ddns解析ipv6 实现思路（包括systemd服务、ddns脚本）]]></title><link>https://blog.slhaf.work/archives/RLuf8vmo</link><description><![CDATA[<img src="https://blog.slhaf.work/plugins/feed/assets/telemetry.gif?title=%E7%AE%80%E5%8D%95%E7%9A%84ddns%E8%A7%A3%E6%9E%90ipv6%20%E5%AE%9E%E7%8E%B0%E6%80%9D%E8%B7%AF%EF%BC%88%E5%8C%85%E6%8B%ACsystemd%E6%9C%8D%E5%8A%A1%E3%80%81ddns%E8%84%9A%E6%9C%AC%EF%BC%89&amp;url=/archives/RLuf8vmo" width="1" height="1" alt="" style="opacity:0;">作者将云服务器替换为香橙派搭配UPS模块，利用随身WiFi获取IPv6地址并通过Cloudflare实现动态域名解析。通过systemd服务开机启动自定义的ddns脚本，该脚本结合Shell和Python检测本地IPv6变化并更新Cloudflare解析记录。环境变量配置包括Cloudflare账号信息，脚本定期检查地址变化并自动更新。当前服务器配置为OrangePi 3B（4核8G）搭配Geekworm UPS模块。]]></description><guid isPermaLink="false">/archives/RLuf8vmo</guid><dc:creator>slhaf</dc:creator><category>香橙派</category><category>Linux</category><pubDate>Thu, 3 Jul 2025 05:36:02 GMT</pubDate></item><item><title><![CDATA[喜报]]></title><link>https://blog.slhaf.work/archives/xi-bao</link><description><![CDATA[<img src="https://blog.slhaf.work/plugins/feed/assets/telemetry.gif?title=%E5%96%9C%E6%8A%A5&amp;url=/archives/xi-bao" width="1" height="1" alt="" style="opacity:0;">考完试迎来两个月暑假，计划完善Partner项目、完成一两个企业级项目并对比需求文档、考取SAA证书、撰写技术博客记录问题与经验，并准备在暑假后投递日常实习。虽然考虑时间安排，但认为过于细致的规划可能影响执行动力。]]></description><guid isPermaLink="false">/archives/xi-bao</guid><dc:creator>slhaf</dc:creator><category>日常</category><pubDate>Tue, 1 Jul 2025 16:27:05 GMT</pubDate></item><item><title><![CDATA[Linux下如何通过lvm分区进行扩容]]></title><link>https://blog.slhaf.work/archives/linux-kuo-rong</link><description><![CDATA[<img src="https://blog.slhaf.work/plugins/feed/assets/telemetry.gif?title=Linux%E4%B8%8B%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87lvm%E5%88%86%E5%8C%BA%E8%BF%9B%E8%A1%8C%E6%89%A9%E5%AE%B9&amp;url=/archives/linux-kuo-rong" width="1" height="1" alt="" style="opacity:0;">作者在Ubuntu系统中使用LVM进行存储扩容，详细介绍了从创建物理卷(PV)、卷组(VG)到逻辑卷(LV)的完整步骤。通过GParted划分300G空间后，依次执行pvcreate、vgcreate、lvcreate等命令创建存储结构，并格式化为ext4文件系统。最后配置/etc/fstab实现自动挂载，特别说明如何设置用户权限和修改卷标。该方法避免了重装系统，为游戏、虚拟机等大文件提供了额外存储空间，解决了初始分区不足的问题。]]></description><guid isPermaLink="false">/archives/linux-kuo-rong</guid><dc:creator>slhaf</dc:creator><category>分区</category><pubDate>Fri, 21 Feb 2025 10:52:00 GMT</pubDate></item></channel></rss>