Normal view

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

为什么不用 gRPC-Go: VictoriaTraces 中实现 OTLP/gRPC 的幕后故事

24 October 2025 at 02:44
RedisMasterNode:

我们不妨先从结论开始,不使用 gRPC-Go 来构建 OTLP/gRPC 的 gRPC Server ,可以让:

  • 二进制包的体积:降低 25%
  • CPU 使用率:降低 36%

背景

OpenTelemetry 协议( OTLP )是 “有 OpenTelemetry 插装的应用” 与 “OpenTelemetry (兼容的) Collector/后端” 之间进行数据传输所用的协议。

现在假设你就有这样一个应用,想要传输数据到 Collector ,那么你可以配置通过以下 Exporter 完成:

  • OTLP/gRPC Exporter
  • OTLP/HTTP Exporter, 其中 Protobuf 的 Payloads 可以编码成:
    • - binary 格式
    • - JSON 格式

出于一些原因,VictoriaTraces 仅暴露了一个 HTTP 接口,通过 OTLP/HTTP 接收 binary 或者 JSON 格式的数据。然而,有很多的应用只支持通过 OTLP/gRPC Exporter 输出数据,kube-apiserver 就是其中的一个典型例子。所以,完善对 OTLP/gRPC 的支持是当前的刚需。

目标

我们的目标是实现一个 gRPC Server,它作为 TraceService 服务提供 Export 方法给远程调用方进行调用,这些信息是定义在 OpenTelemetry Proto 中的。

// Service that can be used to push spans between one Application instrumented with
// OpenTelemetry and a collector, or between a collector and a central collector (in this
// case spans are sent/received to/from multiple Applications).
service TraceService {
  rpc Export(ExportTraceServiceRequest) returns (ExportTraceServiceResponse) {}
}

那么,是什么原因让我们考虑弃用 gRPC-Go ,或者更准确地说,弃用整套 protoc 工具链呢?

原因 1: Protoc 工具链不好用

以 Go 为例,最常见的构建 gRPC Server 的方式就是:

  • protocprotoc-gen-go 生成 .proto 中定义的 Message 对应的结构体。
  • protocprotoc-gen-go-grpc 生成 .proto 中定义的服务 Interface 并实现它。

说起来简单,不妨先试想一下这些步骤具体是怎么做的。假设我(对 Protobuf 熟悉程度一般)现在 git clone 了一个项目,然后想往其中的 .proto 添加几个新的 Message 和方法:

  1. 首先想起来 protoc 并不是 Ubuntu/MacOS 自带的;
  2. Release 页下载最新版本的 protoc
  3. 诶,光靠 protoc 不能生成 Go 代码,所以还需要 go install protoc-gen-gogo install protoc-gen-go-grpc
  4. 都准备好了,生成代码的命令是什么来着? Google 一下 “gRPC 如何编译 Go 代码”;
  5. 终于,抄到了命令在本地运行,回车。Boom !弹了个依赖 Error ,因为 .proto 里面有一些 import,还要将这些引用的内容的目录在命令中指定清楚;
  6. 整理好所有目录和命令,重新运行,终于成功生成出了代码。

不过,别高兴得太早,protoc 可能还有惊喜在等你。

“为什么这些新生成的代码看起来和老代码好像不太一样?”

新代码:

type TracesData struct {
state protoimpl.MessageState `protogen:"open.v1"`

ResourceSpans []*ResourceSpans `protobuf:"bytes,1,rep,name=resource_spans,json=resourceSpans,proto3" json:"resource_spans,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache     protoimpl.SizeCache
}

老代码:

type TracesData struct {
    ResourceSpans        []*ResourceSpans `protobuf:"bytes,1,opt,name=resource_spans,proto3" json:"resource_spans,omitempty"`
    XXX_NoUnkeyedLiteral struct{}         `json:"-"`
    XXX_unrecognized     []byte           `json:"-"`
    XXX_sizecache        int32            `json:"-"`
}

7.Google 对应原因,行,然后用不同版本的 protoc 工具链重新走了遍步骤 2-6 。(甚至有时候还要 git log 找之前的作者问用的是哪个版本。)

幸好,这些步骤只是个玩笑,在 VictoriaMetrics 里面我们不这么干。这只是想说明,编译 Protobuf 相关的内容并不是那么直来直去的,不像写个 HTTP JSON 接口那么简单。

当然,它可以变得简单一点:

  1. 把所有的命令都写到 Makefile
  2. 或者使用 Buf CLI,把代码生成完全在线化。

不过仍然有很多工程师就是喜欢 HTTP JSON 。

尽管麻烦不断,但是这些仍不足以说服我们弃用 protoc 工具链。还有别的理由 (借口) 吗?

写在原因 2 之前

原因 2 或许能给你新的启发,不过需要声明,因为 VictoriaTraces 中存在一些历史包袱,它才能在该项目中作为一个 “原因”。也就是说,这个 “原因” 并不是每个项目都该纳入考虑的。

原因 2: easyproto 已经代替了 golang/protobuf

在 VictoriaMetrics ,VictoriaLogs 和 VictoriaTraces 中,对于 Protobuf 的内容,我们是用 easyproto 来进行 Marshal 和 Unmarshal 操作的,而非常见的 golang/protobuf 包。原因在 easyprotoREADME 中写得很清楚:

  • easyproto 不需要 protoc 或者 go generate
  • easyproto 不会像传统的 protoc 那样让编译的二进制包的体积增大。
  • easyproto 正确使用的话可以达成零内存分配。

不过,如果真的要实现 OTLP/gRPC 支持,我们得考虑:

  1. 如果用了 protoc 生成 gRPC Server ,那编译的二进制包会大多少
  2. 有可能将 easyproto 和 gRPC 结合起来用吗?protoc 只需要生成 gRPC 服务的代码,而 Protobuf Message 的结构体还是用 easyproto 处理。
    • 注意这仍然需要引入 gRPC 相关的包,这会弱化使用 easyproto 的第二个理由(减小二进制包体积)。
  3. 还有其他办法可以复用现有的 easyproto,而不用引入任何新的包吗

邪门歪道: 用 HTTP/2 Server 代替 gRPC Server

按理来说

gRPC 是个实现在 HTTP/2 上的协议,所以按理来说,实现一个 HTTP/2 Server 来处理对应接口的请求就可以了。

gRPC 也可以实现在 HTTP/3 (QUIC) 或者 HTTP/1.1 之上,不过这已经超过了这篇博客讨论的范围,我们把它留给读者探索。

根据 gRPC over HTTP2,Data Frame 的格式是这样的:

// +------------+---------------------------------------------+
// |   1 byte   |                 4 bytes                     |
// +------------+---------------------------------------------+
// | Compressed |               Message Length                |
// |   Flag     |                 (uint32)                    |
// +------------+---------------------------------------------+
// |                                                          |
// |                   Message Data                           |
// |                 (variable length)                        |
// |                                                          |
// +----------------------------------------------------------+

同时很容易知道,TraceService 服务的 Export 方法对应的 HTTP 接口是 /opentelemetry.proto.collector.trace.v1.TraceService/Export

下面这段代码简单展示了如何用 HTTP/2 Server 处理 gRPC 请求:

// Init 启动一个 HTTP Server 。
func Init() {
logger.Infof("starting OTLP gPRC server at :4317...")
go httpserver.Serve(
[]string{":4317"},
OTLPGRPCRequestHandler,
httpserver.ServeOptions{UseProxyProtocol: nil, DisableBuiltinRoutes: true, EnableHTTP2: true},
)
}

// OTLPGRPCRequestHandler 管理 gRPC 请求的路由。
func OTLPGRPCRequestHandler(r *http.Request, w http.ResponseWriter) bool {
switch r.URL.Path {
case `/opentelemetry.proto.collector.trace.v1.TraceService/Export`:
otlpExportTracesHandler(r, w)
default:
grpc.WriteErrorGrpcResponse(w, grpc.StatusCodeUnimplemented, fmt.Sprintf("gRPC method not found: %s", r.URL.Path))
}
return true
}

// otlpExportTracesHandler 处理 OTLP Export 请求。
func otlpExportTracesHandler(r *http.Request, w http.ResponseWriter) {
// gzip 解压缩
...

// 解析前 5 bytes ,用 easyproto unmarshalling 剩余 []bytes
...

// 写数据等操作
...

writeExportTraceServiceResponse()
}

完整的代码可以查看 VictoriaTraces #59

代价是什么?

这个实现看起来简单直接,那作为交换,一定有什么代价吧?

到目前为止这个实现只在 Unary RPC 中测试过,而对于 Streaming RPC ,我们没有场景和动力去做相关的测试,所以暂且认为它是只能处理 Unary RPC 请求的。

不过这样的实现足以覆盖我们在 OTLP/gRPC 上的需求,它可能在其他场景不适用,如果你知道具体是哪些场景,非常欢迎在评论中发表看法!

对比测试

我们做了一轮测试来对比 VictoriaTraces 中不同 OTLP/gRPC 实现方案的二进制包的体积资源使用率,这些方案包括:

  1. 用原生 HTTP/2 Server 处理请求,用 easyproto 来处理 Protobuf Message 。
  2. protoc 生成 gRPC Server 代码,用 gRPC 原生的 Encoder 和 Decoder 来处理 Protobuf Message 。

另外,生成的 gRPC Server 也支持通过以下代码自定义 Encoder 和 Decoder ,所以我们也用将 easyproto 设为 Encoder 和 Decoder 作为另一组对比。

import (
"google.golang.org/grpc/encoding"
)

func init() {
encoding.RegisterCodec(&easyProtoCodec{})
}

结果如下:

编译二进制包体积:

  • Release 的所有二进制包总体积 (tar.gz):

    • HTTP/2 + easyproto: 87M
    • gRPC + easyproto: 113M (+29%)
    • gRPC: 113M (+29%)
  • 单个 linux-amd64 包体积:

    • 参考基准 (v0.4.0): 21M
    • HTTP/2 + easyproto: 21M (+0%)
    • gRPC + easyproto: 28M (+33%)
    • gRPC: 28M (+33%)

请求处理的资源使用率( CPU 使用率, no-op: 对每个请求仅进行 Decompression 和 Unmarshalling):

  • HTTP/2 + easyproto: 31.3%
  • gRPC + easyproto: 45.6% (+45%)
  • gRPC: 49.1% (+56%)

  • 资源监控 Snapshot 可以查看这里

  • CPU 和内存的 Profiles 可以在这里下载。

从这些结果可以看出,HTTP/2 + easyproto 确实更占优一些。

总结

这篇博客分享的是“为什么 VictoriaTraces 用 HTTP/2 + easyproto 来实现 OTLP/gRPC 所需的 gRPC Server”。它的关键实现是由 JayiceZ 完成的,而最初的想法来自于 @makasim

这个实现的背后有很多特定的原因,我们并不是想说服你也这样做,但是我们在测试中确实看到了这种方案的潜力和价值。

VictoriaStack 的亮点是高性能和资源优化,所以每一分 CPU 、内存和网络流量都很重要。当然,这同样也适用于二进制包、Docker 镜像的体积等等,就如这些要素也曾在 Aliaksandr Valialkin( VictoriaMetrics 的作者)写的这篇博客中被提到,一直以来它们都没变过。

很喜欢 google 时 ,可直接看到 已经被翻译成中文的 reddit 帖子。请问如何在 reddit 站里浏览的时候 让帖子都自动翻译成中文呢?

24 October 2025 at 02:35
concealjjj:

请看下图,google 时,已经被翻译成中文的 reddit 帖子标题,直接出现在搜索结果里:

点进去 也是翻译好的 reddit 帖子(关键翻译的质量真的好高)

所以,真的对我这种英语不好的人很友好,我一般 google 直接搜中文的,可以直接搜到 reddit 的帖子,不会漏掉英文的高质量回答,点开也是中文的已经翻译好的 reddit 帖子。

但我点进去 reddit 首页或者其他帖子的时候,又瞬间变成英文的界面了,好奇是不是有什么设置,可以让我浏览 reddit 站的时候,通篇全部都是翻译好的 中文界面呢??

当然你说,可以开网页翻译然后浏览呗,但是 1 我觉得 reddit 自带的翻译质量特别高 2 我也想在手机的 reddit app 上也可以这样

快被华硕的键盘背光烦死了

By: PhpBB
24 October 2025 at 01:24
PhpBB: 这笔电是今年年初买的,买来当时就关闭了背光.

最近手贱更新了 BIOS 和 WINDOWS,我其实不是爱更新的人,但是半年多一次我觉得还算必要吧.
结果好嘛,不知道是哪个更新导致背光又自己开启了,然后尝试了以下办法都无法关闭:

1.BIOS 里找寻关闭选项,没有提供这个选项.
2.WINDOWS 设置的 DEVICE 里面关闭背光,这个选项是 WINDOWS 提供的,但是实际关闭不起作用.查看了微软官网说明,不同厂家适配这个设置的时间不同,华硕的加入时间是'今年稍晚'.
3.使用键盘上的快捷键,但是短按长按都没作用.更新最新驱动也一样

如果它是固定一个颜色,我还能接受.
但是现在不仅颜色一直变,亮度也一直变,跟一个跑马灯似的晃来晃去.
极度分散注意力.

有啥其他旁门左道能关了吗?
卖又不值钱,估计卖不到三分之一的价格,不忍心.
难道只能去买一个"通用"键盘膜,遮住一部分'光芒'?

[开源]微信多开*999 WeChat Multi-Instance Manager for macOS

By: dingzi
24 October 2025 at 00:56
dingzi:

https://github.com/nullbyte-lab/wechat-multi-open

原理: 复制微信应用并修改 Bundle ID ,系统会识别为不同的应用,从而实现数据隔离和多开。

Xcode: 不需要安装完整的 Xcode ,只需要 Xcode Command Line Tools (约 500MB ),脚本会自动检查,缺失时会提示安装

image

成功了别忘记 回帖+Star

有大佬打赏就更好了,最近跌的心态差

原理已经说明,微信若发疯了要封,我免责 反正我自己在用

Features

  • 交互式菜单 - 傻瓜式操作,无需记忆命令
  • 智能检测 - 自动扫描已有副本,避免重复创建
  • 增量创建 - 只创建缺失的实例,节省时间
  • 选择启动 - 指定启动哪些实例,支持多选和 all
  • 灵活删除 - 可删除指定副本或全部清理
  • 彩色输出 - 清晰易读的彩色交互界面
  • 安全保护 - 二次确认、错误处理、权限隔离

Installation

Quick Install

# 下载脚本
curl -fsSL https://raw.githubusercontent.com/nullbyte-lab/wechat-multi-open/main/wechat-multi-open.sh -o ~/wechat-multi.sh

# 添加执行权限
chmod +x ~/wechat-multi.sh

# 运行
~/wechat-multi.sh

Manual Install

# 克隆仓库
git clone https://github.com/nullbyte-lab/wechat-multi-open.git

# 进入目录
cd wechat-multi-open

# 运行脚本
./wechat-multi-open.sh

理性上懂得“别在意别人看法”,但感性上还是做不到,怎么办?

23 October 2025 at 23:17
freefly111: 其实我知道这个话题可能在别人看来挺无聊的,但对我来说真的挺困扰的。

我一直是那种很在意别人看法的人。

理性上,我明白所有“不必在意别人怎么看”的道理,也能讲出很多大道理,比如“别人不会一直关注你”“做好自己就行”等等。

但现实中,一旦真的遇到一些情况,比如别人一句无心的话、一个眼神、甚至一点误会,我的情绪还是会立刻被牵动,很难保持平静。

我也问过一些朋友,他们说生活慢慢教会了他们不去在意别人怎么看。

但我发现,对我来说,这个过程好像很慢,有时候甚至会觉得自己被这种敏感困住了。

所以我想问问大家——

有没有什么具体的方法或练习,能让我慢慢改善这种状态?

比如怎么让自己在面对别人的评价时,不那么容易起情绪反应?

谢谢大家,我真心想听听你们的看法。

目标检测,计算出旋转速度和加速度,有人精通吗?急

By: ydt0728
23 October 2025 at 21:56
ydt0728:

轮盘游戏。固定的角度录制有 10 万次结果。 根据这些完整数据,能预测出白球是落在左边还是右边吗? 我查阅了一些资料 国外有很多人做过这些研究。理论上是可行的。

相关资料 使用 OpenCV 二进制掩码检测轮盘和球速 https://www.linkedin.com/pulse/roulette-wheel-ball-speed-detection-opencv-binary-mask-muhammad-anas-nqy4f

https://www.youtube.com/watch?v=bpy933SQ6Q0 https://www.youtube.com/watch?v=kibZDD_I9HY https://www.youtube.com/watch?v=HaMlKvNqCVs https://www.spinsight.ai/

[flutter/北京/远程] flutter 开发

By: yoooxin
23 October 2025 at 21:37
yoooxin:

我们是位于北京的一家 ai 初创公司,目前在做 ai 阅读 产品官网 https://lutaai.com

求招职位: 技术研发部 -- flutter 客户端开发 / flutter 工程师

岗位职责:

  • 负责用户侧核心功能交付:阅读器( foliate-js )交互/版式/主题、书籍管理/统计、TTS 与音频后台。
  • 参与重构并持续完善客户端工程化:SWR 缓存、请求去重/重试、错误分层、离线能力、统一网络/路由/状态架构。
  • 优化性能与稳定性:启动、列表滚动、内存与卡顿;建立 Crash/Perf/日志/埋点监控闭环。
  • 参与多端发布( iOS/Android ),完善 CI/CD 、签名与环境配置,保障灰度与回滚。
  • 与设计/后端/运营协作,以数据驱动迭代用户增长与留存。

核心要求:

  • 熟练掌握 Dart 语言和 Flutter SDK ,理解 Widget 生命周期与渲染机制。
  • 至少 2 年客户端实践经验,Flutter 重度项目经验(或核心 Owner 经历)
  • 精通 Riverpod 、GoRouter 、WebView/JS 桥、SQLite 迁移与索引、网络工程( SWR/重试/错误分层)。
  • 至少精通一个原生平台( iOS 或 Android )的系统集成( IAP/通知/分享/文件/权限等)。
  • 具备严谨的工程化意识:代码可读性与分层、单元/集成测试、可观测性、CI/CD 、基于 MVVM / Clean Architecture / Riverpod / BLoC 等状态管理模式进行业务逻辑与 UI 解耦。
  • 对 ToC 体验敏感:骨架屏、乐观更新、分页与占位、失败兜底、冷/暖启动设计。
  • 拥抱开源,拥抱 AI , 开源项目贡献者、AI 应用者优先。

工作模式:

  • 接受应聘全职岗位或远程兼职。

联系方式: email: aivor@lutaai.com

欢迎大佬带简历/项目投递

想找一个程序员写个 monitor 长期合作

By: ren18764
23 October 2025 at 21:17
ren18764: 想找一个程序员写一个美国购物网站的补货监控(需要经过数据筛选),网站有 akamai 。网站的风控经常更新,所以这个脚本得不定时更新,可以长期合作。

本人不太懂技术,之前找过一个老外写出来过但是没给我源代码。所以只能提供我想要的一个什么样的结果,提供不了实现思路。

预算还可以,最好是你自己报价,最近就能写的。

能做的麻烦邮件联系下我:

ssannapaull # gmail.com
是 gmail 的邮箱
发的时候把 # 号 和前后空格删掉,# 改成 @

人工智能|大模型发展方向请教

By: icchux
23 October 2025 at 21:09
icchux:

真诚请教:从大数据开发转向人工智能领域的建议

个人背景

  • 当前职业:大数据开发工程师
  • 学历情况:京区某 985 非全日制研究生研一在读
  • 研究方向:人工智能
  • 时间安排:白天工作,晚上和周末线下上课

当前困境

  1. 感觉大数据行业日渐式微,希望转向人工智能领域
  2. 学校授课内容很杂,但强度不低,知识点不会讲的很深,需要自己课下修炼,另外导师对非全学生的精力也有限
  3. 需要明确学习路径和技能积累

求助内容

希望行业内前辈指导:

  • 如何向人工智能方向转型
  • 读论文到底是怎么个读法,现在根本看不懂一点
  • 日常需要学习哪些内容
  • 如何日积月累的修炼好内功
  • 希望能赶上人工智能领域的发展机遇

我也想当安卓人了,但替换苹果的优势有哪些?缺点呢?

By: sammy520
23 October 2025 at 20:41
sammy520: 苹果的东西用着是平稳,不折腾,但限制太多,比如现在最烦的就是不支持 LDAC ,我的 SONY 蓝牙耳机发挥不出来。中长期也没有任何支持的可能。
此外,一些 app 只有安卓才有,比如 zlib 。更不要说刚需:A ,多开; B ,通话录音。
但要让我离开苹果生态,尤其是主力 iPhone 换成安卓,有点不踏实。
在不考虑中国手机的情况下,国内使用:
1 、跨设备复制粘贴。能否与 Mac 、iPad 跨设备复制粘贴,这是刚需。还是说如果用三星,只能换成三星笔记本和 pad ?
2 ,云备份是否好用。稳定。
3 ,PDF 和图片的简单修改批注是否跟“预览”一样易用?
4 ,通知即时吗?像苹果一样快速且可控的通知。会不会出现 app 不在后台就没有通知的情况?苹果就算没有梯子,tel ,Gmail 等也能通知。
5 ,有没有类似灵动岛的功能?
其他暂时没想到。。。

或许我需要双机?
Yesterday — 23 October 2025V2EX-最新主题

狐蒂云三周年活动

By: klxyy
23 October 2025 at 20:15
klxyy: 活动一:
香港 2H2G 30Mbps 每月仅需 1 元!续费同价!
(每天限量,早上 9 点,中午 12 点,晚上 8 点统一补货,共计 10 台,共计发放 254 台)

活动二:
香港 16H16G 111 元/三年 平均每月 3.08 元。
美国 16H16G 111 元/三年 平均每月 3.08 元。
广州 16H16G 333 元/三年 平均每月 9.25 元。
宁波 16H16G 333 元/三年 平均每月 9.25 元。
深圳 16H16G 333 元/三年 平均每月 9.25 元。
(每天 12 点限量补货,每人仅限一台)

活动三:
云服务器硬盘月租年付任何一款产品新增硬盘通通打半折优惠!(月租年付产品提交工单获取半价报价)
投资型硬盘:
40G 原价 400 活动价仅需 200 元
80G 原价 800 活动价仅需 400 元
120G 原价 1200 活动价仅需 600 元
240G 原价 2400 活动价仅需 1200 元
活动期间升级产品配置通通打半折!

活动四:
投资型广州 16H16G 1111 元
投资型潮州 16H16G 1111 元
投资型香港 16H32G 1111 元
投资型美国 16H32G 1111 元
(每天 12 点限量抢购,库存有限,随机补货)

活动五:
充值大返利,本次优惠仅三周年专属!错过只能等 4 周年喽~
预存 500 元赠送 200 元
预存 1000 元赠送 400 元
预存 2000 元赠送 800 元
预存 3000 元赠送 1111 元
预存 5000 元赠送 1888 元+100 元代金券 1
预存 1W 元赠送 2999 元+200 元代金券 1
预存 2W 元赠送 4999 元+200 元代金券 2
预存 3W 元赠送 7999 元+200 元代金券 3
预存 4W 元赠送 9999 元+200 元代金券*4

活动地址: https://www.szhdy.com/activities/default.html?method=activity&id=14

吐槽一下苹果官网 399 这个 17Pro 的透明壳

By: orangy
23 October 2025 at 20:02
orangy: 官网这款 399 的透明壳,银色的看起来好像没有啥问题
https://s2.loli.net/2025/10/23/VIEvdSr9fs2tWMm.jpg
但是说支持磁吸,可是没看到磁吸环啊,就很奇怪
https://s2.loli.net/2025/10/23/uCdDrIV348EtScl.jpg
直到我翻到了橙色和蓝色的图片,就真的很离谱
https://s2.loli.net/2025/10/23/VAk2GYQKrditcfC.jpg
https://s2.loli.net/2025/10/23/Xxz2Q5N4ltjwDdr.jpg
原来是直接在后背加了一块白色的贴片,估计是为了避免了磁吸环不在 logo 周围的尴尬
但是贴片都不针对手机颜色适配一下,也是离谱至极了

PS:今天 Imgur 上传图片一直失败,只好使用 sm.ms ,但是好像不能直接显示图片

[求助] 港版 iPhone 的 AppleCare+ 两年到期后,支持转为订阅制续费吗?

23 October 2025 at 19:57
forevermj0113:

大家好。我目前用的是港版 iPhone 17 PM ,购买时一并加购了港版的 AppleCare+ 服务。

这个为期两年的服务我想请教一下有相关经验的朋友:

港版的 AC+ 在两年固定期限结束后,是否支持像美版、日版那样,转为按年或按月付费的订阅制,从而继续享受保障?

设备目前在内地使用。之前搜寻了一些信息但没有找到确切的官方说法,希望有实际操作过的朋友可以分享一下经验。

感谢各位!

❌
❌