 Apache RocketMQ 从入门到实战息 发 送 system busy、broker busy 原因分析与解决方案 坑 一、现象 最近收到很多 RocketMQ 使用者,反馈生产环境中在消息发送过程中偶尔会出现如下 4 个错误信息之一:  [REJECTREQUEST]system busy, start flow control for a while  too many requests and system thread 我各个建议把中间件的实现语言这个因素也考虑进去,毕竟选择一门用自己擅长的语言实现 的中间件会更具掌控性。在出现异常的情况下,我们可以根据自己的经验提取错误信息关键 字 system busy,在 RocketMQ 源码中直接搜索,得到抛出上述错误信息的代码如下: 本文来自『中间件兴趣圈』公众号,仅作技术交流,未授权任何商业行为。 1.9 RocketMQ 消息发送 system busy、broker 端的快速失败,让请求快速失败,便于客户端快速重试。但是 这种请求并不是实时的,而是每隔 10s 检查一遍。 值得注意的是,一旦出现 TIMEOUT_CLEAN_QUEUE,可能在一个点会有多个这 样的错误信息,具体多少与当前积压在待发送队列中的个数有关。 关于 [TIMEOUT_CLEAN_QUEUE]broker busy 我们也可以适当调整 waitTim eMillsInSendQueue,默认值为0 码力 | 165 页 | 12.53 MB | 1 年前3 Apache RocketMQ 从入门到实战息 发 送 system busy、broker busy 原因分析与解决方案 坑 一、现象 最近收到很多 RocketMQ 使用者,反馈生产环境中在消息发送过程中偶尔会出现如下 4 个错误信息之一:  [REJECTREQUEST]system busy, start flow control for a while  too many requests and system thread 我各个建议把中间件的实现语言这个因素也考虑进去,毕竟选择一门用自己擅长的语言实现 的中间件会更具掌控性。在出现异常的情况下,我们可以根据自己的经验提取错误信息关键 字 system busy,在 RocketMQ 源码中直接搜索,得到抛出上述错误信息的代码如下: 本文来自『中间件兴趣圈』公众号,仅作技术交流,未授权任何商业行为。 1.9 RocketMQ 消息发送 system busy、broker 端的快速失败,让请求快速失败,便于客户端快速重试。但是 这种请求并不是实时的,而是每隔 10s 检查一遍。 值得注意的是,一旦出现 TIMEOUT_CLEAN_QUEUE,可能在一个点会有多个这 样的错误信息,具体多少与当前积压在待发送队列中的个数有关。 关于 [TIMEOUT_CLEAN_QUEUE]broker busy 我们也可以适当调整 waitTim eMillsInSendQueue,默认值为0 码力 | 165 页 | 12.53 MB | 1 年前3
 石墨文档Go在K8S上微服务的实践-彭友顺根据注解的code信息,在错误码中生成对应的grpc status code • 确保错误码唯一,后续在API层响应用户数据确保唯一错误码,例如: 下单失败(1008) • errors里设置with message,携带更多的错误信息 微服务的开发阶段 配置 对接 Debug • 配置驱动 • 配置补齐 • 配置工具 • Proto的管理 • 错误码管理 • 调试gRPC • 调试信息 • 错误定位 Check 数据、耗时时间、执行行号) • 响应数据结构是否正确 • 响应是否有错误 微服务的开发阶段 • 遵循Fail Fast理念,核心错误尽早panic • Panic的错误码,组件、配置名、错误信息 • 高亮显示 配置 对接 Debug • 配置驱动 • 配置补齐 • 配置工具 • Proto的管理 • 错误码管理 • 调试gRPC • 调试信息 • 错误定位 微服务的测试阶段0 码力 | 41 页 | 3.20 MB | 1 年前3 石墨文档Go在K8S上微服务的实践-彭友顺根据注解的code信息,在错误码中生成对应的grpc status code • 确保错误码唯一,后续在API层响应用户数据确保唯一错误码,例如: 下单失败(1008) • errors里设置with message,携带更多的错误信息 微服务的开发阶段 配置 对接 Debug • 配置驱动 • 配置补齐 • 配置工具 • Proto的管理 • 错误码管理 • 调试gRPC • 调试信息 • 错误定位 Check 数据、耗时时间、执行行号) • 响应数据结构是否正确 • 响应是否有错误 微服务的开发阶段 • 遵循Fail Fast理念,核心错误尽早panic • Panic的错误码,组件、配置名、错误信息 • 高亮显示 配置 对接 Debug • 配置驱动 • 配置补齐 • 配置工具 • Proto的管理 • 错误码管理 • 调试gRPC • 调试信息 • 错误定位 微服务的测试阶段0 码力 | 41 页 | 3.20 MB | 1 年前3
 OpenShift Container Platform 4.6 发行注记在 .dockerignore 文件时将不会明 显降低构建期间处理 COPY 和 ADD 指令的速度。(BZ#1828119, BZ#1813258) 在以前的版本中,镜像构建和推送可能会失败,错误信息为 error reading blob from source, 这是因为构建器逻辑会计算新层的内容两次。缓存层内容的逻辑依赖于这些计算结果的一致性。 如果两个计算之间新层的内容发生变化,缓存将 页面提供了一个不准确到应用程序环境中的 项目的链接。(BZ#1889348) 在创建大量 pod 的情况下,创建会失败并显示 error reserved pod name …: name is reserved 错误信息。CNI 可执行文件的 CRI-O 上下文会终止,它会终止进程。Pod 创建最终会成功,但它 需要很多时间。因此,kubelet 认为 CRI-O 没有创建 pod。kubelet 会再次发送请求,并导致名称 像很快使用正确的内容重新 复制。 如果您在使用此阶段 registry 镜像时尝试安装或升级 Operator,openshift-marketplace 命名空 间中的作业可能会失败,并显示以下错误信息,其中显示私有主机名 registry.stage.redhat.io 而 不是预期的公共主机名 registry.redhat.io: 输 输出示例 出示例 输 输出示例 出示例 这会导致,针对不可访问的私有0 码力 | 91 页 | 1.15 MB | 1 年前3 OpenShift Container Platform 4.6 发行注记在 .dockerignore 文件时将不会明 显降低构建期间处理 COPY 和 ADD 指令的速度。(BZ#1828119, BZ#1813258) 在以前的版本中,镜像构建和推送可能会失败,错误信息为 error reading blob from source, 这是因为构建器逻辑会计算新层的内容两次。缓存层内容的逻辑依赖于这些计算结果的一致性。 如果两个计算之间新层的内容发生变化,缓存将 页面提供了一个不准确到应用程序环境中的 项目的链接。(BZ#1889348) 在创建大量 pod 的情况下,创建会失败并显示 error reserved pod name …: name is reserved 错误信息。CNI 可执行文件的 CRI-O 上下文会终止,它会终止进程。Pod 创建最终会成功,但它 需要很多时间。因此,kubelet 认为 CRI-O 没有创建 pod。kubelet 会再次发送请求,并导致名称 像很快使用正确的内容重新 复制。 如果您在使用此阶段 registry 镜像时尝试安装或升级 Operator,openshift-marketplace 命名空 间中的作业可能会失败,并显示以下错误信息,其中显示私有主机名 registry.stage.redhat.io 而 不是预期的公共主机名 registry.redhat.io: 输 输出示例 出示例 输 输出示例 出示例 这会导致,针对不可访问的私有0 码力 | 91 页 | 1.15 MB | 1 年前3
 OpenShift Container Platform 4.14 分布式追踪gRPC 端口,连接会被拒绝。此问题会导致 transport: Error while dialing: dial tcp :16685: connect: connection refused 错误信息。在 这个版本中,Jaeger Query gRPC 端口 (16685) 可以在 Jaeger Query 服务上成功公开。 (TRACING-3322) 在此次更新之前,为 jaeger-production-query Service Mesh 时,Jaeger pod 会经常进入 Pending 状态。在这个版本中,这个问题已被解决。(TRACING- 3312) 在此次更新之前,因为 reason: OOMKilled 错误信息,Jaeger Operator pod 会以默认内存值重 启。在这个版本中,通过删除资源限值解决了这个问题。(TRACING-3173) 1.4.3.3. 已知 已知问题 问题 不支持 Apache0 码力 | 100 页 | 928.24 KB | 1 年前3 OpenShift Container Platform 4.14 分布式追踪gRPC 端口,连接会被拒绝。此问题会导致 transport: Error while dialing: dial tcp :16685: connect: connection refused 错误信息。在 这个版本中,Jaeger Query gRPC 端口 (16685) 可以在 Jaeger Query 服务上成功公开。 (TRACING-3322) 在此次更新之前,为 jaeger-production-query Service Mesh 时,Jaeger pod 会经常进入 Pending 状态。在这个版本中,这个问题已被解决。(TRACING- 3312) 在此次更新之前,因为 reason: OOMKilled 错误信息,Jaeger Operator pod 会以默认内存值重 启。在这个版本中,通过删除资源限值解决了这个问题。(TRACING-3173) 1.4.3.3. 已知 已知问题 问题 不支持 Apache0 码力 | 100 页 | 928.24 KB | 1 年前3
 OpenShift Container Platform 4.10 构建应用程序规则,应用程序可能无法成功绑定到 Service Binding Operator 可自动探测和绑定到的、几个已知的 Operator 支持的服务。当发生这种情况时,它会 生成类似以下示例的错误消息: 错误 错误信息示例 信息示例 临时解决方案 1:在 all namespaces 安装模式中安装 Service Binding Operator。这样,会存在 适当的集群范围的 RBAC 规则,绑定会成功。 4.10 构 构建 建应 应用程序 用程序 44 Operator 可自动探测和绑定到的、几个已知的 Operator 支持的服务。当发生这种情况时,它会 生成类似以下示例的错误消息: 错误 错误信息示例 信息示例 临时解决方案 1:在 all namespaces 安装模式中安装 Service Binding Operator。这样,会存在 适当的集群范围的 RBAC 规则,绑定会成功。 间范围的访问控制(RBAC)规则,所以应用程序可能无法成功绑定到 Service Binding Operator 可 自动探测和绑定到的、几个已知的 Operator 支持的服务。另外,还会生成以下出错信息: 错误 错误信息示例 信息示例 `postgresclusters.postgres-operator.crunchydata.com "hippo" is forbidden: User "s0 码力 | 198 页 | 3.62 MB | 1 年前3 OpenShift Container Platform 4.10 构建应用程序规则,应用程序可能无法成功绑定到 Service Binding Operator 可自动探测和绑定到的、几个已知的 Operator 支持的服务。当发生这种情况时,它会 生成类似以下示例的错误消息: 错误 错误信息示例 信息示例 临时解决方案 1:在 all namespaces 安装模式中安装 Service Binding Operator。这样,会存在 适当的集群范围的 RBAC 规则,绑定会成功。 4.10 构 构建 建应 应用程序 用程序 44 Operator 可自动探测和绑定到的、几个已知的 Operator 支持的服务。当发生这种情况时,它会 生成类似以下示例的错误消息: 错误 错误信息示例 信息示例 临时解决方案 1:在 all namespaces 安装模式中安装 Service Binding Operator。这样,会存在 适当的集群范围的 RBAC 规则,绑定会成功。 间范围的访问控制(RBAC)规则,所以应用程序可能无法成功绑定到 Service Binding Operator 可 自动探测和绑定到的、几个已知的 Operator 支持的服务。另外,还会生成以下出错信息: 错误 错误信息示例 信息示例 `postgresclusters.postgres-operator.crunchydata.com "hippo" is forbidden: User "s0 码力 | 198 页 | 3.62 MB | 1 年前3
 使用适用于Android 的VMware View ClientInternet Explorer 不同,客户端设备中没有绕过本地地址代理的 Internet 选项。当您在使用 HTTP 代理浏览外部地址时尝试连接到使用内部地址的 View 连接服务器,可能会提示错误信息无法建立连接。 解决方案 u 此时请删除代理设置,使您的设备不再使用代理。 使用适用于 Android 的 VMware View Client 22 VMware, Inc. 索引0 码力 | 24 页 | 889.72 KB | 1 年前3 使用适用于Android 的VMware View ClientInternet Explorer 不同,客户端设备中没有绕过本地地址代理的 Internet 选项。当您在使用 HTTP 代理浏览外部地址时尝试连接到使用内部地址的 View 连接服务器,可能会提示错误信息无法建立连接。 解决方案 u 此时请删除代理设置,使您的设备不再使用代理。 使用适用于 Android 的 VMware View Client 22 VMware, Inc. 索引0 码力 | 24 页 | 889.72 KB | 1 年前3
 OpenShift Container Platform 3.11 扩展和性能指南会监控上一步的完成情况。 为每 N 个对象被创建后,会暂停 M 秒。 在创建不同对象期间,限制率会等待 M 毫秒。 12.5. 已知问题 如果用户模板中没有定义 IDENTIFIER 参数,则模板创建失败,错误信息为:error: unknown parameter name "IDENTIFIER"。如果部署模板,在模板中添加这个参数以避免出现这个错误: { "name": "IDENTIFIER"0 码力 | 58 页 | 732.06 KB | 1 年前3 OpenShift Container Platform 3.11 扩展和性能指南会监控上一步的完成情况。 为每 N 个对象被创建后,会暂停 M 秒。 在创建不同对象期间,限制率会等待 M 毫秒。 12.5. 已知问题 如果用户模板中没有定义 IDENTIFIER 参数,则模板创建失败,错误信息为:error: unknown parameter name "IDENTIFIER"。如果部署模板,在模板中添加这个参数以避免出现这个错误: { "name": "IDENTIFIER"0 码力 | 58 页 | 732.06 KB | 1 年前3
 OpenShift Container Platform 4.13 虚拟化OpenShift Container Platform 4.13 虚 虚拟 拟化 化 344 3. 登录到 worker 节点并验证 kubelet 服务是否正在运行: 4. 检查 kubelet 日志中的错误信息: 缓 缓解方案 解方案 确保 worker 节点有足够的资源 (CPU、内存、磁盘) 在不中断的情况下运行虚拟机工作负载。 如果问题仍然存在,请尝试确定根本原因并解决问题。 如果您无法解 custom-columns="":.metadata.namespace)" OpenShift Container Platform 4.13 虚 虚拟 拟化 化 348 3. 检查 virt-launcher 日志中的错误信息: 4. 获取 virt-launcher pod 的详情,以检查状态条件,如意外终止或 NotReady 状态。 缓 缓解方案 解方案 这个警报可能会有各种原因,包括: 集群没有足够内存 但是,当前运行虚拟机工作负载不太可能会受到影响。 诊 诊断 断 1. 设置 NAMESPACE 环境变量: 2. 获取部署中的 virt-api pod 列表: 3. 检查 virt-api 日志中的错误信息: 4. 获取 virt-api pod 的详情: 5. 检查节点是否出现任何问题。例如,它们可能处于 NotReady 状态: 6. 检查 virt-api 部署的状态: 7. 获取 virt-api0 码力 | 393 页 | 4.53 MB | 1 年前3 OpenShift Container Platform 4.13 虚拟化OpenShift Container Platform 4.13 虚 虚拟 拟化 化 344 3. 登录到 worker 节点并验证 kubelet 服务是否正在运行: 4. 检查 kubelet 日志中的错误信息: 缓 缓解方案 解方案 确保 worker 节点有足够的资源 (CPU、内存、磁盘) 在不中断的情况下运行虚拟机工作负载。 如果问题仍然存在,请尝试确定根本原因并解决问题。 如果您无法解 custom-columns="":.metadata.namespace)" OpenShift Container Platform 4.13 虚 虚拟 拟化 化 348 3. 检查 virt-launcher 日志中的错误信息: 4. 获取 virt-launcher pod 的详情,以检查状态条件,如意外终止或 NotReady 状态。 缓 缓解方案 解方案 这个警报可能会有各种原因,包括: 集群没有足够内存 但是,当前运行虚拟机工作负载不太可能会受到影响。 诊 诊断 断 1. 设置 NAMESPACE 环境变量: 2. 获取部署中的 virt-api pod 列表: 3. 检查 virt-api 日志中的错误信息: 4. 获取 virt-api pod 的详情: 5. 检查节点是否出现任何问题。例如,它们可能处于 NotReady 状态: 6. 检查 virt-api 部署的状态: 7. 获取 virt-api0 码力 | 393 页 | 4.53 MB | 1 年前3
 OpenShift Container Platform 4.8
Web 控制台KIALI-3118 当对 ServiceMeshMemberRoll 进行修改后(例如,添加或删除了项目),Kiali pod 会 重新启动,并在 Kiali pod 重新启动的过程中在 Graph 页中显示错误信息。 KIALI-2206 当您第一次访问 Kiali 控制台时,浏览器中没有 Kiali 的缓存数据,Kiali 服务详情页面 的 Metrics 标签页中的 “View in grafana”0 码力 | 87 页 | 1.58 MB | 1 年前3 OpenShift Container Platform 4.8
Web 控制台KIALI-3118 当对 ServiceMeshMemberRoll 进行修改后(例如,添加或删除了项目),Kiali pod 会 重新启动,并在 Kiali pod 重新启动的过程中在 Graph 页中显示错误信息。 KIALI-2206 当您第一次访问 Kiali 控制台时,浏览器中没有 Kiali 的缓存数据,Kiali 服务详情页面 的 Metrics 标签页中的 “View in grafana”0 码力 | 87 页 | 1.58 MB | 1 年前3
 Docker 从入门到实践 0.4这样就可以记录在容器输入过的命令了。 *注意:如果直接挂载一个文件,很多文件编辑工具,包括 vi 或者 sed --in-place ,可能会造成文件 inode 的改变,从 Docker 1.1 .0起,这会导致报错误信息。所以最简单的办法就直接挂载文件的父目录。 Docker —— 从入门到实践 48 数据卷 如果你有一些持续更新的数据需要在容器之间共享,最好创建数据卷容器。 数据卷容器,其实就是一个正常0 码力 | 179 页 | 2.27 MB | 1 年前3 Docker 从入门到实践 0.4这样就可以记录在容器输入过的命令了。 *注意:如果直接挂载一个文件,很多文件编辑工具,包括 vi 或者 sed --in-place ,可能会造成文件 inode 的改变,从 Docker 1.1 .0起,这会导致报错误信息。所以最简单的办法就直接挂载文件的父目录。 Docker —— 从入门到实践 48 数据卷 如果你有一些持续更新的数据需要在容器之间共享,最好创建数据卷容器。 数据卷容器,其实就是一个正常0 码力 | 179 页 | 2.27 MB | 1 年前3
共 25 条
- 1
- 2
- 3













