<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[哈利路亚的收藏夹]]></title><description><![CDATA[主要是博主的一些学习笔记及材料收集]]></description><link>https://blog.csdn.net/lanwilliam</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; lanwilliam]]></copyright><item><title><![CDATA[关于VIP文章问题的声明]]></title><link>https://blog.csdn.net/lanwilliam/article/details/154938636</link><guid>https://blog.csdn.net/lanwilliam/article/details/154938636</guid><author>lanwilliam</author><pubDate>Mon, 17 Nov 2025 09:52:59 +0800</pubDate><description><![CDATA[最近在微信公众号看到有人吐槽csdn发布的文章被平台设置成了vip文章，然后作者没法取消，并且收益也没有分给作者。感觉挺无语的，我在这里声明，这个博客只是作者个人用来记录日常学习，分享采坑经验的地方，作者发的文章都是免费的，从来没有设置过仅vip可读。针对csdn官方搞的这些运营策略，作者并不知情。本人在csdn也算老用户了，得十几年了吧，感觉csdn做事越来越没有下限了。你随意给文章加广告也就算了，站点总要维持运维。鉴于csdn无底线的做法，作者后续也不会在使用csdn了，之前的文章有点多，也不折腾了。]]></description><category></category></item><item><title><![CDATA[记录一次ETCD集群故障恢复]]></title><link>https://blog.csdn.net/lanwilliam/article/details/149749059</link><guid>https://blog.csdn.net/lanwilliam/article/details/149749059</guid><author>lanwilliam</author><pubDate>Tue, 29 Jul 2025 15:45:13 +0800</pubDate><description><![CDATA[错误信息如上，其实是由于节点部署时 inital_cluster_state是new，导致集群节点识别已存在，拒绝再次初始化。k8s集群部署的etcd集群（3节点）由于集群扩容，宿主机重启，导致一个节点起不来。先改成existing。然后用etcd可用节点登陆集群，移除故障节点。过程的命令不再记录了，问豆包吧。节点成功加入集群，并启动成功。然后重新添加原节点。]]></description><category></category></item><item><title><![CDATA[记录一次apisix上cros配置跨域失败的问题]]></title><link>https://blog.csdn.net/lanwilliam/article/details/148341848</link><guid>https://blog.csdn.net/lanwilliam/article/details/148341848</guid><author>lanwilliam</author><pubDate>Fri, 30 May 2025 17:17:59 +0800</pubDate><description><![CDATA[这里主要问题是，apisix采用的是不在allow列表的origin直接不做处理。（其实后端没主动写入也没问题）但是在后端主动写入Access-Control-Allow-Origin的情况下会导致失效。调试了cors.lua的插件脚本，发现apisix上是如果不在allowOrigins列表里面的话，就不做处理，没有在响应头写入Access-Control-Allow-Origin。后来发现是后台java服务上面配置了Access-Control-Allow-Origin：*。后台服务网关改掉就ok了。]]></description><category></category></item><item><title><![CDATA[记录一下本地部署Dify的坑]]></title><link>https://blog.csdn.net/lanwilliam/article/details/146018768</link><guid>https://blog.csdn.net/lanwilliam/article/details/146018768</guid><author>lanwilliam</author><pubDate>Tue, 04 Mar 2025 16:24:08 +0800</pubDate><description><![CDATA[1. 截止2025-3-4为止，请注意，不要直接拉Dify的1.0.0版本。请先试用0.15.3版本。1.0.0有一个bug需要解决。3. 请使用docker-ce 新版本，docker-engine等老版本可能会有部分容器启动脚本执行莫名报错。2. 注意，请使用docker-compose V2版本，或者V1较高版本，否则会导致解析官方yml模板错误。]]></description><category></category></item><item><title><![CDATA[apisix网关ip-restriction插件使用说明]]></title><link>https://blog.csdn.net/lanwilliam/article/details/145495891</link><guid>https://blog.csdn.net/lanwilliam/article/details/145495891</guid><author>lanwilliam</author><pubDate>Fri, 07 Feb 2025 15:27:08 +0800</pubDate><description><![CDATA[apisix网关ip-restriction组件使用说明。]]></description><category></category></item><item><title><![CDATA[apisix网关proxy-cache插件使用说明]]></title><link>https://blog.csdn.net/lanwilliam/article/details/145495842</link><guid>https://blog.csdn.net/lanwilliam/article/details/145495842</guid><author>lanwilliam</author><pubDate>Fri, 07 Feb 2025 15:18:27 +0800</pubDate><description><![CDATA[apisix网关proxy-cache插件使用说明]]></description><category></category></item><item><title><![CDATA[apisix的real-ip插件使用说明]]></title><link>https://blog.csdn.net/lanwilliam/article/details/145495585</link><guid>https://blog.csdn.net/lanwilliam/article/details/145495585</guid><author>lanwilliam</author><pubDate>Fri, 07 Feb 2025 15:14:57 +0800</pubDate><description><![CDATA[apisix的real-ip插件使用说明]]></description><category></category></item><item><title><![CDATA[apisix如何配置gzip插件]]></title><link>https://blog.csdn.net/lanwilliam/article/details/145495375</link><guid>https://blog.csdn.net/lanwilliam/article/details/145495375</guid><author>lanwilliam</author><pubDate>Fri, 07 Feb 2025 15:05:31 +0800</pubDate><description><![CDATA[apisix的gzip插件使用示例]]></description><category></category></item><item><title><![CDATA[APISIX的response_rewrite插件使用说明]]></title><link>https://blog.csdn.net/lanwilliam/article/details/145494824</link><guid>https://blog.csdn.net/lanwilliam/article/details/145494824</guid><author>lanwilliam</author><pubDate>Fri, 07 Feb 2025 14:59:15 +0800</pubDate><description><![CDATA[通过两个示例说明apisix中response_rewrite如何使用]]></description><category></category></item><item><title><![CDATA[Kuboard ETCD满了根治方法]]></title><link>https://blog.csdn.net/lanwilliam/article/details/145176363</link><guid>https://blog.csdn.net/lanwilliam/article/details/145176363</guid><author>lanwilliam</author><pubDate>Thu, 16 Jan 2025 11:10:26 +0800</pubDate><description><![CDATA[大家有没有使用过 Kuboard（Kubernetes 多集群管理界面，官网地址：https://kuboard.cn），如果有使用过的同学可能会遇到ETCD存储不足的问题，因为官网提供的docker镜像中，ETCD启动参数并没有添加 --auto-compaction-retention 和 --quota-backend-bytes 参数。原文链接：https://blog.csdn.net/qq_24794401/article/details/127626324。# 再次查看ETCD存储使用情况。]]></description><category></category></item><item><title><![CDATA[故障处理--kuboard无法访问，etcd磁盘空间不足]]></title><link>https://blog.csdn.net/lanwilliam/article/details/145176096</link><guid>https://blog.csdn.net/lanwilliam/article/details/145176096</guid><author>lanwilliam</author><pubDate>Thu, 16 Jan 2025 11:04:56 +0800</pubDate><description><![CDATA[版权声明：本文为博主原创文章，遵循 CC 4.0 BY-SA 版权协议，转载请附上原文出处链接和本声明。磁盘空间不足，etcd默认的空间配额限制为2G，超出空间配额限制就会影响服务，需要定期清理。清理完成后，DB SIZE也不一定会这么低，我这里清理完成1.3g，但是可以使用了。注意，这里30s也不一定够用，根据具体情况可以继续扩大，我这里花了300s。entrypoint.sh，发现没有设置etcd磁盘大小，默认为2G。1、查看kuboard信息，找到kuboard-data的位置。]]></description><category></category></item><item><title><![CDATA[K8s集群部署PowerJob高可用脚本]]></title><link>https://blog.csdn.net/lanwilliam/article/details/145155354</link><guid>https://blog.csdn.net/lanwilliam/article/details/145155354</guid><author>lanwilliam</author><pubDate>Wed, 15 Jan 2025 10:39:09 +0800</pubDate><description><![CDATA[官方仅提供了jar包部署和docker部署方案，未提供k8s集群部署方案，这里分享下自己整理的k8s集群部署方案。

PowerJob是worker主动注册到server的方案，所以不想zookeeper这样还需要选主。这里只需要部署一个三节点组件就可以了。考虑到属于中间件组件，这里选用了StatefulSet部署，基于headless提供集群内访问。]]></description><category></category></item><item><title><![CDATA[MQTT实现集群分布式消费]]></title><link>https://blog.csdn.net/lanwilliam/article/details/144560613</link><guid>https://blog.csdn.net/lanwilliam/article/details/144560613</guid><author>lanwilliam</author><pubDate>Wed, 18 Dec 2024 15:02:31 +0800</pubDate><description><![CDATA[通过在订阅主题前添加 “$share//” 的形式来标识共享订阅组，其中为共享订阅组的名称，为实际的订阅主题。当消息发布到该主题时，MQTT broker 会根据一定的算法将消息分配到不同的订阅者，实现负载均衡。]]></description><category></category></item><item><title><![CDATA[如何为开放平台设计一个安全好用的OpenApi]]></title><link>https://blog.csdn.net/lanwilliam/article/details/143613068</link><guid>https://blog.csdn.net/lanwilliam/article/details/143613068</guid><author>lanwilliam</author><pubDate>Fri, 08 Nov 2024 09:03:24 +0800</pubDate><description><![CDATA[在提到对于开放接口的安全设计时，一定少不了对于摘要算法的应用（MD5算法是其实现方式之一），在接口设计方面它可以帮助我们完成数据签名的功能，也就是说用来防止请求或者返回的数据被他人篡改。本节我们单从安全的角度出发，看看到底哪些场景下的需求可以借助MD5的方式来实现。其入口参数有三个：key、data、mode。key为加密解密使用的密钥，data为加密解密的数据，mode为其工作模式。当模式为加密模式时，明文按照64位进行分组，形成明文组，key用于对数据加密，当模式为解密模式时，key用于对数据解密。]]></description><category></category></item><item><title><![CDATA[使用ubuntu On windows安装docker]]></title><link>https://blog.csdn.net/lanwilliam/article/details/143357422</link><guid>https://blog.csdn.net/lanwilliam/article/details/143357422</guid><author>lanwilliam</author><pubDate>Wed, 30 Oct 2024 10:14:53 +0800</pubDate><description><![CDATA[最近需要做一下springcloud研发，不想装一堆中间件在本地，想跑一下docker，docker desktop不太好用，想直接跑linux虚拟机，有不响装vmware，就像试用下unbuntu On windows。据说可以直接用cmd命令行跑。方法如下：1. 打开windows应用商店。2. 搜索unbuntu并安装一个版本，我这里装了24.04.1最新版。3. 启动unbuntu on windows，会弹出一个cmd窗口，其实是连接了windows内置wsl的ubuntu系统。]]></description><category></category></item><item><title><![CDATA[记录一个容器间访问不通问题]]></title><link>https://blog.csdn.net/lanwilliam/article/details/143306201</link><guid>https://blog.csdn.net/lanwilliam/article/details/143306201</guid><author>lanwilliam</author><pubDate>Mon, 28 Oct 2024 16:39:30 +0800</pubDate><description><![CDATA[容器访问需要宿主机转发，k8s集群一般都关掉了firewalld，但是docker-compose需要开启firewalld和iptables，否则端口路由会创建失败。systemctl restart docker //重启docker，重要：不重启不生效。各种折腾，后来想，应该是通过宿主机转发策略问题。docker-compose装了zookeeper和一个服务。4. 其他容器，通过宿主机ip 2181 不通。怀疑是需要删除所有重启重建，时间关系不再测试了。宿主机放通了2181端口，果然可以使用了。]]></description><category></category></item><item><title><![CDATA[记录一个docker volume映射目录创建文件报错问题]]></title><link>https://blog.csdn.net/lanwilliam/article/details/143234878</link><guid>https://blog.csdn.net/lanwilliam/article/details/143234878</guid><author>lanwilliam</author><pubDate>Fri, 25 Oct 2024 15:08:29 +0800</pubDate><description><![CDATA[入图，Dockerfile中指定了user 1001。这也是为了收缩容器权限，为了数据安全。发现使用volume映射目录后，初始化时创建文件报错导致容器启动失败问题。这个需要手动将映射的目录赋权，而且要看容器使用的那个用户组。所以如果1001没有目录权限，会导致创建目录错误。最近用docker-compse做中间件部署。这里用bitnami/mysql的镜像演示。先找到对应的镜像的Dockerfile。然后重启容器就可以了。提示是没有访问权限。]]></description><category></category></item><item><title><![CDATA[记录一个Docker安装mysql无法外部访问处理过程]]></title><link>https://blog.csdn.net/lanwilliam/article/details/143234511</link><guid>https://blog.csdn.net/lanwilliam/article/details/143234511</guid><author>lanwilliam</author><pubDate>Fri, 25 Oct 2024 14:58:33 +0800</pubDate><description><![CDATA[尝试使用 telnet 127.0.0.1 3306可以通，telnet 主机IP 3306不通。所以容器端口映射，仅创建了tcp6的端口，没有tcp的端口。然后安装docker后，docker默认使用ipv6构建docker0网络。该方法同样可以解决redis等其他中间件问题。查了下资料发现，现在的很多新版本系统，都是默认ipv6网络优先。结果发现mysql等中间件无法通过主机ip访问。然后再telnet 主机IP 3306就可以了。使用docker-compse安装了一套系统。经过各种折腾，发现问题。]]></description><category></category></item><item><title><![CDATA[nvm切换国内镜像源]]></title><link>https://blog.csdn.net/lanwilliam/article/details/142451215</link><guid>https://blog.csdn.net/lanwilliam/article/details/142451215</guid><author>lanwilliam</author><pubDate>Mon, 23 Sep 2024 10:08:08 +0800</pubDate><description><![CDATA[现在封锁越来越严重了，突然发现nvm居然连不上nodejs.org了？好无语，程序猿好难。看来以后什么源都需要准备一个私服了。这里需要修改国内镜像源。]]></description><category></category></item><item><title><![CDATA[终极 Nginx 配置指南]]></title><link>https://blog.csdn.net/lanwilliam/article/details/142162504</link><guid>https://blog.csdn.net/lanwilliam/article/details/142162504</guid><author>lanwilliam</author><pubDate>Thu, 12 Sep 2024 08:40:25 +0800</pubDate><description><![CDATA[对于自己上线项目的前端来说，nginx也是必须要了解和熟悉的，查了很多的nginx文章，看着写的都很详细，但是却没有了整体的概念。这里就重新梳理一遍，也理清思路。我们在安装nginx之后，会自动生成很多的文件，但是nginx.conf这个文件是我们的核心，如何去正确的修改和优化它是nginx的核心。首先我们可以先看下原本的配置，你会觉得无所适从，因为感觉这个鬼东西也太多了吧。而且感觉根本就不理解，也不知道该怎么写。下面，就一步一步的教你如何入门到熟悉。]]></description><category></category></item></channel></rss>