 石墨文档Go在K8S上微服务的实践-彭友顺Proto的管理 • 错误码管理 • 调试gRPC • 调试信息 • 错误定位 问题:每种开源组件的配置、调用方式、debug方式、记录日志方式都不一样 微服务的开发阶段 问题:gRPC未设置连接错误,阻塞模式报错不正确 Redis、MySQL连接数配置未设置?超时未设置? 配置 对接 Debug • 配置驱动 • 配置补齐 • 配置工具 • Proto的管理 • 错误码管理 • 默认补齐配置,给出最佳实践 微服务的开发阶段 IDE的体验,右键插入资源引用,悬停查看资源信息 配置 对接 Debug • 配置驱动 • 配置补齐 • 配置工具 • Proto的管理 • 错误码管理 • 调试gRPC • 调试信息 • 错误定位 配置版本,发布,回滚,可以更加方便 微服务的开发阶段 统一采用gRPC协议和protobuf编解码 CI check 阶段 • 主要做 的注释自动产生文档,并推送至内部的微服务管理系统接口平台中 • 会生成 Go/PHP/Node/Java 桩代码和错误码,推送到指定的仓库 开发阶段 • go get 客户端、服务端的gRPC和错误码的代码 配置 对接 Debug • 配置驱动 • 配置补齐 • 配置工具 • Proto的管理 • 错误码管理 • 调试gRPC • 调试信息 • 错误定位 微服务的开发阶段 配置 对接 Debug0 码力 | 41 页 | 3.20 MB | 1 年前3 石墨文档Go在K8S上微服务的实践-彭友顺Proto的管理 • 错误码管理 • 调试gRPC • 调试信息 • 错误定位 问题:每种开源组件的配置、调用方式、debug方式、记录日志方式都不一样 微服务的开发阶段 问题:gRPC未设置连接错误,阻塞模式报错不正确 Redis、MySQL连接数配置未设置?超时未设置? 配置 对接 Debug • 配置驱动 • 配置补齐 • 配置工具 • Proto的管理 • 错误码管理 • 默认补齐配置,给出最佳实践 微服务的开发阶段 IDE的体验,右键插入资源引用,悬停查看资源信息 配置 对接 Debug • 配置驱动 • 配置补齐 • 配置工具 • Proto的管理 • 错误码管理 • 调试gRPC • 调试信息 • 错误定位 配置版本,发布,回滚,可以更加方便 微服务的开发阶段 统一采用gRPC协议和protobuf编解码 CI check 阶段 • 主要做 的注释自动产生文档,并推送至内部的微服务管理系统接口平台中 • 会生成 Go/PHP/Node/Java 桩代码和错误码,推送到指定的仓库 开发阶段 • go get 客户端、服务端的gRPC和错误码的代码 配置 对接 Debug • 配置驱动 • 配置补齐 • 配置工具 • Proto的管理 • 错误码管理 • 调试gRPC • 调试信息 • 错误定位 微服务的开发阶段 配置 对接 Debug0 码力 | 41 页 | 3.20 MB | 1 年前3
 Go在工程实践的错误处理能够确定对端的唯一来源,例如对端的应用名称、对端的 配置、对端的IP。 对端请求的方法。 请求的参数信息,包括 header 里的 metadata 响应的数据,包括 header 里的 metadata 错误码和错误信息 请求到响应的耗时时间 调用处执行的行号 总结起来,调试阶段需要对接的信息 为什么调试慢?-- 错误信息 高亮信息 封装组件 充足信息 • 在调试阶段,日志用红色高亮错误 为什么调试慢?-- 错误信息 高亮信息 封装组件 充足信息 • 没有调试信息和错误信息 • 对接起来会非常麻烦 优雅处理错误信息 第三部分 为什么定位慢?-- 错误处理 不要透传错误 错误码唯一性 记录一次错误 假设用户反馈了无法打开一个文件 我们的程序员非常认真 记录了文件不存在的错误日志 • 同样的错误信息,非常多的杂音 • 每个Error,都去查看一次对应代码,排查效率低 不要透传错误 错误码唯一性 记录一次错误 日志分析不出是哪个service 调用了MySQL 为什么定位慢?-- 错误处理 带来新的问题,无法定位整个代码执行链路 不要透传错误 错误码唯一性 记录一次错误 • 不能透传错误,fmt.Errorf • 如果不考虑性能 • 日志开启Stack • 错误追加Stack 为什么定位慢?-- 错误处理 不要透传错误 错误码唯一性 记录一次错误0 码力 | 30 页 | 3.11 MB | 1 年前3 Go在工程实践的错误处理能够确定对端的唯一来源,例如对端的应用名称、对端的 配置、对端的IP。 对端请求的方法。 请求的参数信息,包括 header 里的 metadata 响应的数据,包括 header 里的 metadata 错误码和错误信息 请求到响应的耗时时间 调用处执行的行号 总结起来,调试阶段需要对接的信息 为什么调试慢?-- 错误信息 高亮信息 封装组件 充足信息 • 在调试阶段,日志用红色高亮错误 为什么调试慢?-- 错误信息 高亮信息 封装组件 充足信息 • 没有调试信息和错误信息 • 对接起来会非常麻烦 优雅处理错误信息 第三部分 为什么定位慢?-- 错误处理 不要透传错误 错误码唯一性 记录一次错误 假设用户反馈了无法打开一个文件 我们的程序员非常认真 记录了文件不存在的错误日志 • 同样的错误信息,非常多的杂音 • 每个Error,都去查看一次对应代码,排查效率低 不要透传错误 错误码唯一性 记录一次错误 日志分析不出是哪个service 调用了MySQL 为什么定位慢?-- 错误处理 带来新的问题,无法定位整个代码执行链路 不要透传错误 错误码唯一性 记录一次错误 • 不能透传错误,fmt.Errorf • 如果不考虑性能 • 日志开启Stack • 错误追加Stack 为什么定位慢?-- 错误处理 不要透传错误 错误码唯一性 记录一次错误0 码力 | 30 页 | 3.11 MB | 1 年前3
 Apache ShardingSphere 中文文档 5.4.1. . . . . . . . . . . . . . . . . 403 9.4 错误码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405 9.4.1 SQL 错误码 . . . . . . . . . . . . . . . . . . . . . . 其他异常 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414 9.4.2 服务器错误码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414 10 开发者手册 415 10.1 运行模式 FROM t_order; 9.4 错误码 本章列举 Apache ShardingSphere 错误码。包含 SQL 错误码和服务器错误码。 本章节所有内容均为草稿,错误码仍可能调整。 9.4.1 SQL 错误码 SQL 错误码以标准的 SQL State,Vendor Code 和详细错误信息提供,在 SQL 执行错误时返回给客户端。 目前内容为草稿,错误码仍可能调整。 内核异常 元数据0 码力 | 530 页 | 4.49 MB | 1 年前3 Apache ShardingSphere 中文文档 5.4.1. . . . . . . . . . . . . . . . . 403 9.4 错误码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405 9.4.1 SQL 错误码 . . . . . . . . . . . . . . . . . . . . . . 其他异常 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414 9.4.2 服务器错误码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414 10 开发者手册 415 10.1 运行模式 FROM t_order; 9.4 错误码 本章列举 Apache ShardingSphere 错误码。包含 SQL 错误码和服务器错误码。 本章节所有内容均为草稿,错误码仍可能调整。 9.4.1 SQL 错误码 SQL 错误码以标准的 SQL State,Vendor Code 和详细错误信息提供,在 SQL 执行错误时返回给客户端。 目前内容为草稿,错误码仍可能调整。 内核异常 元数据0 码力 | 530 页 | 4.49 MB | 1 年前3
 Apache ShardingSphere 中文文档 5.3.2. . . . . . . . . . . . . . . . . 384 9.4 错误码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385 9.4.1 SQL 错误码 . . . . . . . . . . . . . . . . . . . . . . 其他异常 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394 9.4.2 服务器错误码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394 10 开发者手册 395 10.1 运行模式 t_order; 9.4 错误码 本章列举 Apache ShardingSphere 错误码。包含 SQL 错误码和服务器错误码。 本章节所有内容均为草稿,错误码仍可能调整。 9.4.1 SQL 错误码 SQL 错误码以标准的 SQL State,Vendor Code 和详细错误信息提供,在 SQL 执行错误时返回给客户端。 目前内容为草稿,错误码仍可能调整。 9.4. 错误码 385 Apache0 码力 | 508 页 | 4.44 MB | 1 年前3 Apache ShardingSphere 中文文档 5.3.2. . . . . . . . . . . . . . . . . 384 9.4 错误码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385 9.4.1 SQL 错误码 . . . . . . . . . . . . . . . . . . . . . . 其他异常 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394 9.4.2 服务器错误码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394 10 开发者手册 395 10.1 运行模式 t_order; 9.4 错误码 本章列举 Apache ShardingSphere 错误码。包含 SQL 错误码和服务器错误码。 本章节所有内容均为草稿,错误码仍可能调整。 9.4.1 SQL 错误码 SQL 错误码以标准的 SQL State,Vendor Code 和详细错误信息提供,在 SQL 执行错误时返回给客户端。 目前内容为草稿,错误码仍可能调整。 9.4. 错误码 385 Apache0 码力 | 508 页 | 4.44 MB | 1 年前3
 TarsGo微服务开发实践-利开园2021-08-21 关于我 Docker TarsGo Tars+K8S DevOps 2015至今 腾讯 目录 1. RPC 2. 日志 3. 监控 4. 调用链 5. 网关 6. 错误码 7. 配置 8. 云原生 9. 标准化 背景 • Tars是腾讯开源的微服务解决方案 • 高性能的RPC框架 • 丰富的服务治理能力 • 支持Golang/Cpp/Java/PHP/Nodejs com/tarscloud/gopractice RPC:不应该只是RPC • 基本功能:远程函数调用 • 可观测 • 名字服务+SET流量管理 • 熔断与恢复 • 轮询/一致性Hash • 错误码管理 日志:排查问题的利器 • 格式化 =〉 JSON • 单机withFields • 基于context • 跨服务withFields • 基于透传元数据 • 按大小/时间滚动 • Tracing:在复杂系统中定位问题 • 依赖框架Context透传 • 基于OpenTracing+Jaeger • 第三库不支持如何解决? 错误码:给主调方更好的提示 • 错误码区分内部错误与请求 • 接口返回error实例 网关: 将问题在团队内部闭环 • 无业务逻辑 • 可观测 • 错误码 • 超时控制 • 增加RPC接口不用发布的解决方案 # curl -d '{"msg":"abc"}' 172.250 码力 | 15 页 | 4.23 MB | 1 年前3 TarsGo微服务开发实践-利开园2021-08-21 关于我 Docker TarsGo Tars+K8S DevOps 2015至今 腾讯 目录 1. RPC 2. 日志 3. 监控 4. 调用链 5. 网关 6. 错误码 7. 配置 8. 云原生 9. 标准化 背景 • Tars是腾讯开源的微服务解决方案 • 高性能的RPC框架 • 丰富的服务治理能力 • 支持Golang/Cpp/Java/PHP/Nodejs com/tarscloud/gopractice RPC:不应该只是RPC • 基本功能:远程函数调用 • 可观测 • 名字服务+SET流量管理 • 熔断与恢复 • 轮询/一致性Hash • 错误码管理 日志:排查问题的利器 • 格式化 =〉 JSON • 单机withFields • 基于context • 跨服务withFields • 基于透传元数据 • 按大小/时间滚动 • Tracing:在复杂系统中定位问题 • 依赖框架Context透传 • 基于OpenTracing+Jaeger • 第三库不支持如何解决? 错误码:给主调方更好的提示 • 错误码区分内部错误与请求 • 接口返回error实例 网关: 将问题在团队内部闭环 • 无业务逻辑 • 可观测 • 错误码 • 超时控制 • 增加RPC接口不用发布的解决方案 # curl -d '{"msg":"abc"}' 172.250 码力 | 15 页 | 4.23 MB | 1 年前3
 Apache ShardingSphere v5.5.0 中文文档. . . . . . . . . . . . . . . . . 431 9.4 错误码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433 9.4.1 SQL 错误码 . . . . . . . . . . . . . . . . . . . . . . 其他异常 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440 9.4.2 服务器错误码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440 10 开发者手册 441 10.1 运行模式 FROM t_order; 9.4 错误码 本章列举 Apache ShardingSphere 错误码。包含 SQL 错误码和服务器错误码。 本章节所有内容均为草稿,错误码仍可能调整。 9.4.1 SQL 错误码 SQL 错误码以标准的 SQL State,Vendor Code 和详细错误信息提供,在 SQL 执行错误时返回给客户端。 目前内容为草稿,错误码仍可能调整。 内核异常 元数据0 码力 | 557 页 | 4.61 MB | 1 年前3 Apache ShardingSphere v5.5.0 中文文档. . . . . . . . . . . . . . . . . 431 9.4 错误码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433 9.4.1 SQL 错误码 . . . . . . . . . . . . . . . . . . . . . . 其他异常 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440 9.4.2 服务器错误码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440 10 开发者手册 441 10.1 运行模式 FROM t_order; 9.4 错误码 本章列举 Apache ShardingSphere 错误码。包含 SQL 错误码和服务器错误码。 本章节所有内容均为草稿,错误码仍可能调整。 9.4.1 SQL 错误码 SQL 错误码以标准的 SQL State,Vendor Code 和详细错误信息提供,在 SQL 执行错误时返回给客户端。 目前内容为草稿,错误码仍可能调整。 内核异常 元数据0 码力 | 557 页 | 4.61 MB | 1 年前3
 Apache ShardingSphere 中文文档 5.2.0. . . . . . . . . . . . . . . . . 268 4.4 错误码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269 4.4.1 SQL 错误码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269 4.4.2 服务器错误码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271 5 开发者手册 272 5.1 运行模式 . . . . . . . . . . . . . . . . . . . . . . . . . 4.4 错误码 本章列举 Apache ShardingSphere 错误码。包含 SQL 错误码和服务器错误码。 本章节所有内容均为草稿,错误码仍可能调整。 4.4.1 SQL 错误码 SQL 错误码以标准的 SQL State,Vendor Code 和详细错误信息提供,在 SQL 执行错误时返回给客户端。 目前内容为草稿,错误码仍可能调整。 SQL State0 码力 | 449 页 | 5.85 MB | 1 年前3 Apache ShardingSphere 中文文档 5.2.0. . . . . . . . . . . . . . . . . 268 4.4 错误码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269 4.4.1 SQL 错误码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269 4.4.2 服务器错误码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271 5 开发者手册 272 5.1 运行模式 . . . . . . . . . . . . . . . . . . . . . . . . . 4.4 错误码 本章列举 Apache ShardingSphere 错误码。包含 SQL 错误码和服务器错误码。 本章节所有内容均为草稿,错误码仍可能调整。 4.4.1 SQL 错误码 SQL 错误码以标准的 SQL State,Vendor Code 和详细错误信息提供,在 SQL 执行错误时返回给客户端。 目前内容为草稿,错误码仍可能调整。 SQL State0 码力 | 449 页 | 5.85 MB | 1 年前3
 TiDB中文技术文档数据定义语句 (DDL) 数据操作语句 (DML) 事务语句 数据库管理语句 Prepared SQL 语句语法 实用工具语句 JSON 支持 Connectors 和 API TiDB 事务隔离级别 错误码与故障诊断 与 MySQL 兼容性对比 TiDB 内存控制文档 Bit-value Literals Boolean Literals Date 和 Time 字面值 十六进制的字面值 NULL Values 数据操作语句 (DML) 事务语句 数据库管理语句 Prepared SQL 语句语法 实用工具语句 TiDB SQL 语法图 JSON 支持 Connectors 和 API TiDB 事务隔离级别 错误码与故障诊断 与 MySQL 兼容性对比 TiDB 内存控制 高级功能 历史数据回溯 垃圾回收 (GC) TiDB 运维文档 软硬件环境需求 部署集群 Ansible 部署方案(强烈推荐) 离线 Ansible TiDB 用户文档 TiDB 数据库管理 SQL 优化 语言结构 字符集和时区 数据类型 函数和操作符 SQL 语句语法 JSON 支持 Connectors 和 API TiDB 事务隔离级别 错误码与故障诊断 与 MySQL 兼容性对比 TiDB 内存控制 高级功能 TiDB 用户文档 - 23 - 本文档使用 书栈(BookStack.CN) 构建 TiDB 数据库管理 TiDB 服务 TiDB0 码力 | 444 页 | 4.89 MB | 6 月前3 TiDB中文技术文档数据定义语句 (DDL) 数据操作语句 (DML) 事务语句 数据库管理语句 Prepared SQL 语句语法 实用工具语句 JSON 支持 Connectors 和 API TiDB 事务隔离级别 错误码与故障诊断 与 MySQL 兼容性对比 TiDB 内存控制文档 Bit-value Literals Boolean Literals Date 和 Time 字面值 十六进制的字面值 NULL Values 数据操作语句 (DML) 事务语句 数据库管理语句 Prepared SQL 语句语法 实用工具语句 TiDB SQL 语法图 JSON 支持 Connectors 和 API TiDB 事务隔离级别 错误码与故障诊断 与 MySQL 兼容性对比 TiDB 内存控制 高级功能 历史数据回溯 垃圾回收 (GC) TiDB 运维文档 软硬件环境需求 部署集群 Ansible 部署方案(强烈推荐) 离线 Ansible TiDB 用户文档 TiDB 数据库管理 SQL 优化 语言结构 字符集和时区 数据类型 函数和操作符 SQL 语句语法 JSON 支持 Connectors 和 API TiDB 事务隔离级别 错误码与故障诊断 与 MySQL 兼容性对比 TiDB 内存控制 高级功能 TiDB 用户文档 - 23 - 本文档使用 书栈(BookStack.CN) 构建 TiDB 数据库管理 TiDB 服务 TiDB0 码力 | 444 页 | 4.89 MB | 6 月前3
 FISCO BCOS 2.9.0 中文文档新链时存储默认采用RocksDB • 分布式存储:新增CRUD接口支持,控制台1.0.3以上版本提供类SQL语句读写区块链数据 更新 • 完善ABI解码模块 • 修改预编译合约和RPC接口错误码,统一为负数 • 优化存储模块,增加缓存层,支持配置缓存大小 • 优化存储模块,允许流水线提交区块。可配置[storage].max_capacity控制允许使用的内存 空间大小 • 移动分布 创建表,返回是否成功 * @param tableName 表的名称 * @param key 表的主键名 * @param valueFields 表的字段名,多个字段名以英文逗号分隔 * @return 返回错误码,成功为0,错误则为负数 */ function createTable(string tableName,string key,string valueFields) public ˓→returns(int256); 创建表,返回是否成功 * @param tableName 表的名称 * @param key 表的主键名 * @param valueFields 表的字段名,多个字段名以英文逗号分隔 * @return 返回错误码,成功为0,错误则为负数 */ function createTable(string tableName,string key,string valueFields) public ˓→returns(int);0 码力 | 1489 页 | 107.09 MB | 1 年前3 FISCO BCOS 2.9.0 中文文档新链时存储默认采用RocksDB • 分布式存储:新增CRUD接口支持,控制台1.0.3以上版本提供类SQL语句读写区块链数据 更新 • 完善ABI解码模块 • 修改预编译合约和RPC接口错误码,统一为负数 • 优化存储模块,增加缓存层,支持配置缓存大小 • 优化存储模块,允许流水线提交区块。可配置[storage].max_capacity控制允许使用的内存 空间大小 • 移动分布 创建表,返回是否成功 * @param tableName 表的名称 * @param key 表的主键名 * @param valueFields 表的字段名,多个字段名以英文逗号分隔 * @return 返回错误码,成功为0,错误则为负数 */ function createTable(string tableName,string key,string valueFields) public ˓→returns(int256); 创建表,返回是否成功 * @param tableName 表的名称 * @param key 表的主键名 * @param valueFields 表的字段名,多个字段名以英文逗号分隔 * @return 返回错误码,成功为0,错误则为负数 */ function createTable(string tableName,string key,string valueFields) public ˓→returns(int);0 码力 | 1489 页 | 107.09 MB | 1 年前3
 FISCO BCOS 3.6.0 中文文档新链时存储默认采用RocksDB • 分布式存储:新增CRUD接口支持,控制台1.0.3以上版本提供类SQL语句读写区块链数据 更新 • 完善ABI解码模块 • 修改预编译合约和RPC接口错误码,统一为负数 • 优化存储模块,增加缓存层,支持配置缓存大小 • 优化存储模块,允许流水线提交区块。可配置[storage].max_capacity控制允许使用的内存 空间大小 • 移动分布 创建表,返回是否成功 * @param tableName 表的名称 * @param key 表的主键名 * @param valueFields 表的字段名,多个字段名以英文逗号分隔 * @return 返回错误码,成功为0,错误则为负数 */ function createTable(string tableName,string key,string valueFields) public ˓→returns(int256); 创建表,返回是否成功 * @param tableName 表的名称 * @param key 表的主键名 * @param valueFields 表的字段名,多个字段名以英文逗号分隔 * @return 返回错误码,成功为0,错误则为负数 */ function createTable(string tableName,string key,string valueFields) public ˓→returns(int);0 码力 | 1489 页 | 107.09 MB | 1 年前3 FISCO BCOS 3.6.0 中文文档新链时存储默认采用RocksDB • 分布式存储:新增CRUD接口支持,控制台1.0.3以上版本提供类SQL语句读写区块链数据 更新 • 完善ABI解码模块 • 修改预编译合约和RPC接口错误码,统一为负数 • 优化存储模块,增加缓存层,支持配置缓存大小 • 优化存储模块,允许流水线提交区块。可配置[storage].max_capacity控制允许使用的内存 空间大小 • 移动分布 创建表,返回是否成功 * @param tableName 表的名称 * @param key 表的主键名 * @param valueFields 表的字段名,多个字段名以英文逗号分隔 * @return 返回错误码,成功为0,错误则为负数 */ function createTable(string tableName,string key,string valueFields) public ˓→returns(int256); 创建表,返回是否成功 * @param tableName 表的名称 * @param key 表的主键名 * @param valueFields 表的字段名,多个字段名以英文逗号分隔 * @return 返回错误码,成功为0,错误则为负数 */ function createTable(string tableName,string key,string valueFields) public ˓→returns(int);0 码力 | 1489 页 | 107.09 MB | 1 年前3
共 90 条
- 1
- 2
- 3
- 4
- 5
- 6
- 9













