Normal view

There are new articles available, click to refresh the page.
Today — 19 May 2025V2EX-最新主题

VictoriaMetrics 开发者笔记:团队内关于 Distributed Tracing 的调研,对比 Tempo 和 ClickHouse

19 May 2025 at 12:46
RedisMasterNode:

谈到可观测性,人们总是会提起它的三大支柱:Metrics, Tracing, 和 Logging 。在 VictoriaMetrics,我们已经有了 Metrics 和 Logging 的解决方案 VictoriaMetrics 和 VictoriaLogs 。同时我们也一直听到很多声音,其中之一就是:VictoriaTraces 什么时候发布。

如果你也关心这个问题,那么相信这篇博客可以让你了解我们内部对 Distributed Tracing 解决方案的调研情况:会不会有 VictoriaTraces它和竞品比起来怎么样

1. 什么数据库适合 Trace Span

一个 Trace 是由许多 Span 组成的,所以要打造一个 VictoriaTraces ,我们首先思考的是,Span 长什么样子,什么数据库适合存储这种数据

以下是一个 Span 的例子:

{
  "name": "/v1/sys/health",
  "context": {
    "trace_id": "7bba9f33312b3dbb8b2c2c62bb7abe2d",
    "span_id": "086e83747d0e381e"
  },
  "parent_id": "",
  "start_time": "2021-10-22 16:04:01.209458162 +0000 UTC",
  "end_time": "2021-10-22 16:04:01.209514132 +0000 UTC",
  "status_code": "STATUS_CODE_OK",
  "status_message": "",
  "attributes": {
    "http.method": "GET",
    "http.target": "/v1/sys/health",
    "http.server_name": "mortar-gateway",
  },
  "events": [
    {
      "name": "",
      "message": "OK",
      "timestamp": "2021-10-22 16:04:01.209512872 +0000 UTC"
    }
  ]
}

很容易留意到,它就是一系列 Key-Value 的组合,大部分 Key-Value 仅作展示,小部分(如 trace_idattributes)可以被用作查询条件。

如果你恰好也有了解过 Logging 的一些解决方案,你会发现 Trace Span 和 Structured Log 很像:

  1. Structured Log 和 Trace Span 都是由一系列的 Key-Values (或者 Fields ,Attributes ,Tags ,不管怎么称呼它们都行)组成,而这些 Key-Values 中有很多重复的内容
  2. 它们对写入量需求很大,一个企业每天可以轻松采集数 TB 甚至 PB 的 Logs ,Traces 也是一样。
  3. 这些被保存下来的数据只有很少一部分会被查阅,所以围绕这个特点产生了很多采样方案。

当前,几乎没有数据结构能同时针对读性能写性能磁盘空间进行优化,在这个三个考察标准中通常只能满足其中一或两项。对于 Structured Logs 和 Trace Spans ,它们很显然更强调写入吞吐量以及磁盘空间。所以:

  1. 基于 LSM-Tree 的数据结构比基于 B+Tree 的数据结构更合适。前者通常能提供更好的写入性能,而后者更强调查询性能。
  2. Column-oriented 数据库比 Row-oriented 数据库提供更好的空间利用率,因为 Column (或 Field )中数据的相似性更高,更易于压缩。反之,数据按 Row 存储时更容易获取一行内的数据,这对高性能的查询有帮助。

那么到这里,我们的目标稍微明确了一些:VictoriaTraces 可能是一个基于 LSM-Tree 的列式存储数据库

2. 造新轮子?

在造轮子之前,我们需要先了解满足这些要求的数据库都有哪些。如果你是 Jaeger 的用户,你一定熟悉它的其中一种存储方案:ClickHouse。ClickHouse 在 Jaeger v1 中以 plugin 形式存在。到了 Jaeger v2 ,社区希望对其提供原生支持这再一次说明基于 LSM-Tree 的列式存储非常契合 Trace Span 数据

题外话:谁在用 ClickHouse 作为 Traces 存储?

  • 当我还在 Shopee 工作的时候,内部 Tracing 平台是基于 Jaeger 改造的,它的存储最初是 Elasticsearch ,当规模逐步扩大后,被替换为 ClickHouse 。
  • 后来,我入职了富途牛牛,尽管时间很短只有 3 个月,我与可观测团队还是有过一些简单的交流。它们的 Tracing 平台使用的是 Zipkin ,并且刚从 Cassandra 迁移到 ClickHouse 。
  • 在加入 VictoriaMetrics 前,我在 TT 语音工作,当时使用的是腾讯云的 Tracing 平台。从一次数据导出中,我观察到很多地方有 ClickHouse 的身影,例如表名、数据结构等,所以腾讯云应该也是 ClickHouse 用户之一。

在 VictoriaLogs v1.0.0 版本发布后不久,我们发现它似乎也满足存储 Trace Span 的要求。它是为 Structured Logs 设计的,而我们前面说过,Structured Logs 和 Trace Spans 在方方面面都很相似。

所以,我们打算在从 0 开始构建 VictoriaTraces 之前,用 VictoriaLogs 先做一次 PoC ( Proof Of Concept ,概念验证),万一它能用,万一它很好用呢?

3. VictoriaLogs 数据模型 与 Trace Span

在 VictoriaLogs 中,每条 Log 是由多个 Fields 组成的,包含几个特殊 Fields 以及其余的普通 Fields:

  1. Stream Fields:数据首先是按照 Stream Fields 来组织的,这可以用来缩小查询范围,它就像索引一样存在,例如 {application_name="...", env="..."}。一些高基数的 Value (例如 ipuser_idtrace_id)不适合作为 Stream Fields 存在。
  2. Time Field:每条 Log 都应该带有时间,这个 Field 同样是为减少需要扫描的数据范围而设计的。
  3. 普通 Fields:任何内容都可以以 Key-Value 的形式作为普通 Field 存在,它可以帮助优化查询。

要将 Trace Span 存储到 VictoriaLogs 中,思路也很简单:把所有的内容都平铺为 Fields ,并在其中挑选出特定的 Fields 作为 Stream Fields 即可

考虑到 Service NameSpan Name(在 Jaeger 中也称为 Operation Name)通常都会被用作搜索 Traces 的首要条件,并且它们也不包含高基数的 Value ,所以它们就被设计为了 Stream Fields ,其余 Span Attributes 都被平铺成普通 Fields 。

4. Data Ingestion 性能

我们最关注的是 VictoriaLogs 的 Data Ingestion 性能与其他竞品比起来怎么样。

目前,热门的 Distributed Tracing 方案包括 Jaeger、Grafana Tempo。所以在测试中,我们选择了 Jaeger + ClickHouse / Jaeger + Elasticsearch / Grafana Tempo + S3 作为比较对象。

在这个 PoC 中,对比对象均分配了 4 CPUs 及 8 GiB 内存,其余组件则按需提供足量资源保证不成为瓶颈。

整体的测试架构非常简单:

为了直观对比不同方案的硬件资源需求量,我们控制变量,先尝试将 Ingestion Rate 保持在 10000 spans/s。此时得到的结果如监控所示:

题外话:为什么缺少 Jaeger + Elasticsearch 的测试结果?为什么用 10000 spans/s ?

遗憾的是,Elasticsearch 方案在 Ingestion Rate 仅为 5000 spans/s 时就开始出现队列拥堵和 Crash ,在更高的负载下无法保持稳定,因此未能出现在最终的对比中。

事实上,我们也在不同负载下做过多次测试,尝试让所有比较对象都能顺利完成。例如使 Tempo 数据写入本地磁盘而非对象存储,它可以通过 18000 spans/s 的测试,尽管这并不是 Tempo 的推荐使用方式。如果你对这些更为极限的测试感兴趣,请在文章下留言,或者前往 Slack 频道与我们讨论。

在 CPU 使用率上,VictoriaLogs (50.4%) < ClickHouse (69.4%) < Tempo (135%)。同时,ClickHouse 与 Tempo 的 CPU 使用率波动更明显

如果仅对比 VictoriaLogs 和 ClickHouse ,在负载提升至 17000 spans/s 时,ClickHouse 的 CPU 波动问题会更加突出。

在内存用量上,**ClickHouse (14%) = VictoriaLogs (14.4%) < Tempo (53.3%)**,此时 VictoriaLogs 与 ClickHouse 的内存较为稳定,而 Tempo 使用了 4x 内存容量并且抖动明显,最终也出现了 OOM 的情况。

在数据增长体积上,相同时间范围内 VictoriaLogs (3.27 GiB) < ClickHouse (5.86 GiB)Tempo 使用的是对象存储,根据平台提供的数据,其数据量约为 4.4 GiB,但是并不便于直观对比。因此我们在后续测试中对比了 Tempo 使用本地磁盘作为存储时的情况:

可以看出,虽然 Tempo 使用的对象存储成本更低,但是压缩率不如 VictoriaLogs 和 ClickHouse 。如果 VictoriaLogs 能在未来支持对象存储,那将变得更有竞争力。

题外话:问题

你有留意到不同方案的 In/Out-Traffic 差异吗,是什么原因导致的呢?提示:

  1. Jaeger 与 ClickHouse 连接时使用了什么配置
  2. Jaeger/Tempo 的数据写入请求发送至 ClickHouse 或 S3 后会收到什么响应呢?

以下是以 VictoriaLogs 作为基准,相同负载下各方案所需的资源对比汇总:

5. 数据可视化

行业中炙手可热的 OpenTelemetry 标准只定义了数据传输的协议 OTLP ,但是对于数据如何被查询和可视化并没有明确的标准,这也导致 Jaeger 、Tempo 等项目各自实现了不同的查询 APIs 。

VictoriaLogs 目前没有提供 Trace 的可视化方案,但是为了验证 VictoriaLogs 的查询语言 LogsQL 能否覆盖 Trace 展示的所有场景,我们尝试基于 VictoriaLogs 实现 Jaeger 的 APIs 。

题外话:为什么选择 Jaeger ?

我们选择在 PoC 中实现 Jaeger HTTP APIs 是因为:

  1. Jaeger 项目使用广泛。
  2. Grafana 原生提供了 Jaeger Datasource 支持,意味着只要实现 Jaeger APIs ,用户可以在 Grafana 上直接将 VictoriaLogs 中的 Trace 数据可视化。

数据可视化本质上是第 3 节内容的逆向过程,其实并不复杂。

在实现过程中,我们发现 Time Range Filter 是对查询性能影响最大的。例如查询 trace_idc3b94b884c236e1e7ae39e7ca3589d18 的数据,因为 VictoriaLogs 并不存在 trace_id 索引,即不明确这个 trace_id 的对应的数据在什么时间范围、有多少 Spans ,所以需要扫描所有时间内符合条件的数据 Block ,而其中大量扫描是没有必要的。如果可以将时间范围限制在特定的 10 分钟、30 分钟内,整体查询都能大大提速。

因此,使用 VictoriaLogs 作为 Trace 存储,最好可以配置特定的 Lookback Windows 。例如,配置 metadata_lookbehind=3d 使得每次加载所有 Service Name 列表时,只检索最近 3 天内出现过的 Service Name 。

又如,trace_id_lookbehind_step=7d 在每次直接通过 trace_id 查找 Trace Span 时,按照 7 天作为步长逐步检索,如果检索到了数据,则不再去查找下一个步长内的数据了。

实现 Jaeger APIs 后的 VictoriaLogs 既可以搭配 Jaeger UI 使用,也可以在 Grafana 上查询,响应时效较 ClickHouse 和 Elasticsearch 明显更短,说明 VictoriaLogs 也能很好胜任需要展示 Trace 的场景。

不知道这样的 UI 对用户来说体验怎么样呢?

6. 总结

通过这篇文章,我们希望解答的问题是:

  1. 什么样的数据库适合用于存储 Trace Span ,为什么 VictoriaLogs 可以成为众多选择之一?
  2. Trace 数据在 VictoriaLogs 中是以怎样的形式存在的?
  3. VictoriaLogs 在 Distributed Tracing 的场景下性能有多好,与其他竞品相比如何?
  4. Trace 数据如何展示?
  5. 我们还需要 VictoriaTraces 吗?

我想除了最后一个问题,其它 4 个问题应该在前面的章节中已经有了答案。

如果没有更加突破性的方案(例如相同配置下实现 10 倍的数据写入量),我们应该不会单独打造 VictoriaTraces ,毕竟 VictoriaTraces over VictoriaLogs 也很酷不是么?另外,和 VictoriaMetrics 不同,VictoriaLogs 的对象存储支持已经在我们的日程中。相信 VictoriaTraces over VictoriaLogs 也会从中受益。

考虑到 Distributed Tracing 生态中仍有许多工具缺乏好的实现,或许打造一些与采样相关的工具( vtagent?)也会是个不错的主意。

目前,我们想要积极地听取用户对这项功能的意见。我们的初衷是提供高性能低成本架构简洁易于扩展的解决方案,这优先于其他所有目标。

题外话:关于性能

目前实验中的 VictoriaLogs 可以在平均 1.2 (最高 2.6 ) CPU 的资源开销下支持 30000 spans/s 的 Ingestion Rate 。由于尚未进行 Profiling 和优化,我们预计正式的 Pull Request 还有很长一段时间才能和大家见面。

但是如果你已经迫不及待想要动手试试这个“玩具”,可以查看以下 Demo

如果你认为这个功能可以代替你现有的 Trace 存储,想要赶紧体验一下,或者它因为什么原因不是你的菜,请务必通过评论,GitHub Issue 或者 Slack 频道告诉我们,VictoriaMetrics 团队期待在多个方面为我们的用户提供技术支持。

7. 番外篇

其实在更早之前,我尝试过让 VictoriaLogs 作为 Jaeger 的 gRPC Remote Storage ,出于一系列的原因,资源开销并不理想( 10x 之于 ClickHouse )。当时我的结论是 VictoriaLogs 可以存储、查询 Trace Span ,不过毫无竞争力,并且打算就此结束。

但是 @hagen1778 和我说,现在下结论还太早,并且给了我很多的建议。相似的事情也发生在我和 @valyala 之间,我还从 @AndrewChubatiuk 及其他同事的代码中找到了许多有帮助的技巧。Thanks to these experienced engineers for saving my day 。

[求助] 手机端 app 实时接收一个服务端事件的优雅方案

By: rizon
19 May 2025 at 12:46
rizon:

手机端的 app ( ios 、android )。
需求是想要尽可能实时的接收服务端主动发起的一个事件,不知道有什么方案可以做。

最简单的是轮询,但是几秒钟轮训一下总觉得太不优雅。

再者就是 websocket 的,但是这样服务端要维护所有的客户端的长链接,对服务端架构要求和成本变高了。

然后我就不知道有什么好的方案了,求大佬们指导。

说到这,我也好奇,打车、外卖、共享单车这类产品他们是怎么做的实时刷新数据的?

写了一个在终端使用 Todo 的 CLI 工具

By: jimmyC
19 May 2025 at 12:33
jimmyC: 本项目使用 Go + Cobra 编写,开源: https://github.com/Lily-404/todo 喜欢的 V 友可以点个 star

GoTodo 的设计理念源于对极简主义的深刻理解:真正的效率不在于功能的堆砌,而在于恰到好处的设计。我只保留最必要功能,避免功能膨胀,即使产品的名字叫 GoTodo ,用户在安装后使用的命令是 todo ,就是为了减少认知负担,让用户专注任务本身,简洁的见面和直观操作,项目支持中英文切换。

由于图片显示原因,我把制作工具的思路和细节写到了个人博客:
https://www.jimmy-blog.top/posts/gotodo

外卖平台抽成太高了!我们能否共同打造一个属于劳动者的数字摊位?

By: ugugzh
19 May 2025 at 12:32
ugugzh:

最近听一个做餐饮的老哥吐槽说现在平台抽成比房租还贵,平台居然要抽掉三成左右,给我惊了,难怪最近东哥这么得民心。 我在想有没有可能,以 DAO 的形式运营一个零佣金的外卖平台?让用户,商家,骑手直接沟通

为什么在最新的安卓版微信里打开 H5 页面,不能长按保存图片到相册?以前可以的。 iPhone 版没有问题

By: Radeon
19 May 2025 at 12:22
Radeon: 图片是用 JS 动态显示出来的,可以看见。Referer 限制为 htm 文件所在域名

iPhone 上毫无问题,就是 Android 上有问题。已经给微信开了相册的全部权限了。问了几个 AI ,包括腾讯元宝,都在扯不相关的原因

早些年用 dvd 刻录备份数据的朋友,现在你的 dvd 盘还能读吗?

By: forsky
19 May 2025 at 12:08
forsky:

我找到了 2005 年左右做的一些北方。当时用 dvd 刻录盘备份的。 数据并非很重要,主要是当年收藏的一些视频,但是昨晚在家拿出这些盘来读的时候,有一些已经不能正常读取了。 换了两个光驱都不行。 今天带到单位,用了几个电脑都不能读取了。 看来 dvd 刻录这个备份方式,真的有待商榷。

浏览器插件开发者的会员盈利方案

By: guyskk0x0
19 May 2025 at 11:53
guyskk0x0:

有正在做或准备做浏览器插件的开发者吗,你目前是如何实现盈利的?

我是 艺爪付费 这个服务的开发者,为软件产品提供会员、订阅、内购付费功能,这个服务目前已经运行 5 年了。

最近 AI 大模型写代码越来越好,尤其是写前端界面交互代码。我用 AI 从 0 开始做一个完整的浏览器插件,并且集成艺爪付费实现会员功能,只用了不到 1 天时间,绝大部分代码都是 AI 直接写好,我只动嘴就行了。

插件代码全部开源,方便大家参考集成到自己的产品中,欢迎交流反馈!

艺爪付费浏览器插件集成指南: https://github.com/guyskk/ezrevenue-browser
图片下载器 Chrome 扩展开源代码: https://github.com/guyskk/ezrevenue-browser/tree/main/ezimage-downloader

刚开始戴眼镜没几天,遇到了点状况

By: katwalk
19 May 2025 at 11:52
katwalk: 首先是视野问题,感觉镜框总是在旁边,还是能看到四周的框,和裸眼看还是有很大差别。时间长了,不知道能不能习惯?

其次是鼻子上,戴的时间长了会压出两个红印子。有没有什么办法能缓解?在淘宝上搜了搜,看到有那种替代的鼻托,有硅胶的、气囊的、气垫的……不知道换了有没有效果。有没有用过的,哪种比较好?

美区 APPLE ID 注册电话☎️号码问题以及后期续费问题

19 May 2025 at 11:49
zzrot19910319: 在很多博主的视频里都有介绍,科学 surfing 的时候,不要用国内的手机号,注册服务。比如连接国内手机号到 X 等等。但是美区的 Apple ID 注册时候需要一个电话号码,这个电话号码,假如不写国内的,有什么其他办法没有。

虚拟电话号码,能够用来注册的是怎么一回事?如果购买一个虚拟账户,可不可以?

后期的美国 ID 续费,现在在淘宝上还好找到可以续费充值的商家么?还是自己在网上淘美区的充值卡号码?

有没有在用的铁子分享一下。

家里长辈总喜欢购买直播间的三无产品,有无好方法解决?

By: hytex
19 May 2025 at 11:47
hytex: 继上一次在某直播间购买了三无洗发水被我说过之后,这几天又买了三无沐浴露。期间更是买了甚多“闻所未闻”的产品,囊括日化,清洁,食品。
总结了一下这些产品的特点:
1.和某些不知名的小众产品类似(参考雪碧和雷碧这种差异)。
2.自称香港或国外产品。
3.包装看上去不错,实际上手非常劣质(昨天摸着瓶身,跟小学门口五毛泡泡水的瓶身一个手感)。

最让我痛心的是, 舒肤佳官旗,抖音 69.9 ,四瓶 550g+3 包 200g 的补充装。 这个三无产品居然 99 三瓶。
家里长辈是在抖音直播看到盲人直播,然后说他推荐的肯定没问题,就买入了。

请问各位朋友,这种问题如何解决,如何杜绝再次发生?
PS:之前就好好沟通过这种问题,不要买这种类似的产品。所以有其他的什么方式或者手段来阻止或杜绝吗?

各位用过京东家政(权益)的老哥,实际使用反馈如何?

By: nanajj
19 May 2025 at 11:46
nanajj:

手里可以兑换,但我看有说家政 2 个小时做不了什么工作,可能只清洁 1-2 个房间,且只清洁地面擦擦灰,玻璃柜门/厨房重油的地方不会给收拾。

我家养宠家庭,有扫拖机器人日常清洁,有戴森吸尘器,其他清洁工具/溶剂一应俱全,擦玻璃贼专业,我家开荒保洁是我自己做的。如果我想要深度系统的清洁,是不是这个权益就很鸡肋了?

你们的规则 FINAL 是直连么?

19 May 2025 at 11:45
Kinnikuman:

Clash 用户( Mihomo Party/Clash Verge Rev ),我的配置 FINAL 走直连,非 surge 用户,每次遇到想走代理的请求,还需要改配置文件,比较麻烦,但也会在乎 FINAL 走代理后,规则不够强大,影响 CN 的连接。

下面是我的配置:

rule-providers:
  reject:
    type: http
    behavior: domain
    url: "https://raw.githubusercontent.com/Loyalsoldier/clash-rules/release/reject.txt"
    path: ./ruleset/reject.yaml
    interval: 86400

  icloud:
    type: http
    behavior: domain
    url: "https://raw.githubusercontent.com/Loyalsoldier/clash-rules/release/icloud.txt"
    path: ./ruleset/icloud.yaml
    interval: 86400

  apple:
    type: http
    behavior: domain
    url: "https://raw.githubusercontent.com/Loyalsoldier/clash-rules/release/apple.txt"
    path: ./ruleset/apple.yaml
    interval: 86400

  google:
    type: http
    behavior: domain
    url: "https://raw.githubusercontent.com/Loyalsoldier/clash-rules/release/google.txt"
    path: ./ruleset/google.yaml
    interval: 86400

  proxy:
    type: http
    behavior: domain
    url: "https://raw.githubusercontent.com/Loyalsoldier/clash-rules/release/proxy.txt"
    path: ./ruleset/proxy.yaml
    interval: 86400

  direct:
    type: http
    behavior: domain
    url: "https://raw.githubusercontent.com/Loyalsoldier/clash-rules/release/direct.txt"
    path: ./ruleset/direct.yaml
    interval: 86400

  private:
    type: http
    behavior: domain
    url: "https://raw.githubusercontent.com/Loyalsoldier/clash-rules/release/private.txt"
    path: ./ruleset/private.yaml
    interval: 86400

  gfw:
    type: http
    behavior: domain
    url: "https://raw.githubusercontent.com/Loyalsoldier/clash-rules/release/gfw.txt"
    path: ./ruleset/gfw.yaml
    interval: 86400

  greatfire:
    type: http
    behavior: domain
    url: "https://raw.githubusercontent.com/Loyalsoldier/clash-rules/release/greatfire.txt"
    path: ./ruleset/greatfire.yaml
    interval: 86400

  tld-not-cn:
    type: http
    behavior: domain
    url: "https://raw.githubusercontent.com/Loyalsoldier/clash-rules/release/tld-not-cn.txt"
    path: ./ruleset/tld-not-cn.yaml
    interval: 86400

  telegramcidr:
    type: http
    behavior: ipcidr
    url: "https://raw.githubusercontent.com/Loyalsoldier/clash-rules/release/telegramcidr.txt"
    path: ./ruleset/telegramcidr.yaml
    interval: 86400

  cncidr:
    type: http
    behavior: ipcidr
    url: "https://raw.githubusercontent.com/Loyalsoldier/clash-rules/release/cncidr.txt"
    path: ./ruleset/cncidr.yaml
    interval: 86400

  lancidr:
    type: http
    behavior: ipcidr
    url: "https://raw.githubusercontent.com/Loyalsoldier/clash-rules/release/lancidr.txt"
    path: ./ruleset/lancidr.yaml
    interval: 86400

  speedtest:
    type: http
    behavior: classical
    url: "https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Speedtest/Speedtest.yaml"
    path: ./ruleset/speedtest.yaml
    interval: 86400
  
  pt:
    type: http
    behavior: classical
    url: "https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/refs/heads/master/rule/Clash/PrivateTracker/PrivateTracker.yaml"
    path: ./ruleset/pt.yaml
    interval: 86400
    
rules:
  - DOMAIN-SUFFIX,sentry.io,REJECT
  - RULE-SET,pt,DIRECT
  - RULE-SET,private,DIRECT
  - RULE-SET,reject,REJECT
  - RULE-SET,tld-not-cn,PROXY
  - RULE-SET,icloud,DIRECT
  - RULE-SET,direct,DIRECT
  - RULE-SET,apple,DIRECT
  - RULE-SET,cncidr,DIRECT
  - RULE-SET,lancidr,DIRECT
  - RULE-SET,speedtest,DIRECT
  - RULE-SET,google,PROXY
  - RULE-SET,proxy,PROXY
  - RULE-SET,gfw,PROXY
  - RULE-SET,greatfire,PROXY
  - RULE-SET,telegramcidr,Telegram
  - IP-CIDR,101.32.0.0/16,DIRECT
  - IP-CIDR,119.28.0.0/16,DIRECT
  - IP-CIDR,129.226.0.0/16,DIRECT
  - IP-CIDR,203.205.0.0/16,DIRECT
  - GEOIP,CN,DIRECT
  - MATCH,FINAL

这个规则 FINAL 走代理合适么?或者大佬们再分享下你们的配置。

25 年元旦激活 新西兰注册卡 skinny mobile 0 成本接码保号卡¥ 80 包邮还有 1 张

By: lyzh130
19 May 2025 at 11:39
lyzh130:

25 年 1 月 10 号左右新西兰本地激活,26 年初前转入 1NZD 或者自己外币卡充值 5NZD 即可保号一年,esim 需要新西兰居住证明我搞不定,在售的是实体卡。

相关文档: https://www.yuque.com/u33641174/lp0fcn/fptse35ohsfsmz5e

直接闲鱼下单,或者搜用户名:叫偶达文西

[闲鱼] https://m.tb.cn/h.6HnIg1F?tk=hcA2VjlxBML HU293 「我在闲鱼发布了 [ skinny 安迪斯马斯特原厂金属面盖 有线款无线款均适用的金] 」 点击链接直接打开

V:ranger7hero (有互转群)¥ 80 包邮 目前保号政策正常,数量不多

想用 iPhone 15 pro max 外接硬盘拍 4k60 log 格式的视频,是不是太理想化了

By: movq
19 May 2025 at 11:28
movq:

4K60HZ 的 LOG 视频一分钟就要几十个 G ,不过这个存储问题好解决,可以 USB-C 外接大容量 SSD

主要考虑的是耗电量的问题。要是拍一个小时就没电了,那在户外拍摄岂不是得先用充电宝冲一个小时再拍,这样不现实吧?

观站内老哥帖子有感,农村父母城乡居民养老金,支付终身强烈建议都满上!

19 May 2025 at 11:27
rocketbeard66:

年初我帮我妈看她的城乡居民养老时发现她每年只交了 200 ,我妈 51 ,交了 11 年还有四年没交。

我就去彻底研究了一下城乡居民养老保险的政策,并归纳成了文章 https://mp.weixin.qq.com/s/BWdzWeDmtMjzH6KC0Cn4QA 研究完后我的结论:剩下四年顶格缴纳 5000 ,且个人补助缴纳 5000 。每年交 1w

55 岁开始每月可领 700+

城乡居民养老保险待遇由基础养老金和个人账户养老金构成,支付终身(!!!)

来源:《国务院关于建立统一的城乡居民基本养老保险制度的意见》国发〔 2014 〕 8 号

城乡居民养老金,无论什么情况都是稳赚不赔的

人在:个人账户退休后开始分成 139 个月领取( 11 年)+每月国家基础养老金,139 个月后个人账户清零但人只要活着,仍然按照之前每月发放的金额继续发放直到去世(都有政府来补贴)。

人走:如果没领完人走了,剩余个人账户余额+利息可以取出。2024 年利息 4%左右。

强烈建议:

年龄≥55 岁且缴费不足 10 年者,立即补缴,避免失去领取养老金资格

经济允许者尽早按高档次缴费,最大化政府补贴和利息积累

线上

  • 全国统一平台登录国家社会保险公共服务平台http://si.12333.gov.cn ),注册后进入“个人权益记录”查询模块,可查看缴费记录、账户余额等信息

  • 电子社保卡(支付宝/微信小程序):绑定社保卡后,点击“社保查询”→“城乡居民养老保险”即可查看缴费明细

  • 支付宝:进入“市民中心”→“社保”→“城乡居民养老保险缴费查询”

  • 微信:搜索“我的社保卡”公众号,绑定后查询缴费记录

  • 微信/支付宝:通过“城市服务”→“社保缴费”模块缴纳,支持多地切换

  • • 其他地方社保政务小程序都有接入支付宝/微信,可自行搜索

    以河南举例:

    • 微信公众号:关注“河南税务”公众号,点击“社保费缴纳”完成操作。
    • 支付宝/微信小程序:搜索“河南税务”小程序或“豫事办”,实名认证后选择“居民养老保险缴费”。
    • 河南税务 APP:下载后进入“社保费业务”模块缴费。

线下

  • • 拨打12333 社保热线,询问父母户籍地人社局电话,进一步了解缴纳记录,并根据缴纳记录进行下一步缴纳/补缴操作

V2 上很少人讨论关于吃的事情,很多是工作和感情

By: elffkdx
19 May 2025 at 11:18
elffkdx:

作为人类,食物难道不比工作和感情重要吗?有的人为了吃海鲜,定居离海很近的城市,有的人为了吃火锅定居四川和重庆, 以前也见过新闻有个外国人,到中国发现中国水果不错,然后为了吃水果定居中国。

其实很多人怀念的家乡的味道,我以前在外地待过,后来回家感觉真的家里比外地舒服太多了,每天讲土话,吃家里的菜,闲时邀上三五同学好友,一起喝喝酒侃侃一些时事,完全不喜欢大城市的拥挤和工业化。

要过端午了,老婆自己买了材料,自己做了 100 多个粽子,感觉比外面干净还好吃多了。

北方人毕业后去了南方二线城市工作两年,最近发觉自己很另类,分享下个人经历

By: runxin
19 May 2025 at 11:16
runxin: Android 原生开发,现在人在厦门工作,
公司规模 0~20 人(这是 boss 直聘对公司规模的分类,实际从没达到过 20 人),

现在入职刚好 2 年整,没跳过槽,已经是工龄排前 6 的员工了,
这 2 年流水的同事全是福建其他城市的,只有极个别是相邻省份的。

965 ,第一年月薪 7000 ,入职大概 16 个月的时候,月薪涨到了 10000 ,
公积金、社保都是按照月薪 2000 左右的当地最低工资去交的,可以忽略不计。
租房、吃饭成本每月 2500~3000 元。

---

我也不知道我自己的选择是不是很搞笑,很小丑,分享下自己经历吧,想听听别人看法。

---

家在河北,坐车 3 小时内可以到达距离最近的北京的地铁站,正常来说在北京工作是很方便的,

大学在南方的一个没互联网公司的城市,三本计算机,23 年 6 月份毕业,
但是因为家庭条件不好,以及自己从高中开始就很焦虑,找工作很心急,
但是当时应该是感觉家里人控制欲太强,在家里待几天就很不舒服,
所以就偏偏不想选择离家近的北京,而是从南方城市开始投简历,想着哪里要我就去哪里,

---

当时先投递了深圳,甚至海南海口那种离家极远的城市,
JD 和我比较匹配的大概 20 家吧,都投过了简历,只约到了两家面试,

一个是一面问我 hashmap 原理之类的八股文,java 基本语法之类的,
我感觉很无聊,也确实没打算准备这方面,直接对一面面试官摆烂、放弃。

另一家我记得是两轮面试,第一轮技术主管面试的很好,原本规定要线下面试的,
我当时不舍得付出到深圳的路费住宿费成本,很傻的问了句面试不通过是不是不报销路费?
结果也同意了我最后一轮 HR 面试仍然线上进行,
最后应该是一些同事沟通合作导致加班的情况处理、个人兴趣爱好相关的回答,没能通过...

(关于兴趣爱好,我说我不玩任何游戏,也确实没什么兴爱好,
平时就喜欢写代码,而且本人大学期间也确实如此。HR 大概回应的是,真的不玩游戏吗?几乎没见过这种人)

这家公司问我期望薪资,只敢要了 8k ,从技术水平来说是可以给到的。

---

大概一共花了两周,深圳是没什么结果了,就开始看江/浙/沪/厦门的机会,
然后厦门这家,技术主管和 HR 坐一起直接一轮面试就给我发 offer 了,
我开价 8k ,HR 问我最低能接受多少,我当时不想失去工作机会就要了 7k ,然后直接收到 offer ,
从这一批投递简历到入职,用了不到一周....

---

这里没任何同学,没认识的人,无任何社交(大学四年也是如此,感觉一直在为钱焦虑),
但可能是因为我焦虑,以及周末都在写代码(可惜的是没能有什么技术上的积累,基本都是用已掌握的技术做点小玩意上架 Play 商店尝试)或者在附近闲逛,竟然一直没觉得孤独,直到今年过完年之后才渐渐产生孤独的感觉。

牡丹,之前从来也没想过恋爱结婚的事,什么“彩礼”、“远嫁”之类的概念,今年才了解。
也没思考过为什么厦门的同事都是福建本地人,
为什么其他同学都是在自己家附近城市找工作....
甚至最近几个月才发现,有时候老板/HR 看到外地简历时,他们还会质疑一下应聘者为什么要来这么远的地方。

我现在想去北京工作了...
尽管厦门环境什么的都很好,工作也不累,但家就在北京附近,却选择一个南方二线城市,终究还是太另类了,

计划的是 6 月底之前直接裸辞,回家边休息边找工作吧,
也不知道在北京能找个什么样的工作,不知道能不能找个 13k-15k 的,

这里公积金账户还有 8000 多,到时候还要研究下如何转移社保、公积金...

但北京生活成本也会比这里高个 3k 吧,或许攒钱能力和现在差不多。

传统开发程序员转战大模型,一起来做算法工程师

By: ox180
19 May 2025 at 11:15
ox180:

各位大佬好啊,我在微信公众号上新开了一个合集,名为程序员转战大模型,主要是帮助传统开发者转战到目前正🔥的 AI 领域,用最浅显易懂的话语来讲解。

目前这个合集正在进行中,欢迎各位小伙伴多多捧场和指正。(这里是靠打赏盈利)

后续我会再单独开一个合集,是对当前合集的深入,用 step by step 的方式来 coding ,帮助大家进阶到大模型。(这里打算靠合集盈利)

地址:程序员转战大模型

也可以手动复制: https://mp.weixin.qq.com/mp/appmsgalbum?__biz=MzI4MTUzMjc1MA==&action=getalbum&album_id=3983660629700788235#wechat_redirect

❌
❌