积分充值
 首页
前端开发
AngularDartElectronFlutterHTML/CSSJavaScriptReactSvelteTypeScriptVue.js构建工具
后端开发
.NetC#C++C语言DenoffmpegGoIdrisJavaJuliaKotlinLeanMakefilenimNode.jsPascalPHPPythonRISC-VRubyRustSwiftUML其它语言区块链开发测试微服务敏捷开发架构设计汇编语言
数据库
Apache DorisApache HBaseCassandraClickHouseFirebirdGreenplumMongoDBMySQLPieCloudDBPostgreSQLRedisSQLSQLiteTiDBVitess数据库中间件数据库工具数据库设计
系统运维
AndroidDevOpshttpdJenkinsLinuxPrometheusTraefikZabbix存储网络与安全
云计算&大数据
Apache APISIXApache FlinkApache KarafApache KyuubiApache OzonedaprDockerHadoopHarborIstioKubernetesOpenShiftPandasrancherRocketMQServerlessService MeshVirtualBoxVMWare云原生CNCF机器学习边缘计算
综合其他
BlenderGIMPKiCadKritaWeblate产品与服务人工智能亿图数据可视化版本控制笔试面试
文库资料
前端
AngularAnt DesignBabelBootstrapChart.jsCSS3EchartsElectronHighchartsHTML/CSSHTML5JavaScriptJerryScriptJestReactSassTypeScriptVue前端工具小程序
后端
.NETApacheC/C++C#CMakeCrystalDartDenoDjangoDubboErlangFastifyFlaskGinGoGoFrameGuzzleIrisJavaJuliaLispLLVMLuaMatplotlibMicronautnimNode.jsPerlPHPPythonQtRPCRubyRustR语言ScalaShellVlangwasmYewZephirZig算法
移动端
AndroidAPP工具FlutterFramework7HarmonyHippyIoniciOSkotlinNativeObject-CPWAReactSwiftuni-appWeex
数据库
ApacheArangoDBCassandraClickHouseCouchDBCrateDBDB2DocumentDBDorisDragonflyDBEdgeDBetcdFirebirdGaussDBGraphGreenPlumHStreamDBHugeGraphimmudbIndexedDBInfluxDBIoTDBKey-ValueKitDBLevelDBM3DBMatrixOneMilvusMongoDBMySQLNavicatNebulaNewSQLNoSQLOceanBaseOpenTSDBOracleOrientDBPostgreSQLPrestoDBQuestDBRedisRocksDBSequoiaDBServerSkytableSQLSQLiteTiDBTiKVTimescaleDBYugabyteDB关系型数据库数据库数据库ORM数据库中间件数据库工具时序数据库
云计算&大数据
ActiveMQAerakiAgentAlluxioAntreaApacheApache APISIXAPISIXBFEBitBookKeeperChaosChoerodonCiliumCloudStackConsulDaprDataEaseDC/OSDockerDrillDruidElasticJobElasticSearchEnvoyErdaFlinkFluentGrafanaHadoopHarborHelmHudiInLongKafkaKnativeKongKubeCubeKubeEdgeKubeflowKubeOperatorKubernetesKubeSphereKubeVelaKumaKylinLibcloudLinkerdLonghornMeiliSearchMeshNacosNATSOKDOpenOpenEBSOpenKruiseOpenPitrixOpenSearchOpenStackOpenTracingOzonePaddlePaddlePolicyPulsarPyTorchRainbondRancherRediSearchScikit-learnServerlessShardingSphereShenYuSparkStormSupersetXuperChainZadig云原生CNCF人工智能区块链数据挖掘机器学习深度学习算法工程边缘计算
UI&美工&设计
BlenderKritaSketchUI设计
网络&系统&运维
AnsibleApacheAWKCeleryCephCI/CDCurveDevOpsGoCDHAProxyIstioJenkinsJumpServerLinuxMacNginxOpenRestyPrometheusServertraefikTrafficUnixWindowsZabbixZipkin安全防护系统内核网络运维监控
综合其它
文章资讯
 上传文档  发布文章  登录账户
IT文库
  • 综合
  • 文档
  • 文章

无数据

分类

全部后端开发(57)Go(57)

语言

全部中文(简体)(56)英语(1)

格式

全部PDF文档 PDF(54)其他文档 其他(2)PPT文档 PPT(1)
 
本次搜索耗时 0.033 秒,为您找到相关结果约 57 个.
  • 全部
  • 后端开发
  • Go
  • 全部
  • 中文(简体)
  • 英语
  • 全部
  • PDF文档 PDF
  • 其他文档 其他
  • PPT文档 PPT
  • 默认排序
  • 最新排序
  • 页数排序
  • 大小排序
  • 全部时间
  • 最近一天
  • 最近一周
  • 最近一个月
  • 最近三个月
  • 最近半年
  • 最近一年
  • pdf文档 Go在工程实践的错误处理

    Golang在工程实践中的错误处理 彭友顺 石墨文档 产研负责人 目 录 为什么我们处理错误会这么慢 01 如何完善错误信息 02 优雅处理错误信息 03 分布式错误处理 04 错误信息手册的必要性 05 为什么我们处理错误 会这么慢 第一部分 错误信息不够完善 why 原因 出现 错误 定位 慢 恢复 慢 效率低 为什么我们处理错误会这么慢 错误处理不够优雅 分布式错误难以串联 对接起来会非常麻烦 优雅处理错误信息 第三部分 为什么定位慢?-- 错误处理 不要透传错误 错误码唯一性 记录一次错误 假设用户反馈了无法打开一个文件 我们的程序员非常认真 记录了文件不存在的错误日志 • 同样的错误信息,非常多的杂音 • 每个Error,都去查看一次对应代码,排查效率低 • 占用存储空间 • 最外层入口处只记录一次错误日志 为什么定位慢?-- 错误处理 带来新的问题,无法定位整个代码执行链路 日志分析不出是哪个service 调用了MySQL 为什么定位慢?-- 错误处理 带来新的问题,无法定位整个代码执行链路 不要透传错误 错误码唯一性 记录一次错误 • 不能透传错误,fmt.Errorf • 如果不考虑性能 • 日志开启Stack • 错误追加Stack 为什么定位慢?-- 错误处理 不要透传错误 错误码唯一性 记录一次错误 文件不存在 数据表里不存在
    0 码力 | 30 页 | 3.11 MB | 1 年前
    3
  • pdf文档 Go在数据库中间件的应用

    • go处理mysql的binlog有知识积累 • 公司大规模推广使用go 8 分表路由逻辑 • 分表规则 • 哈希分表:shardkey通过Hash函数分表 • 分段分表:按照年、月、日或者整形范围分表 本质上哈希分表与分段分表都是一样,只是其Hash方式不同,使得看起来有两 种不同的数据组织方式。 9 故障主备切换 • 故障情形 • 从节点挂掉:进行剔除下线处理 • 主节点挂掉,机器存活:通过binlog恢复数据,提升备为主 • 主节点挂掉,机器不存活:采用Relaylog恢复数据,提升备为主 • 部署模式 • 一主多从 • 双主多从 10 故障主备切换 • 一主多从模式 master slave slave slave slave 机房A 机房B Dead-Master Latest-Slave Slave Latest-Slave与Master差异 Latest-Slave与Master差异 日志 Latest-Slave与Slave差异 日志 Master故障时试图通过Rsync拉取Binlog,最大程度保 证数据不丢失; Slave之间的数据差异通过中继日志恢复。 • 数据恢复工作原理 11 故障主备切换 • 双主多从模式 master slave slave slave slave 机房A 机房B master 12 在线平滑扩容
    0 码力 | 17 页 | 4.02 MB | 1 年前
    3
  • pdf文档 2.1.1 Golang主动式内存缓存的优化探索之路

    数据加载,更新 02. 全量数据加载,增量数据监听 • 每个应用服务分别消费数据变更消息 • 一个应用服务消费数据变更,应用服务集群内广播 Maxwell是一个能实时读取MySQL二进 制日志binlog,并生成JSON格式的消 息,作为生产者发送给Kafka、 RabbitMQ、Redis、文件或其它平台的 应用程序 数据管理 如何像SQL一样灵活? 多维度查询 03. 业务 内存数据与golang结构间的桥梁 09. 自研MemoryTile(定制化的golang序列化反序列化),解决百万数据量级序列化反序列化耗时问题 MemoryTile的通用性 复杂的数据结构,如何处理? 复杂结构的处理 MemoryTile Marshal MemoryTile g o la n g 语 言 专 用 、 高 效 适 合 专 用 的 特 殊 场 景 MsgPack 通 用 、 跨 具备极高的性能,保障业务的快速响应 • 依赖方不可用时,提供有损服务 心得感悟 极致的性能 01. 请求到响应只需要内存中的操作即可完成,因此具备极高的性能 用户请求 请求 内存检索 逻辑处理 快速响应 响应 1000万业务数据,10个pod,4核心16G内存,QPS均值12W 最小的依赖 02. 最小化依赖故障时,对业务服务造成的影响 核心业务数据都缓存在本机内存中 依赖出现故障,我们的服务依然坚挺
    0 码力 | 48 页 | 6.06 MB | 1 年前
    3
  • pdf文档 Go Web编程

    web工作方式 3.2 Go搭建一个简单的web服务 3.3 Go如何使得web工作 3.4 Go的http包详解 3.5 小结 4.表单 4.1 处理表单的输入 4.2 验证表单的输入 4.3 预防跨站脚本 4.4 防止多次递交表单 4.5 处理文件上传 4.6 小结 5.访问数据库 5.1 database/sql接口 5.2 使用MySQL数据库 5.3 使用SQLite数据库 5.4 session和cookie 6.2 Go如何使用session 6.3 session存储 6.4 预防session劫持 6.5 小结 7.文本文件处理 7.1 XML处理 7.2 JSON处理 7.3 正则处理 7.4 模板处理 7.5 文件操作 7.6 字符串处理 7.7 小结 8.Web服务 8.1 Socket编程 8.2 WebSocket 8.3 REST 8.4 RPC 8.5 小结 国际化和本地化 10.1 设置默认地区 10.2 本地化资源 10.3 国际化站点 4 10.4 小结 11.错误处理,调试和测试 11.1 错误处理 11.2 使用GDB调试 11.3 Go怎么写测试用例 11.4 小结 12.部署与维护 12.1 应用日志 12.2 网站错误处理 12.3 应用部署 12.4 备份和恢复 12.5 小结 13.如何设计一个Web框架 13.1 项目规划
    0 码力 | 295 页 | 5.91 MB | 1 年前
    3
  • pdf文档 3.云原生边云协同AI框架实践

    App Unseen Task Detect ① 基于N个历史任务,完成云端知识库初 始化 ② 基于云端知识库,学习当前边侧任务 ③ 基于当前边侧任务,更新云端知识库 ④ 重复步骤2-3以处理M个未来任务 Cloud 任务模型 任务样本 1 2 3 4 N个历史任务 当前任务 M个未来任务 知识库 边云协同终身学习: 云侧知识库记忆,解决新情景下数据异构和小样本 client-gen: 为资源生成标准的操作方法 (get;list;watch;create;update;patch;delete) informer-gen: 生成informer,提供事件机制 (AddFunc,UpdateFunc,DeleteFunc)来响应 kubernetes的event lister-gen: 为get和list方法提供只读缓存层 https://github NewUpstreamController():【5】创建UpstreamController,每个GM进程有 一个UpstreamController - uc.Run(stopCh):启动一个for循环协程,来处理 - pkg/globalmanager/controllers/upstream.go/syncEdgeUpdate() - NewRegistry():【6】注册所有controller。
    0 码力 | 37 页 | 2.36 MB | 1 年前
    3
  • pdf文档 如何消除程序中的数据竞争-周光远

    顺序3 非 预 期 状 态 goroutine 1 goroutine 2 Happens Before Happens Before关系是一种保证,如果a事件Happens Before b事件,那么b事件一定能观察到a事件的结果; In computer science, the happened-before is a relation between the result of two in reality executed out of order. a b b c a c 传递性: 对于任意的事件a,b,c,如果a → b, 同时,b → c,则有: a → c. (后续用→ 代表happens before) • 观察意味着b事件对a事件的结果存在依赖; • Happens Before关系不代表代码真实执行的时间; • 真实执行的时间不影响Happens https://golang.org/ref/mem https://go101.org/article/memory-model.html 消除数据竞争的原理 消除数据竞争,实质就是利用go提供的保证和传递性来建立事件之间的happens before关系。 a b c d go1 go2 data race a b c d go1 go2 no data race 利用通道的happens
    0 码力 | 30 页 | 1.92 MB | 1 年前
    3
  • pdf文档 IPC性能极致优化方案-RPAL落地实践

    com/cloudwego/shmipc-go 方案诞生的背景 方案诞生的背景 IPC 的性能瓶颈有哪些: 1. 系统特权级切换; 2. 异步线程唤醒/休眠(事件通知); 3. 数据拷贝(序列化/反序列化); 方案诞生的背景 能不能把库函数调用的高性能优势做到 IPC 里面,降低进程间的事件通知和数据拷贝开销? 以go-go微服务 RPC 通信场景为例,该问题可以抽象为,如何高效地在两个 go runtime 间进行函数调用? RPAL(Run Process As Library) 方案,基于跨进程虚拟地址 共享,复用 epoll 网络模型,实现了纯用户态的事件轮询和无拷贝的指针读写接口。 从性能瓶颈的两点分析: 1. 异步线程唤醒: 关键在于如何最低限度降低线程唤醒的开销,非必要不通知事件。 2. 数据序列化/反序列化 需要做到跨进程的虚拟地址空间共享,通过传递指针来传递一切数据。 全进程地址空间共享与保护 第二部分 readv syscall 4. 仅在必要时调用 futex_wake (没有自旋线程 && 有 idle P) 高效的Go Event Poller 思考: 1. 为什么要异步唤醒 M 处理? 2. 是否有同步的 Go 函数调用方案? RPC 框架 Kitex 集成 第五部分 RPC 框架 Kitex 集成 指针读写抽象接口: 对象指针ACK RPC 框架 Kitex 集成
    0 码力 | 39 页 | 2.98 MB | 1 年前
    3
  • pdf文档 2.游戏战中陪伴助手微服务架构设计与应用

    战中陪伴助手介绍——和平精英最佳第五人 • 游戏战斗中指导 / 建议 • 闲聊、鼓励、攻略 • 取得战绩,赞赏一波 毫不留情! 三杀收下! 早期探索 第二部分 需求思考 • 我们的输入是什么? • 游戏对局事件 • Snapshot • Diffs • 玩家位置 • 安全区 • 航线 • …… • 掉血10点 • 开枪3发 • 敌人方位 • …… • 我们要怎么做? • 我们的输出是什么? 扩展 - 没有考虑扩展 功能 - 难以实现战略推荐 - 早期:先考虑有无 - 引入推荐系统 系统思考——如何评判方案的好坏? 需要定义几个维度来评判一个方案的好坏 - 响应性能: 获取事件到输出策略的延迟 - 服务器成本: 每服务千人成本越低越好 - 运营简易度: 设计新运营策略的难度 - 开发迭代: 如需开发介入,那么功能迭代的速度 - 可解释性: 理由是否能否说服玩家遵从建议 项目各角色成员密切配合,深度参与 - Token / 策略的设计开发可并行 - 运营可闭环策略设计,开发无需介入 方案详述——完整架构 先对整个架构有一个大概的认识 - 消息队列消费:解耦 MQ - Token 清洗:事件翻译和 token 计算 - 推荐系统:策略召回和推荐 - 数据分析:离线策略挖掘和模型训练 - 管理平台:开发、运营、运维辅助 实现方案——Token 清洗 Token 清洗服务完整流程
    0 码力 | 47 页 | 11.10 MB | 1 年前
    3
  • pdf文档 1.5 Go 语言构建高并发分布式系统实践

    阻塞解除,超时出错 对于所有io操作建⽴立的fd映射到指定loop,同 时记录上下⽂文关系进⾏行回调设置,超时控制 使⽤用timefd 通过channel与其他⽤用户通信 使⽤用eventfd事件通知的⽅方式,根据epoll获取 的fd绑定的回调函数和参数进⾏行回调操作 对外的通信采取阻io或者也可以go出去,不 阻塞主循环 对外通信信全局消息list,在映射到的 eventloop上开连接池进⾏行消耗 go语⾔言程序开发需要找到⼀一种平衡,既利⽤用协程带来的便利性⼜又做适当 集中化处理 套路:任务池集中数据合并请求、连接池+pipeline 利⽤用全双⼯工特性 经验⼀一 性能优化 性能优化:io集中处理 通信库 性能优化:io集中处理 通信库 性能优化:数据集中处理 性能优化:数据集中处理 go语⾔言开发追求开销 向⾮非常适⽤用 适⽤用 = 开发体验好 + 服务稳定 + 性能满⾜足需要 go语⾔言程序开发需要找到⼀一种平衡,既利⽤用协程带来的便利性⼜又做适当集中化处理 套路 = 按请求和业务逻辑并⾏行+任务池集中数据合并请求 + 连接池集中收发 go语⾔言开发追求开销优化的极限,谨慎引⼊入其他语⾔言领域⾼高性能服务的通⽤用⽅方案 内存池+对象池使⽤用
    0 码力 | 39 页 | 5.23 MB | 1 年前
    3
  • pdf文档 2-6-Golang 在 Baidu-FrontEnd 的应用-陶春华

    shooting 后台程序开发的需求(3) • 上线和运维 –对运行环境的依赖 –对库(动态库)的依赖 后台程序编程的难点 • 内存的管理 –C程序中很大比例的Bug和内容有关 • 分布式/高并发的处理 –10年前还是一个很hot的话题;目前也还没有普 遍掌握 –CPU资源的调度:Process/Thread/Event –数据的封装和互斥访问; –并行运算逻辑的同步 C vs Python – Python: 解释执行,动态类型 • 并发性能 – C:直接用系统的机制 – Python: 自己实现的thread, 只能使用一个CPU • 开发效率 – 相差5-10倍 – 内存的处理是一个难点 – dict/map, list C vs Python (2) • 大型程序的组织 – C: 无namespace • 可测试能力 – C、python都有*Unit测试框架 防攻击、流量调度、数据分析 • 业务现状 • 覆盖大部分重要产品 • 日请求量千亿级别 接入与转发 防攻击 流量调度 数据分析 BFE 为什么重写BFE • 现存问题 –修改成本高 • 事件驱动的编程模型:编码和调试难度大 • C语言本身的难度和开发效率 –配置管理方式落后 • 为单产品线设计,无法支持平台化要求 • 配置变更(修改、重载、验证)能力差 –变更和稳定性的矛盾 •
    0 码力 | 35 页 | 730.17 KB | 1 年前
    3
共 57 条
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
前往
页
相关搜索词
Go工程实践错误处理错误处理数据据库数据库中间中间件应用2.1Golang主动动式主动式内存缓存优化探索Web编程原生边云协同AI框架如何消除程序竞争周光远IPC性能极致方案RPAL落地游戏战中陪伴助手服务架构构设设计架构设计1.5语言构建并发分布布式系统分布式分布式系统BaiduFrontEnd春华
IT文库
关于我们 文库协议 联系我们 意见反馈 免责声明
本站文档数据由用户上传或本站整理自互联网,不以营利为目的,供所有人免费下载和学习使用。如侵犯您的权益,请联系我们进行删除。
IT文库 ©1024 - 2025 | 站点地图
Powered By MOREDOC AI v3.3.0-beta.70
  • 关注我们的公众号【刻舟求荐】,给您不一样的精彩
    关注我们的公众号【刻舟求荐】,给您不一样的精彩