From 0d36be4bc6d4772a0b5b5b5faddf91f41c02ff58 Mon Sep 17 00:00:00 2001 From: ShenzhenGopher <166468408+ResilientSZUer@users.noreply.github.com> Date: Sun, 11 May 2025 10:37:46 +0800 Subject: [PATCH 1/7] Update observability.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit docs: 明确多次调用NewOpenTelemetryProvider时的资源管理要求 。强调必须先调用Shutdown才能再次调用NewOpenTelemetryProvider,避免资源泄漏。 --- content/zh/docs/kitex/Tutorials/third-party/observability.md | 1 + 1 file changed, 1 insertion(+) diff --git a/content/zh/docs/kitex/Tutorials/third-party/observability.md b/content/zh/docs/kitex/Tutorials/third-party/observability.md index 4cd8b81ff26..f600f2d7b18 100644 --- a/content/zh/docs/kitex/Tutorials/third-party/observability.md +++ b/content/zh/docs/kitex/Tutorials/third-party/observability.md @@ -172,6 +172,7 @@ func main(){ ``` Server +注意事项:重复调用`NewOpenTelemetryProvider`时,必须先`Shutdown`前一个provider,再`NewOpenTelemetryProvider`,否则会导致资源泄漏和网络连接混乱。 ```go import ( From 3dd9e064ba71277a17c8ac72f506b11f1b0d434e Mon Sep 17 00:00:00 2001 From: ShenzhenGopher <166468408+ResilientSZUer@users.noreply.github.com> Date: Sun, 11 May 2025 10:39:28 +0800 Subject: [PATCH 2/7] Update observability.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit docs: 明确多次调用NewOpenTelemetryProvider时的资源管理要求。 强调必须先调用Shutdown才能再次调用NewOpenTelemetryProvider,避免资源泄漏以及网络连接混乱。 --- content/zh/docs/kitex/Tutorials/third-party/observability.md | 1 + 1 file changed, 1 insertion(+) diff --git a/content/zh/docs/kitex/Tutorials/third-party/observability.md b/content/zh/docs/kitex/Tutorials/third-party/observability.md index f600f2d7b18..f3ecc2248ca 100644 --- a/content/zh/docs/kitex/Tutorials/third-party/observability.md +++ b/content/zh/docs/kitex/Tutorials/third-party/observability.md @@ -172,6 +172,7 @@ func main(){ ``` Server + 注意事项:重复调用`NewOpenTelemetryProvider`时,必须先`Shutdown`前一个provider,再`NewOpenTelemetryProvider`,否则会导致资源泄漏和网络连接混乱。 ```go From 07cd2db0e92031bd40dcbf206652c10c4b4f6f60 Mon Sep 17 00:00:00 2001 From: ShenzhenGopher <166468408+ResilientSZUer@users.noreply.github.com> Date: Sun, 11 May 2025 13:57:26 +0800 Subject: [PATCH 3/7] Update observability.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit docs: 明确在重复调用`NewOpenTelemetryProvider`时,用户需要自行通过`Shutdown`来关闭前一个provider实例维护的trace/metric exporter client实例,否则会导致资源泄露和网络连接混乱问题。 --- content/zh/docs/kitex/Tutorials/third-party/observability.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/zh/docs/kitex/Tutorials/third-party/observability.md b/content/zh/docs/kitex/Tutorials/third-party/observability.md index f3ecc2248ca..240f19dcbff 100644 --- a/content/zh/docs/kitex/Tutorials/third-party/observability.md +++ b/content/zh/docs/kitex/Tutorials/third-party/observability.md @@ -173,7 +173,7 @@ func main(){ Server -注意事项:重复调用`NewOpenTelemetryProvider`时,必须先`Shutdown`前一个provider,再`NewOpenTelemetryProvider`,否则会导致资源泄漏和网络连接混乱。 +注意事项:通过`NewOpenTelemetryProvider`创建的provider实例会持有trace/metric exporter client,在重复初始化时需要显式调用前一个实例的`Shutdown`方法来关闭其维护的所有exporter client,否则将导致资源泄露和网络连接混乱问题。 ```go import ( From b750f805fe9cd6d9e921880d331387f89add8c9e Mon Sep 17 00:00:00 2001 From: ShenzhenGopher <166468408+ResilientSZUer@users.noreply.github.com> Date: Thu, 19 Jun 2025 10:26:39 +0800 Subject: [PATCH 4/7] Update jwt.md --- content/zh/docs/hertz/tutorials/third-party/middleware/jwt.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/zh/docs/hertz/tutorials/third-party/middleware/jwt.md b/content/zh/docs/hertz/tutorials/third-party/middleware/jwt.md index c9739bd0e32..3378a4f3d4c 100644 --- a/content/zh/docs/hertz/tutorials/third-party/middleware/jwt.md +++ b/content/zh/docs/hertz/tutorials/third-party/middleware/jwt.md @@ -294,7 +294,7 @@ authMiddleware, err := jwt.New(&jwt.HertzJWTMiddleware{ ### PayloadFunc -用于设置登录时为 `token` 添加自定义负载信息的函数,如果不传入这个参数,则 `token` 的 `payload` 部分默认存储 `token` 的过期时间和创建时间,如下则额外存储了用户名信息。 +用于设置登录时为 `token` 添加自定义负载信息的函数,如果不传入这个参数,则 `token` 的 `payload` 部分默认存储 `token` 的过期时间和创建时间,如下则额外存储了用户名信息。需要注意的是,如果 `payload` 中包含一个由雪花算法等生成的大整数(`int64`),中间件在解析该 `token` 时,默认会将这个大整数识别为 `float64` 类型。由于 `float64` 的有效精度限制,这会导致原始的 `int64` 值丢失精度,可能会得到一个错误的ID。建议将大整数转为`string`,或者启用 ParserOption 选项的 [WithJSONNumber](https://www.cloudwego.io/zh/docs/hertz/tutorials/third-party/middleware/jwt/#parseoptions)。 函数签名: From 353f27aacb5d022a13247eabeb85358fad03bf05 Mon Sep 17 00:00:00 2001 From: ShenzhenGopher <166468408+ResilientSZUer@users.noreply.github.com> Date: Thu, 19 Jun 2025 10:31:37 +0800 Subject: [PATCH 5/7] Update jwt.md --- content/zh/docs/hertz/tutorials/third-party/middleware/jwt.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/zh/docs/hertz/tutorials/third-party/middleware/jwt.md b/content/zh/docs/hertz/tutorials/third-party/middleware/jwt.md index 3378a4f3d4c..f701e65aaf5 100644 --- a/content/zh/docs/hertz/tutorials/third-party/middleware/jwt.md +++ b/content/zh/docs/hertz/tutorials/third-party/middleware/jwt.md @@ -294,7 +294,7 @@ authMiddleware, err := jwt.New(&jwt.HertzJWTMiddleware{ ### PayloadFunc -用于设置登录时为 `token` 添加自定义负载信息的函数,如果不传入这个参数,则 `token` 的 `payload` 部分默认存储 `token` 的过期时间和创建时间,如下则额外存储了用户名信息。需要注意的是,如果 `payload` 中包含一个由雪花算法等生成的大整数(`int64`),中间件在解析该 `token` 时,默认会将这个大整数识别为 `float64` 类型。由于 `float64` 的有效精度限制,这会导致原始的 `int64` 值丢失精度,可能会得到一个错误的ID。建议将大整数转为`string`,或者启用 ParserOption 选项的 [WithJSONNumber](https://www.cloudwego.io/zh/docs/hertz/tutorials/third-party/middleware/jwt/#parseoptions)。 +用于设置登录时为 `token` 添加自定义负载信息的函数,如果不传入这个参数,则 `token` 的 `payload` 部分默认存储 `token` 的过期时间和创建时间,如下则额外存储了用户名信息。需要注意的是,当 `payload` 中包含大整数(如雪花算法生成的 `int64` 类型 ID)时,中间件在解析该 `token` 时,默认会将这个大整数解析为 `float64` 类型。由于 `float64` 的有效精度限制,可能会导致原始的 `int64` 值丢失精度,从而得到一个错误的ID。建议将大整数转为字符串格式存储,或者启用 `ParserOption` 的 [WithJSONNumber选项](https://www.cloudwego.io/zh/docs/hertz/tutorials/third-party/middleware/jwt/#parseoptions)。 函数签名: From 290d040545862548580135ffb9c3113f2bf84f63 Mon Sep 17 00:00:00 2001 From: ShenzhenGopher <166468408+ResilientSZUer@users.noreply.github.com> Date: Thu, 19 Jun 2025 10:32:18 +0800 Subject: [PATCH 6/7] Update jwt.md --- content/zh/docs/hertz/tutorials/third-party/middleware/jwt.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/zh/docs/hertz/tutorials/third-party/middleware/jwt.md b/content/zh/docs/hertz/tutorials/third-party/middleware/jwt.md index f701e65aaf5..55fd02c21a5 100644 --- a/content/zh/docs/hertz/tutorials/third-party/middleware/jwt.md +++ b/content/zh/docs/hertz/tutorials/third-party/middleware/jwt.md @@ -294,7 +294,7 @@ authMiddleware, err := jwt.New(&jwt.HertzJWTMiddleware{ ### PayloadFunc -用于设置登录时为 `token` 添加自定义负载信息的函数,如果不传入这个参数,则 `token` 的 `payload` 部分默认存储 `token` 的过期时间和创建时间,如下则额外存储了用户名信息。需要注意的是,当 `payload` 中包含大整数(如雪花算法生成的 `int64` 类型 ID)时,中间件在解析该 `token` 时,默认会将这个大整数解析为 `float64` 类型。由于 `float64` 的有效精度限制,可能会导致原始的 `int64` 值丢失精度,从而得到一个错误的ID。建议将大整数转为字符串格式存储,或者启用 `ParserOption` 的 [WithJSONNumber选项](https://www.cloudwego.io/zh/docs/hertz/tutorials/third-party/middleware/jwt/#parseoptions)。 +用于设置登录时为 `token` 添加自定义负载信息的函数,如果不传入这个参数,则 `token` 的 `payload` 部分默认存储 `token` 的过期时间和创建时间,如下则额外存储了用户名信息。需要注意的是,当 `payload` 中包含大整数(如雪花算法生成的 `int64` 类型 ID)时,中间件在解析该 `token` 时,默认会将这个大整数解析为 `float64` 类型。由于 `float64` 的有效精度限制,可能会导致原始的 `int64` 值丢失精度,从而得到一个错误的ID。建议将大整数转为字符串格式存储,或者启用 `ParserOption` 的 [`WithJSONNumber`选项](https://www.cloudwego.io/zh/docs/hertz/tutorials/third-party/middleware/jwt/#parseoptions)。 函数签名: From 58c0d0fdd0e3743b5d23e023c3cc54027979e5d5 Mon Sep 17 00:00:00 2001 From: ShenzhenGopher <166468408+ResilientSZUer@users.noreply.github.com> Date: Thu, 19 Jun 2025 10:32:46 +0800 Subject: [PATCH 7/7] Update jwt.md --- content/zh/docs/hertz/tutorials/third-party/middleware/jwt.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/zh/docs/hertz/tutorials/third-party/middleware/jwt.md b/content/zh/docs/hertz/tutorials/third-party/middleware/jwt.md index 55fd02c21a5..5b122da8164 100644 --- a/content/zh/docs/hertz/tutorials/third-party/middleware/jwt.md +++ b/content/zh/docs/hertz/tutorials/third-party/middleware/jwt.md @@ -294,7 +294,7 @@ authMiddleware, err := jwt.New(&jwt.HertzJWTMiddleware{ ### PayloadFunc -用于设置登录时为 `token` 添加自定义负载信息的函数,如果不传入这个参数,则 `token` 的 `payload` 部分默认存储 `token` 的过期时间和创建时间,如下则额外存储了用户名信息。需要注意的是,当 `payload` 中包含大整数(如雪花算法生成的 `int64` 类型 ID)时,中间件在解析该 `token` 时,默认会将这个大整数解析为 `float64` 类型。由于 `float64` 的有效精度限制,可能会导致原始的 `int64` 值丢失精度,从而得到一个错误的ID。建议将大整数转为字符串格式存储,或者启用 `ParserOption` 的 [`WithJSONNumber`选项](https://www.cloudwego.io/zh/docs/hertz/tutorials/third-party/middleware/jwt/#parseoptions)。 +用于设置登录时为 `token` 添加自定义负载信息的函数,如果不传入这个参数,则 `token` 的 `payload` 部分默认存储 `token` 的过期时间和创建时间,如下则额外存储了用户名信息。需要注意的是,当 `payload` 中包含大整数(如雪花算法生成的 `int64` 类型 ID)时,中间件在解析该 `token` 时,默认会将这个大整数解析为 `float64` 类型。由于 `float64` 的有效精度限制,可能会导致原始的 `int64` 值丢失精度,从而得到一个错误的ID。建议将大整数转为字符串格式存储,或者启用 `ParserOption` 的 [`WithJSONNumber`](https://www.cloudwego.io/zh/docs/hertz/tutorials/third-party/middleware/jwt/#parseoptions)选项。 函数签名: