亿流量大考(1):日增上亿数据,把MySQL直接搞宕机了...

2023-11-17

V-xin:ruyuanhadeng获得600+页原创精品文章汇总PDF

一、背景引入

首先简单介绍一下项目背景,公司对合作商家提供一个付费级产品,这个商业产品背后涉及到数百人的研发团队协作开发,包括各种业务系统来提供很多强大的业务功能,同时在整个平台中包含了一个至关重要的核心数据产品,这个数据产品的定位是全方位支持用户的业务经营和快速决策。

这篇文章就聊聊这个数据产品背后对应的一套大型商家数据平台,看看这个平台在分布式、高并发、高可用、高性能、海量数据等技术挑战下的架构演进历程。

因为整套系统规模过于庞大,涉及研发人员很多,持续时间很长,文章难以表述出其中各种详细的技术细节以及方案,因此本文主要从整体架构演进的角度来阐述。

至于选择这个商家数据平台项目来聊架构演进过程,是因为这个平台基本跟业务耦合度较低,不像我们负责过的C端类的电商平台以及其他业务类平台有那么重的业务在里面,文章可以专注阐述技术架构的演进,不需要牵扯太多的业务细节。

此外,这个平台项目在笔者带的团队负责过的众多项目中,相对算比较简单的,但是前后又涉及到各种架构的演进过程,因此很适合通过文字的形式来展现出来。

二、商家数据平台的业务流程

下面几点,是这个数据产品最核心的业务流程:

  • 每天从用户使用的大量业务系统中实时的采集过来各种业务数据
  • 接着存储在自己的数据中心里
  • 然后实时的运算大量的几百行~上千行的SQL来生成各种数据报表
  • 最后就可以提供这些数据报表给用户来分析。

基本上用户在业务系统使用过程中,只要数据一有变动,立马就反馈到各种数据报表中,用户立马就可以看到数据报表中的各种变化,进而快速的指导自己的决策和管理。

整个过程,大家看看下面的图就明白了。

在这里插入图片描述

三、从0到1的过程中上线的最low版本

看着上面那张图好像非常的简单,是不是?

看整个过程,似乎数据平台只要想个办法把业务系统的数据采集过来,接着放在MySQL的各种表里,直接咔嚓一下运行100多个几百行的大SQL,然后SQL运行结果再写到另外一些MySQL的表里作为报表数据,接着用户直接点击报表页面查询MySQL里的报表数据,就可以了!

其实任何一个系统从0到1的过程,都是比较low的,刚开始为了快速开发出来这个数据平台,还真的就是用了这种架构来开发,大家看下面的图。

在这里插入图片描述

其实在刚开始业务量很小,请求量很小,数据量很小的时候,上面那种架构也没啥问题,还挺简单的。

我们直接基于自己研发的数据库binlog采集中间件(这个是另外一套复杂系统了,不在本文讨论的范围里,以后有机会可以聊聊),感知各个业务系统的数据库中的数据变更,毫秒级同步到数据平台自己的MySQL库里;

接着数据平台里做一些定时调度任务,每隔几秒钟就运行上百个复杂大SQL,计算各种报表的数据并将结果存储到MySQL库中;

最后用户只要对报表刷新一下,立马就可以从MySQL库里查到最新的报表数据。

基本上在无任何技术挑战的前提下,这套简易架构运行的会很顺畅,效果很好。然而,事情往往不是我们想的那么简单的,因为大家都知道国内那些互联网巨头公司最大的优势和资源之一,就是有丰富以及海量的C端用户以及B端的合作商家。

对C端用户&#x

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

亿流量大考(1):日增上亿数据,把MySQL直接搞宕机了... 的相关文章

随机推荐

  • 环境+代理配置+模块化

    1 模块化知识补充 1 1 模块化的基础 1 引入目录 默认引入目录中的index js文件 vuex modules a js b js index js 引入a js 引入 b js import store from vuex 是vu
  • Flutter(一)之Flutter的的简单入门分析

    前言 Flutter诞生于2018年 谷歌出品 应该是属于最新的移动跨平台开发框架了 从React Native自身框架的一些问题导致的用户量降低后 有很多小伙伴便转战Flutter战场 Flutter作为最新的跨移动平台开发框架 自然是汲
  • 使用Python,matplotlib绘制Nomogram列线图

    使用Python matplotlib绘制Nomogram列线图 1 效果图 2 源码 参考 这篇博客将介绍如何使用Python matplotlib绘制列线图 写这篇博客源于博友的提问 期望使用matplotlib绘制列线图如下 翻官网文
  • 浏览器访问.m3u8文件

    浏览器播放m3u8文件
  • PostgreSQL - tablefunc

    文章目录 创建扩展 tablefunc函数 1 normal rand 产生一个正态分布随机值 高斯分布 的集合 2 crosstab 行转列 1 3 crosstab 行转列 2 4 connectby 官方文档地址 创建扩展 creat
  • 关于 android 远程控制(pc 控制手机)

    因为手机的触屏有问题 需要通过pc来控制手机 试用 vnc viewer 没有成功 而且它是基于 wifi 的 然后不放弃 继续查找 终于发现 androidscreencast Desktop app to control an andr
  • Electron将Web页面打包成桌面应用实例

    上一篇文章 Electron vue脚手架改造vue项目 介绍了如何将Vue项目构建成桌面应用的方法 这篇文章将继续介绍Electron构建桌面项目 不仅仅局限于Vue项目 使用Vue项目做案例 只是目前做的Vue项目比较多 拿其中一个练手
  • 修改MySQL/MariaDB数据库root用户名和密码

    MySQL 5 7以下版本 更改密码 mysql u root p Enter password mysql gt use mysql 选择数据库 Database changed mysql gt update user set pass
  • Execl “此单元格中的数字为文本格式,或者其前面有撇号” 设成数字格式

    如何一次性批量将数字前面加上 撇 Excel批量设置数字转化成 以文本形式存储的数字 Excel批量为数值列加绿色小三角 正解 1 在数值前加个单撇号 2 选中列 进行分列操作 具体操作如下 选中该列 点击 菜单栏 中的 数据 分列 下一步
  • 谈谈修改寄存器默认值的几种方法和实现

    一 DFF的类型介绍 寄存器默认值 也叫复位值 是当reset或者set有效时寄存器输出的值 对于一个DFF来说 如下图 当reset为0时 Q输出0 当set为0时 Q输出为1 外部使用时保证reset与set不同时为0 图一 也就是说
  • 通俗易懂的Vue异步更新策略及 nextTick 原理

    最近在学习一些底层方面的知识 所以想做个系列尝试去聊聊这些比较复杂又很重要的知识点 学习就好比是座大山 只有自己去登山 才能看到不一样的风景 体会更加深刻 今天我们就来聊聊Vue中比较重要的异步更新策略及 nextTick 原理 在聊话题之
  • MySQL基础使用:入门指南

    MySQL是一种流行的关系型数据库管理系统 广泛应用于各种应用程序开发中 掌握MySQL的基础使用对于开发人员来说是非常重要的 在本博客中 我们将介绍MySQL的基本概念 常用命令和示例 帮助您入门MySQL数据库的使用 一 MySQL的基
  • 修复ie浏览器主页被360篡改

    一 环境 win10 二 问题 打开ie浏览器 发现主页被360篡改了 360我没有装过 怀疑是其他软件修改的 分析 浏览器主页被篡改 一般都是注册表被修改了 或者是启动程序里面有加载篡改主页 首先 看是否启动程序里面有加载篡改了主页 用右
  • Flutter容器组件之尺寸限制类容器(ConstrainedBox,SizedBox,UnconstrainedBox)

    尺寸限制类容器 尺寸限制类容器用于限制容器大小 Flutter中提供了多种这样的容器 如ConstrainedBox SizedBox UnconstrainedBox AspectRatio等 1 ConstrainedBox Const
  • 区块链Blockchain

    区块链Blockchain 区块链是分布式数据存储 点对点传输 共识机制 加密算法等计算机技术的新型应用模式 所谓共识机制是区块链系统中实现不同节点之间建立信任 获取权益的数学算法 狭义来讲 区块链是一种按照时间顺序将数据区块以顺序相连的方
  • STM32F103 实验按键输入与串口实验

    目录 本文 在上一章的基础上 将介绍如下内容 按键输入 串口实验 上一篇 STM32F103实验跑马灯与蜂鸣器 https blog csdn net qq 40318498 article details 95940254 正文 要进入按
  • 快速搭建超轻量级图床——Cpolar+和树洞外链

    文章目录 1 前言 2 树洞外链网站搭建 2 1 树洞外链下载和安装 2 2 树洞外链网页测试 2 3 cpolar的安装和注册 3 本地网页发布 3 1 Cpolar临时数据隧道 3 2 Cpolar稳定隧道 云端设置 3 3 Cpola
  • 通俗理解决策树算法中的信息增益(最朴实的大白话,保准能看懂)

    信息增益 文章目录 信息增益 概念 例子 结论 在决策树算法的学习过程中 信息增益是特征选择的一个重要指标 它定义为一个特征能够为分类系统带来多少信息 带来的信息越多 说明该 特征越重要 相应的信息增益也就越大 概念 信息熵是代表随机变量的
  • 性能测试之 cpu 篇

    目录 1 前言 2 1 cpu 介绍 2 1 1 上下文切换 2 1 2 运行队列 2 1 3 CPU 利用率 2 2 cpu 性能监控 2 2 1 vmstat 的使用 2 2 2 案例学习 持续的 CPU 利用率 2 2 3 案例学习
  • 亿流量大考(1):日增上亿数据,把MySQL直接搞宕机了...

    V xin ruyuanhadeng获得600 页原创精品文章汇总PDF 一 背景引入 首先简单介绍一下项目背景 公司对合作商家提供一个付费级产品 这个商业产品背后涉及到数百人的研发团队协作开发 包括各种业务系统来提供很多强大的业务功能 同