Go在数据库中间件的应用## Go在数据库中间件的应用 基础架构组/刘延允 liuyun827@foxmail.com 2017年9月 K 酷狗音乐 ## 关于我 • 刘延允——酷狗音乐,基础架构组 • 数据库变更通知服务 • 酷狗消息队列 • 酷狗数据库中间件 • 主要工作:分布式存储、高可用、数据库 • 两年通信设备开发经验,四年互联网 • 五年C/C++使用经验,一年Golang ## 内容提要 内容提要 ## CONTENTS • 程序开发的需求 • GoLang特性 - Go开发mysql中间件 - 整体方案 - 分表路由 - 故障切换 - 平滑扩容 - 系统运维 ## 程序开发的需求 • 语言特性精炼,容易入门 • 开发效率高,代码逻辑清晰 • 运行性能强,节省机器资源 • 部署维护方便 • 生态圈完善 ## Golang特性 • Go语法简练;没有学习压力 channel;简单的并发与简易的数据同步 ## 系统整体方案 ## • 系统框架图  整套系统致力于提供一套mysql分布式解决方案,上层应用就跟使用单机mysql一样接入本系统(部分SQL语句不支持)。 ## 系统整体方案 ## • 系统功能 • 读写分离。0 码力 | 17 页 | 4.02 MB | 2 年前3
消息中间件RocketMQ原理解析 - 斩秋sendWhichQueue 加一来实现对所有 queue 的轮询。如果入参 lastBrokerName 不为空,代表上次选择的 queue 发送失败,这次选择应该避开同一个 queue。 3)Producer 发消息系统重试: 发送失败后,重试几次 retryTimesWhenSendFailed = 2 发送消息超时 sendMsgTimeout = 3000 Producer 通过 prepared 事物回查 producer 端 redolog 这个队列其实标记消费到哪了,事物状态的恢复根本上是有 commitlog 来做的 ## 第二章 consumer 有别于其他消息中间件由 broker 做负载均衡并主动向 consumer 投递消息,RocketMq 是基于拉模式拉取消息,consumer 做负载均衡并通过长轮询向 broker 拉消息。 Consumer 消费拉取的消息的方式有两种 已经提供了很全面的实现,consumer 通过长轮询拉取消息后回调 MessageListener 接口实现完成消费,应用系统只要 MessageListener 完成业务逻辑即可 2. Pull 方式:完全由业务系统去控制,定时拉取消息,指定队列消费等等,当然这里需要业务系统去根据自己的业务需求去实现 下面介绍默认以 push 方式为主,因为绝大多数是由 push 消费方式来使用 rocketmq0 码力 | 57 页 | 2.39 MB | 1 年前3
24-云原生中间件之道-高磊## 云原生中间件之道 ## 云原生产品与架构系列讲座·第3讲  高磊 曾任阿里巴巴、华为架构师、深信服云原生产品规划主管 12月1日(周三)晚8点 互动平台:腾讯文档  代码安全合规检测系统 开源软件安全检测系统 移动应用安全检测系统 Operate&Monitor 自适应应用防护系统 安全基线核查系统 全生命周期漏洞管理 综合安全扫描系统 应用安全态势感知系统 任务管理工具: Jira 源代码管理工具: Github, Bitbucket, Gitlab /1/0/a/a10a36a4c01a42e0c11dece9f73ed275/p4_3.jpg) 安全右移是为了恰到好处的安全,一些非严重安全问题,没有必要堵塞主研发流程,可以交于线上安全防御系统。提高了整体实施效率! 安全编排自动化和响应作为连接各个环节的桥梁,安全管理人员或者部分由AIOps组件可以从全局视角观察,动态调整策略,解决新问题并及时隔离或者解决! DevSecOps 标准0 码力 | 22 页 | 4.39 MB | 1 年前3
TypeScript 类型系统## TypeScript 类型系统 分享人:陈文岗 学校:中国科学院大学 2021年1月21日 ## 关于TypeScript TypeScript是微软推出的JavaScript静态类型版本,它是JavaScript的超集,可以编译为纯粹的JavaScript TypeScript How Does TypeScript Work? TypeScript file.ts JavaScript // unknown类型(Top Type) let foo: unknown; // never类型(Bottom Type) let bar: never; ## TypeScript 结构类型系统 #include#include using namespace std; struct Person1 { string name; of local variable 'p1' to 'Person2' ↔ More actions... Person2 p2 = p1; } ## 标明类型系统 即使两个类的结构完全一致,也不能互相赋值 interface Person1 { name: string; age: number; } interface Person2 { 0 码力 | 25 页 | 1.27 MB | 2 年前3
CurveFs 用户权限系统调研CurveFs 用户权限系统调研(已实现) ## 一、 Curvefs测试 • 1. 启动curvefs • 问题1:root用户无法访问挂载目录 • 测试 allow root - 测试allow_other • 参考文献 - 问题2:本地文件系统挂载默认是共享的? - 问题3:文件系统访问控制是在哪一层实现的? ## 二、 文件系统权限管理 • 文件类型 • 文件权限 文件权限 • 特殊权限 (SUID, SGID, STICKY) - 文件默认权限mask - 用户&用户组 - 文件系统用户权限管理 - 对mode的管理 - 对ACL(Access Control Lists)的管理 - ACL Access Entry保存在哪? • ACL的表示 • 内存中的ACL 是如何与具体的 Inode 相关联 • • 如何存储和获取ACL信息 • Inode权限校验 • chmod、chown、setfacl、getfacl接口文件系统自己如何实现 • 结论: • 参考文献: ## 一、 Curvefs测试 代码:https://github.com/cw123/curve/tree/fs_s3_joint_debugging 环境:test2 ### 1. 启动curvefs0 码力 | 33 页 | 732.13 KB | 1 年前3
2.6 用Go构建高性能数据库中间件- 徐成选用Go构建高性能数据库中间件 徐成选 小米商城 xuchengxuan@xiaomi.com 探探 Gopher China 2019 自我介绍 15年初开始使用Go,被Go的生产力、性能所吸引 微服务 数据库、缓存中间件 其他一些偏业务基础服务,例如:库存代理、人群服务、ID生成器等 ’ alt=‘OCR图片’/> Agenda Go in XiaoMi Gaea简介 XiaoMi 14年引入Go,最初解决日志收集问题,后来开发了大秒 商城、有品、金融、IoT、电视、云平台等部门 中间件、微服务体系、云计算、运维平台、业务系统等等 基于koala的微服务数百个,商城的后端系统都有Go的身影,包括订单、活动等非常核心的系统。 ’ alt=‘OCR图片’/> Gaea背景 内部mycat黑盒使用、不能及时定位问题 连接超时、Load过高、内存溢出 并发友好:one connection per goroutine 开发效率高 工具丰富 kingshard、vitess、tidb等优秀项目 团队Go经验比较丰富,也一直很喜欢用Go开发系统 ’ alt=‘OCR图片’/> 配置热加载 动静分离 端口 etcd信息 log信息 会话参数 实例信息分库分表规则用户信息读写分离连接池配置 . ’ alt=‘OCR图片’/> 方案一 configAtomic0 码力 | 32 页 | 13.83 MB | 1 月前3
分布式任务系统cronsun## 分布式任务系统 cronsun 苏创绩 ## 目录 01 任务系统 02 分布式任务系统 03 cron sun 04 心得体会   ## 01 Part One 任务系统 ## 任务 1. 什么时间 2. 什么地点 3. 做什么事 ## 一 个简单的任务  星期数,范围:0-7(0和7都是星期天) e42541490db6c0e/p6_1.jpg) crontab cmd1 cmd2 cmd3 ## 早期的 cron V7, 1979 1. 在Version 7 Unix里是一个系统服务 2. 只用 root 运行任务 3. 算法简单直接 ## 早期的 cron 运行逻辑 1. 读 /usr/lib/crontab 文件 2. 如果有命令要在当前时间执行,就用 root0 码力 | 48 页 | 1.52 MB | 2 年前3
声明式自愈系统——高可用分布式系统的设计之道-王昕## 声明式自愈系统——高可用分布式系统的设计之道 王昕 高级技术专家 全球技术领导力峰会 # 500+高端科技领导者与你一起探讨 技术、管理与商业那些事儿 2019年6月14–15日 上海圣诺亚皇冠假日酒店   ## TABLE OF CONTENTS 大纲 电商消息业务场景 电商消息系统架构 电商消息核心技术和挑战 电商消息全链路稳定性保障 电商消息全链路稳定性保障 电商消息系统未来展望 • Q&A  ## 电商消息业务场景 场景:社交互动、生意沟通、交易提醒、优惠通知、品牌资讯 目标:打造新零售业务商业连接,帮助消费者进行消费决策 ## 活动 9月会员日来袭 U 童装上新,网红爆款玩具等你来玩0 码力 | 22 页 | 12.22 MB | 2 年前3
12-从数据库中间件到云原生——Apache ShardingSphere 架构演进-秦金卫## 从【数据库中间件】到【云原生】 ——Apache ShardingSphere 架构演进 Apache Dubbo/ShardingSphere PMC 秦金卫(kimmking) 2020-12-04 20:00 ## 1 摩尔定律失效 ## 分布式崛起  数据库中间件  数据网格 1. 水平扩展性 容量 (6.x+) Level 5: Sharding-Sidecar (5.x+) Level 4: Sharding-Scaling (4.x+) Level 3: Sharding-Proxy中间件 (3.x+) Level 2: Sharding-JDBC框架(1.x+) Level 1: MySQL数据库提供的能力 ## We're Here Now 云原生社区0 码力 | 23 页 | 1.91 MB | 1 年前3
共 1000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 100













