参考资料:
- https://blog.laisky.com/p/tailscale/ 容器安装 derper 一节
具体步骤:
1. 首先你已经有了 tailscale 账号
2. 你有自己的域名,然后拿到 dns server(如 cloudflare)的 access token
3. 服务器上装好 docker,域名指向这个服务器,用子域名也 ok
4. 在服务器上运行 swag + derper 的 docker compose
5. 编辑 swag 的 dns-conf,填入你的 dns access token,重启 swag
6. 等待 swag 成功申请到证书,重启一下 derper,检查一下 derper 成功加载了 TLS(derper 的日志里有这么一行
derper: serving on :YOUR_PORT with TLS)7. 去 tailscale ACL 把你的 derper 地址和端口配置好
注意:derper 可以挂在子域名和自定义端口,这样不会和你的既有服务冲突。
注意:如果你的域名没有备案,而且部署的服务器是境内的,那么不要用 443 端口!部署好后不要手贱用浏览器去访问!
实测腾讯云是不会阻断非 443 端口的未备案 HTTPS 流量的,当 derper 完全可以!
docker-compose 和 acl 配置可以参考附件
我的 macbook 是通过一根 usb-c 连接到显示器供电的(线材是青州小熊那买的廉价 4K 线),以前每次拔掉再插上,macbook 都需要很长时间才能正确识别到显示器,表现为反复闪屏。后来发现是 usb-c 线离对面同事的 usb-c 线太近了,我用笔筒把两根线隔开后就解决了。有遇到类似问题的可以检查下自己的排线…
—-
fix:作者在后面的无主 quorum 里提到了。其实在有主里这也是常见做法。
在GitHub的一个事故中,某个数据并非完全同步的MySQL从节点被提升为主副本,数据库使用了自增计数器将主键分配给新创建的行,但是因为新的主节点计数器落后于原主节点(即二者并非完全同步),它重新使用了已被原主节点分配出去的某些主键,而恰好这些主键已被外部Redis所引用,结果出现MySQL和Redis之间的不一致,最后导致了某些私有数据被错误地泄露给了其他用户。
—-
《DDIA》第五章的例子,使用分布式 ID 可避免此类问题。至于分布式 ID 的局部性问题,可参考 UUID7 的思路,以时间戳为前缀。
—-
《DDIA》第五章的例子,使用分布式 ID 可避免此类问题。至于分布式 ID 的局部性问题,可参考 UUID7 的思路,以时间戳为前缀。