Go在数据库中间件的应用
Go在数据库中间件的应用 基础架构组/刘延允 liuyun827@foxmail.com 2017年9月 1 关于我 • 刘延允——酷狗音乐,基础架构组 • 数据库变更通知服务 • 酷狗消息队列 • 酷狗数据库中间件 • 主要工作:分布式存储、高可用、数据库 • 两年通信设备开发经验,四年互联网 • 五年C/C++使用经验,一年Golang 2 CONTENTS • 程序开发的需求 平滑上下线Mysql。 • 主备自动切换(主-主模式)。 • 分表设计——按照Hash分表 • 分表设计——按照范围分表(年、月、日、整形) • 数据库表在多个mysql实例间平滑扩容 • 大表拆分为多个子表情况下的平滑扩容 7 系统整体方案 • 现存问题 • 数据库访问基本采用直连方式 • 无法满足数据访问平台化要求 • 配置管理方式落后,运维压力大 • 为什么采用Go来实现 • go诸多优点,可用性高0 码力 | 17 页 | 4.02 MB | 1 年前34.GPT 与数据库的生态整合
GPT 与数据库的生态整合 王琦智 PingCAP TiDB 开发者生态高级工程师 目 录 自然语言到 SQL 01 自然语言到图表 02 GPTs 调用数据库 API 03 总结 04 自然语言到SQL OSS Insight 自然语言到图表 Thoughts to insights made easy(with AI) GPTs 调用数据库 API Thank You0 码力 | 21 页 | 3.33 MB | 1 年前3Go 构建大型开源分布式数据库技术内幕
Go 搭建大型开源分布式数据库技术内幕 shenli@PingCAP 关于我 ● 申砾 (Shen Li) ● TiDB 技术负责人 ● 网易有道 / 360搜索 / PingCAP ● Infrastructure software engineer 为什么需要一个新的数据库? 从单机数据库到 NewSQL ● 关系型数据库 ● NoSQL ● 中间件 ● NewSQL Processing) ● 24/7 availability, even in case of datacenter outages ● Open source, of course 如何构建分布式数据库? 原则 ● 分层 ● Make it right and make it fast. ● 测试很重要 ● 简单易用 ● 和社区结合 架构 TiKV TiKV TiKV TiKV Raft0 码力 | 44 页 | 649.68 KB | 1 年前3Go Web编程
4.3 预防跨站脚本 4.4 防止多次递交表单 4.5 处理文件上传 4.6 小结 5.访问数据库 5.1 database/sql接口 5.2 使用MySQL数据库 5.3 使用SQLite数据库 5.4 使用PostgreSQL数据库 5.5 使用beedb库进行ORM开发 5.6 NOSQL数据库操作 5.7 小结 6.session和数据存储 6.1 session和cookie POST, PUT等method信息。 102 login函数中我们根据r.Method来判断是显示登录界面还是处理登录逻辑。当GET方式请求时显示登录界面,其他方 式请求时则处理登录逻辑,如查询数据库、验证登录信息等。 当我们在浏览器里面打开http://127.0.0.1:9090/login的时候,出现如下界面 图4.1 用户登录界面 我们输入用户名和密码之后发现在服务器端 下一章: 访问数据库 114 5 访问数据库 5 访问数据库 对许多Web应用程序而言,数据库都是其核心所在。数据库几乎可以用来存储你想查询和修改的任何信息,比如用户 信息、产品目录或者新闻列表等。 Go没有内置的驱动支持任何的数据库,但是Go定义了database/sql接口,用户可以基于驱动接口开发相应数据库的驱 动,5.1小节里面介绍Go设计的一些驱动,介绍Go是如何设计数据库驱动接口的。50 码力 | 295 页 | 5.91 MB | 1 年前35 How to integrate Graph mode into RDBMS smoothly
如何将图模型整合到已有 关系型数据库中? 龙恒 PingCAP Staff Software Engineer 目 录 图数据库 01 关系型数据库 02 图 + 关系型多模数据库 03 DEMO 04 特性 05 Benchmark 06 图数据库 第一部分 图数据库 01. 副标题 目前常见的使用图数据库场景有: ● 风控(欺诈检测/反洗钱) ● 图神经网络 图神经网络 ● 知识图谱 ● 社交网络 目前的问题 01. 副标题 ● 对于复杂的关系网络,传统关系型数据库无能为力 ● 单独部署图数据库集群 ● 部署运维两套数据库集群成本太高 ● 在两个不同的数据库中数据一致性不能保障 探索方向 01. 副标题 TiGraph 项目尝试验证在分布式关系型数据中无缝集成图模式: ● 同时包含关系型模型和图模型 ● 同一个事务中操作图数据和关系型数据的能力 同一个事务中操作图数据和关系型数据的能力 ● 将图遍历作为 SQL 子查询(反之亦然) ● 在 SQL 中扩展出一个让 DBA 一眼就能学会的图遍历语法 ● 对于 N 度人脉的场景性能对比 关系型数据库 第二部分 关系型数据库本质 01. 副标题 计算层 CREATE TABLE user_table ( id INT PRIMARY KEY, name VARCHAR(64), email VARCHAR(1024)0 码力 | 26 页 | 1.14 MB | 1 年前31.1 Go语言游戏项目应用情况汇报
开发效率要求⾼高(每周⼀一更) • 运维效率要求⾼高(最好是别运维。。。) 我们做了哪些事情 • 通讯层:协议描述语⾔言以及代码⾃自动⽣生成 • 业务层:顺序结构以及接⼝口注册 • 数据层:映射MySQL的内存数据库以及代码⾃自动⽣生成 通讯层 • 通讯协议描述⽂文档的格式选择 • XML、JSON • Protobuf • ⾃自定义语法 • 可视化编辑 通讯协议描述⽂文档⽚片段 通讯协议解包封包代码⽚片段 数据层 • 玩家数据库切⽚片,减⼩小查询时的集合 • ⽀支持内存事务 • 以事务为单位同步到数据库 • ⽀支持Redo、Undo以及数据挖掘的同步⽇日志 • GC优化 内存数据库代码⽚片段 内存数据库事务(⽰示意) 内存数据库事务回滚 事务⽇日志(⽰示意) 使⽤用lua脚本对同步⽇日志进⾏行数据挖掘 内存数据库的GC优化 - CGO 内存数据库的GC优化 - 数据读取 数据读取 内存数据库的GC优化 - 数据存⼊入 谢谢⼤大家0 码力 | 21 页 | 1.63 MB | 1 年前3基于Go的大数据平台-党合萱
Service API / Portal / 消息 消息 计算 计算 消息 导出任务 导出任务 导出任务 导出任务 导出任务 计算 消息 对象存储服务 HTTP MongoDB 时序数据库 ⽇日志检索服务 XSpark Report Studio 简单 · 可信赖 内容提要 • 系统设计分析与架构 • 多种上下游适配 • ⾼高吞吐/低延迟问题探究 • ⾼高可⽤用与⽔水平扩展 简单 · 可信赖 ⾃自动化运维 简单 · 可信赖 监控⽅方案 • logkit:七⽜牛pandora团队开发的纯go语⾔言数据收集、推 送⼯工具,⽀支持多种数据源,⾼高效易易⽤用 • 时序数据库(TSDB):兼容influxdb,适配grafana 简单 · 可信赖 系统热点⾃自动感知与调整 • ⼀一⽅方⾯面依靠⽇日志对服务做审计、趋势预测,宏观上预知 热点所在 • 另⼀一⽅方⾯面依 • 实时的可视化监控系统 • 易易⽤用的报警系统 • ⾃自动⽣生成线上⽇日报 简单 · 可信赖 Go的应⽤用 我们⽤用Golang做了了些什什么 • 流式计算、离线计算、⽇日志检索、时序数据库等⼀一整套服务的核⼼心代码都使⽤用 Golang开发 • 简单、⾼高效、易易⽤用的数据接⼊入⼯工具logkit,除了了pandora之外可以接⼊入多种数据 库、kafka、机器器metric信息等等0 码力 | 34 页 | 1.26 MB | 1 年前32.1.1 Golang主动式内存缓存的优化探索之路
• 数据太多,内存不够用,如何进行存储扩展? 通过本次分享,可以带来哪些收获? 难点攻克 第二部分 使用内存缓存 数据一致性如何保证? 一致性 01. 缓存如何保证更新,如何与数据库同步 同步、更新 被动方式 缓存过期 定期同步 主动方式 监听数据变化 数据加载,更新 02. 全量数据加载,增量数据监听 • 每个应用服务分别消费数据变更消息 近600倍 主动式内存缓存框架 第三部分 技术全景图 01. 主动式内存缓存架构的技术全景图 数据中心、数据源 02. 分布式部署,解决海量数据的传输、加载 数据全量加载时,缓解数据库压力 链路优化 优化 协议 编码 空值剔除 数据存储、数据传输 带宽减少40% 2GB -> 1.2GB MaxwellConsumer 03. 通过golang接口的方式,实现业务与框架代码分离 主动式内存缓存框架,增加研发效率,为业务赋能 业务代码与框架代码分离,聚焦业务开发 缓存接入成本低,无需关注内部的管理,开箱即用 提供灵活的查询、过滤、排序、分页等接口,为查询业务赋能 开发者无需关注缓存与数据库的数据一致性,框架层面有保障 框架提供脚手架,框架代码自动生成,减少心智负担 海量数据可扩展,接入冷热数据交换策略,只需简单配置 海量数据存储,不会触发GC扫描,服务性能无压力 0 码力 | 48 页 | 6.06 MB | 1 年前3GoFrame框架介绍及设计
Go Modules管理方式 • 开发工具链 • 设计模式:MVC、三层架构、工具集 • 应用接口:HTTP/TCP/UDP/RPC Server、终端应用、源码接口 • 数据库类型:通过标准库驱动接口支持多种数据库类型 • 跨平台性:基于Golang开发语言强大跨平台特性 框架介绍-项目初心 工程化建设 统一框架 核心组件 项目架构 设计模式 开发规范 开发文档 开发工具 …… 对具体问题进行逻辑判断与执行操作。 数据访问层 - DAL 实现数据的增删改查等操作,并将操作结果反馈到业务逻辑层 BLL。 模型定义层 - Model 也常用Entity实体对象来表示,主要用于数据库表的映射对象。 代码分层设计-项目代码结构 对象封装设计 第五部分 • 包与对象封装 • 资源明明规范 • 对象封装示例 • 对象访问安全 对象封装设计-包与对象封装 痛点: •0 码力 | 37 页 | 8.84 MB | 1 年前303. Golang 在隐私计算平台建设中的实践 - 刘敬
算,利利⽤用密码学算法达到“明 ⽂文数据不不出本地,计算结果定 向汇集”的数据计算效果,解 决隐私数据难使⽤用的问题。 区块链节点 隐私计算节点 本地数据库 发起⽅方节点 隐私计算节点 本地数据库 参与⽅方节点A 隐私计算节点 本地数据库 参与⽅方节点B 1.创建任务 2.完善⼦子模型 并分发 3. 权限校验 5. 执⾏行行隐私计 算算法 4.模型审核 6.返回隐私计算结果0 码力 | 37 页 | 6.20 MB | 1 年前3
共 35 条
- 1
- 2
- 3
- 4