解决PyCharm终端使用zsh powerlevel10k主题时的乱码问题
powerlevel10k 是 zsh 上很好看的主题,我一直是在 wsl 里用,配合 Windows Terminal 很好看,不过在 PyCharm 里打开会乱码,可以通过修改控制台字体为支持 powerline 的字体,不过还是不完美,有时候还有 BUG。 想了下,我平时都是在 Windows Terminal 上用的,那么可以让使用 Windows Terminal 的时候显示成花里胡哨的主题,用其他软件比如 PyCharm 或者 VScode 的时候,换成朴素的主题。看了下,在 Windows Terminal 上有个特殊的环境变量 WT_SESSION 和 WT_PROFILE_ID ,看名字应该是和 Windows terminal 有关,测试了下也确实如此,那么可以修改 ~/.zshrc 来实现。 此时显示如下:
Nacos 2.0.3 集群升级为 2.1.0
2.0.3 版本的 BUG详细 bug 在 GitHub 上有,比如: issue 链接见:https://github.com/alibaba/nacos/issues/9332https://github.com/alibaba/nacos/issues/8492 我们遇到的 bug 简单一句话总结就是:集群方式部署的 nacos 其中一个节点重启后可能会有节点数据不一致的现象(服务注册与服务发现里面的服务数量不一致)比如说一个服务注册到了 nacos 中,我在 nacos 网页控制台 服务管理 服务列表 里查看有 10 个服务注册进来,刷新下网页可能就变成了 9 个,再刷新又变成 10 个,这种情况就是 nacos 的多个节点数据不同步了(nacos 配置中心数据是从 MySQL 取的,不受这个 bug 的影响),这种情况可以直接将 nacos 副本数设置成 1 临时解决,想要彻底解决我们验证了升级到 2.1.0 就能修复。 升级数据库表结构 nacos 官网文档写的太敷衍了,版本之间的差异需要自己找,哪怕你上个 flyway 也好啊。 其中有三个表(config_inf...
群晖NAS部署zerotier内网穿透访问
前言完成这个教程,你主要需要完成以下流程: 在 NAS 上启用 SSH 创建一个持久的 TUN 安装 Docker 设置 Docker 创建一个持久的 TUN如果有 /dev/net/tun 就不用再执行了 使用 SSH 连接到你的 NAS,切换为 root 身份 创建一个开机自启动脚本: /usr/local/etc/rc.d/tun.sh 安装 Docker 到你的 NAS 上直接到套件中心去安装。 创建一个容器,这里将它命名为 zerotier,这里会自动下载最新版的 zerotier 要在 ssh 里创建,不要在群晖控制台创建。创建完成后可以在控制台进行管理。 注:官方镜像:zerotier/zerotier-synology:latest 使用与配置查看状态 添加网络 在 zerotier 后台授权当前设备,然后查看状态: 使局域网网段可以访问1. 添加路由假设家里的机器:zerotier 地址是:172.28.135.11,内网 IP 地址是 192.168.1.11 在 zerotier 网站的 networks 里面的 Mana...
管理Redis内存占用
淘汰策略如果设置了合适的淘汰策略,Redis 会根据以下几种策略选择性地移除某些键,腾出内存空间(淘汰策略需要和内存限制配合使用) 常用淘汰策略说明 策略 说明 volatile-lru 从设置了过期时间的键中,移除最近最少使用(LRU)的键。 allkeys-lru 从所有键中,移除最近最少使用(LRU)的键。 volatile-random 从设置了过期时间的键中,随机移除键。 allkeys-random 从所有键中,随机移除键。 volatile-ttl 从设置了过期时间的键中,移除即将过期的键(优先移除 TTL 短的键)。 noeviction 当内存超过限制时,直接返回错误,不再执行新增操作(这是默认策略)。 设置方法: 在 redis.conf 文件中添加或修改: 或通过命令行动态设置: 内存限制设置 maxmemory 通过命令行动态设置: 持久化设置如果缓存数据可丢失,可以禁用持久化(RDB 和 AOF)以减少磁盘 IO 开销:
使用Python识别验证码 Muggle OCR
最近发现个 ddddocr,识别率很高,识别速度还很快:使用Python识别验证码 ddddocr 以前用过什么 pytesseract 识别效果很差,还需要电脑上安装 Tesseract OCR 的软件,但是使用下来,效果不好,后面也用过 PaddleOCR 可以识别,但是识别速度比较慢,成功率也不高。后面又看到了这个开源工具,吹牛逼比较厉害,号称自己是验证码识别的最高境界,就试试看。官方的 GitHub 地址是:https://github.com/litongjava/muggle_ocr 效果展示 环境OS: Windows 11Python: python-3.10.10-amd64 安装这个开源程序在 pypi 仓库上被移除了,需要在 GitHub 上将源码包下载下来安装。 下载到本地,解压后,打开 cmd 命令提示符, 报错处理error: numpy 2.2.1 is installed but numpy<2.1.0,>=1.26.0 is required by {'tensorflow-intel'}...
nginx反向代理的context path
返回请求 uri在 Nginx 中,可以使用 $request_uri 来表示请求 uri, 配置如下; 这里再使用另一台 nginx 反向代理到这台 nginx 就可以测试请求的 uri 了。 测试 nginx 的反向代理 content path1 结果是 curl localhost/a/b/ –> http://192.168.200.12/a/b/ 2 结果和上面一样,但是只有 /a 开头的才能转发到这里 3 结果和上面一样,但是只有 /a/ 开头的才能转发到这里 4 结果是: 5 结果是: nginx 的 aliasNginx 的 alias 指令可以理解为“路径别名”,它能把用户访问的 URL 路径直接映射到服务器上的另一个真实目录。举个例子: 假设你配置了: 当用户访问 http://你的网站/images/cat.jpg 时,Nginx 会直接去服务器上的 /var/www/my_photos/cat.jpg 找文件,而不会保留 URL 中的 /images/ 路径。 和另一个指令 root 的区别在...
使用kubeadm部署一套高可用k8s 1.32集群 for AlmaLinux9(RHEL9)
基于 AlmaLinux9 使用 kubeadm 搭建集群, ubuntu部署文档, 有疑问的地方可以看 官方文档, 本教程需要能访问 国际互联网 。不能的话,需要解决镜像拉取问题、yum 安装组件的问题。 准备机器 我的机器详情如下, 配置至少为 4C4G hostname IP 作用 master1 10.0.0.11 k8s master 节点 master2 10.0.0.12 k8s master 节点 master3 10.0.0.13 k8s master 节点 worker1 10.0.0.21 k8s worker 节点 worker2 10.0.0.22 k8s worker 节点 每台机器都做域名解析,或者绑定 hosts(直接使用 ip 地址会有警告) 每台机器都关闭防火墙和 SELinux 负载均衡机器必须要关闭,因为 6443 不是 nginx 的标准端口,会被 selinux 拦截, 防火墙也需要放行 6443 端口, 可以考虑直接关闭防火墙 基础环境配置 基础环境是不管 master 还是 work...
Grafana表格绘制
选择一个关联标签instance 是机器 ip,不会重复,所以我用这个做关联字段。第一个查询我会保留多一些标签,(可以使用 sum by ... (instance) 保留想要的标签)其他的查询尽量只保留关联字段。 默认配置了多个查询,并将 Grafana 图表类型设置成 table 后,再将查询的格式设置成 Table,显示如下,有以下几个问题: 整合多个查询在一张表里面现在显示的是 3 个查询,通过一个选框来切换的,我们想要让这 3 个查询显示在一个框中,可以在 Grafana 的 Transform data 中增加一个 Join by field, 我这里以 instance 这个字段做关联,也就是说同样的 instance 认为是一条数据。可以看到展示出来只有一条数据了,并且选框没有了。 移除不想展示的字段上面可以看到数据已经被关联成了一条,但是有很多不想显示的字段,在 Transform data 中增加一个 Organize fields by name,经过调整后 修改字段单位上面的运行时间,单位是秒,需要调整一下单位,在 Override 中调整: 给表格...
使用RedisShake进行Redis迁移
对于自建的 redis, 我们可以将 rdb/aof 文件拷贝到目的 redis, 启动恢复, 但是云 redis 或者某些特殊情况, 比如没有云平台的权限等等情况, 可以使用工具来进行迁移. RedisShake 是阿里云 Tair 团队 积极维护的一个项目。它的演变可以追溯到其初始版本,该版本是从 redis-port 分支出来的。官方文档https://tair-opensource.github.io/RedisShake/zh/guide/introduction.html 安装 同步迁移创建一个配置文件 redis_sync.toml 执行迁移操作, 命令会在后台进行监听, 同步 redis 的变化, 迁移完成再关闭此服务. 使用 RDB 文件迁移先在源 redis 导出 rdb 文件, 上传到一台 linux 机器 (可以访问目标 redis), 然后执行迁移. 配置文件: 执行迁移操作:
Elasticsearch索引生命周期配置
参考https://www.cnblogs.com/feifuzeng/p/13563430.htmlhttps://blog.csdn.net/feiying0canglang/article/details/129789161 这里以 Elasticsearch 7.17.14 为例,7.8 版本之前与之后有一点区别。7.8 之后的 API 是:_index_template,7.8 之前的命令是:_template 设置索引模板模板是为了让创建的索引按照一定的规则,比如索引按天分割,手动给每个索引做配置太麻烦 创建生命周期策略 创建索引模板索引模板引用上面创建的生命周期策略 检查是否生效 修改系统配置Elasticsearch 不会实时检测,可以修改检测时间间隔 手动修改现存的索引因为我们创建了索引模板,只能在下次创建新索引才能生效,老索引需要手动绑定到策略上。 对于 logstash由 ES 来管理生命周期logstash 会创建自己的默认 template,所以想要应用 template 需要禁用 logstash 的 manage_template l...




