如何判断 Tailscale 直连还是中继

背景 Tailscale 是一个基于 WireGuard 的零配置 VPN 解决方案,允许用户轻松地在不同设备之间建立安全的连接。在某些情况下,Tailscale 会选择通过中继服务器(DERP)进行通信,而不是直接连接(P2P打洞)。这可能会影响性能和延迟。 判断方法 使用 tailscale status --peers 命令查看连接状态,会看到类似如下的输出: 100.x.x.x

使用 Seaweedfs 代替 Minio

原因 因为众所周知的原因 Minio切换开源项目为仅维护状态 ,所以需要寻找替代方案来继续使用类似S3的存储服务。 在论坛和推上有不少人推荐了 Seaweedfs 作为替代方案。 在这里记录一下Debian 13系统下,使用Seaweedfs代替Minio的过程。 安装Seaweedfs 1. 下载最新二进制文件 (请根据实际情况替换版本号) wget https://github.com/sea

nginx-acme模块无法申请证书解决方案

问题描述 为了省略每次手动申请SSL证书的麻烦,自己手工编译了nginx,并使用了 nginx-acme 模块来自动申请和续订证书。但是在实际使用过程中,发现无法成功申请证书。 使用了官方的文档进行配置: nginx的http模块增加 # 配置 DNS 解析器(用于 ACME 客户端与 CA 服务器通信) resolver 127.0.0.1:53; # 定义一个名为 “au92” 的 ACME

检查Linux硬盘占用,清理Docker残留数据

PVE一个LXC部署了一些打包任务,最近发现备份文件越来越大。但实际编译中间产物没有那么大的文件。 检查磁盘占用 首先使用如下命令检查磁盘占用情况(exclude的目录是挂载的NAS的共享目录): sudo du -h --max-depth=1 / --exclude=/mnt 2>/dev/null | sort -h 问了ChatGTP说也可以使用如下命令可以自动跳过挂载点对应的外部文件系统

快速切换网关和DNS配置(Linux)

上脚本 #!/bin/bash # 目标网关 GW1="192.168.3.8" GW2="192.168.3.2" # 网卡名称(你的 LXC 为 eth0) IFACE="eth0" # 读取当前默认网关 CURRENT_GW=$(ip route | awk '/default/ {print $3}') echo "Current gateway: $CURRENT_GW" # 选择切换目

uname命令解释

含义 uname -a 是 Linux/Unix 系统中一个常用的命令,用于显示系统的内核和主机相关信息。它的输出包含多个字段,每个字段都有特定含义。 示例输出: Linux myhost 6.5.0-14-generic #14~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Mon Jan 8 17:01:42 UTC 2024 x86_64 x86_64 x86_6

Spring Cloud + FeignClient 实现 TCC 分布式事务

背景 面试一些候选人时候大多会说自己用过分布式事务,而且大多是使用Seta这个框架。但问题避免全局锁的时候大多会说自己使用了TCC这种模式。 但实际上大多候选人并没有真正实现过TCC分布式事务,问到一些细节时候就答不上来。 所以这里就简单实现一个基于Spring Cloud + Feign的TCC分布式事务,以便面试的后续人有资料可以搜索到。 架构 假设有两个微服务: OrderService:负

Java 并行框架

源头 最早了解到这个概念是通过京东开源的CompletableFuture工具库 asyncTool 。 但关注了好久依然对于使用asyncTool觉着是一个非常重的操作,所以就想着自己实现一个轻量级的并行框架。 实现 自己看了asyncTool的实现,在实际案例中发现不需要那么多功能,所以就自己实现了一个轻量级的并行框架。 当前并行框架已知缺点是尽量不要Promise中套Promise,避免死

Reciprocal Rank Fusion (RRF)简单实现

什么是 RRF? 倒数排名融合 (RRF) 是一种简单而有效的方法,用于合并多个排序列表。它广泛应用于信息检索、搜索引擎和推荐系统,用来融合来自不同排序算法的结果。 RRF 通过基于文档在每个排序列表中的位置分配分数,然后组合这些分数来创建最终排名。公式为: RRF_score(document) = ∑ 1/(k + rank_i) 其中 k 是一个常数(通常为 60),用于减轻单个列表中高