亿流量大考(4):自研ES+HBase+纯内存的高性能毫秒级查询引擎

2023-11-08

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

一、前情回顾

上篇文章(《亿流量大考(3):不加机器,如何抗住每天百亿级高并发流量?》)聊了一下系统架构中,百亿流量级别高并发写入场景下,如何承载这种高并发写入,同时如何在高并发写入的背景下还能保证系统的超高性能计算。

这篇文章咱们继续来聊一下,百亿级别的海量数据场景下还要支撑每秒十万级别的高并发查询,这个架构该如何演进和设计?

咱们先来看看目前系统已经演进到了什么样的架构,大家看看下面的图:

在这里插入图片描述

首先回顾一下,整个架构右侧部分演进到的那个程度,其实已经非常的不错了,因为百亿流量,每秒十万级并发写入的场景,使用MQ限流削峰、分布式KV集群给抗住了。

接着使用了计算与存储分离的架构,各个Slave计算节点会负责提取数据到内存中,基于自研的SQL内存计算引擎完成计算。同时采用了数据动静分离的架构,静态数据全部缓存,动态数据自动提取,保证了尽可能把网络请求开销降低到最低。

另外,通过自研的分布式系统架构,包括数据分片和计算任务分布式执行、弹性资源调度、分布式高容错机制、主备自动切换机制,都能保证整套系统的任意按需扩容,高性能、高可用的的运行。

下一步,咱们来研究研究架构里的左侧部分

二、日益膨胀的离线计算结果

其实大家会注意到,在左侧还有一个MySQL,那个MySQL就是用来承载实时计算结果和离线计算结果放在里面汇总的。

终端的商家用户就可以随意的查询MySQL里的数据分析结果,支撑自己的决策,他可以看当天的数据分析报告,也可以看历史上任何一段时期内的数据分析报告。

但是那个MySQL在早期可能还好一些,因为其实存放在这个MySQL里的数据量相对要小一些,毕竟是计算后的一些结果罢了。但是到了中后期,这个MySQL可是也岌岌可危了。


给大家举一个例子,离线计算链路里,如果每天增量数据是1000万,那么每天计算完以后的结果大概只有50

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

亿流量大考(4):自研ES+HBase+纯内存的高性能毫秒级查询引擎 的相关文章

  • Titan 加载弹性搜索问题

    我使用以下代码来加载泰坦 TitanFactory Builder config TitanFactory build config set storage backend berkeleyje config set storage dir
  • 使用 elasticsearch-dsl-py 对另一个字段中包含的字段创建术语查询

    我在用elasticsearch dsl py https github com elasticsearch elasticsearch dsl py并希望过滤包含在另一个术语中的术语 如下所示 slug foo foo slug bar
  • 使用elasticsearch按一天中的时间累积流量

    我正在接收来自大量客户端应用程序的请求 事件 我想使用elasticsearch 来找出我的最高流量点是什么时候 我尝试过的一件事是使用嵌套直方图进行过滤器聚合 然后使用嵌套的 术语 聚合 通过脚本字段获取一天中的不同时间 以下是我的尝试
  • ElasticSearch - 索引模板和索引模式有什么区别

    我在这里阅读了对我的问题的解释 https discuss elastic co t whats the differece Between index pattern and index template 54948 https disc
  • Elasticsearch 过滤器/计算嵌套字段

    我有带有嵌套字段的文档 如下所示 results id 1234 name asdf id 5678 name jkl ip 1 2 3 4 嵌套字段的映射如下所示 results type nested properties id typ
  • 如何用Python为ElasticSearch创建只读客户端?

    我想从 ES 读取数据 但不想意外向其中写入数据 无索引操作 这只是一种安全措施 以便以后修改查询函数的其他人不允许插入数据 当你说你想要只读客户端时 客户端强调您系统中的同一集群可能有其他客户端 然后阻止整个索引为只读将会阻止所有客户端的
  • 使elasticsearch中的所有对象嵌套对象

    是否可以让elasticsearch中的所有嵌套对象自动映射到默认嵌套的类型 而不是对象 是的 您可以使用以下方法来做到这一点动态模板 https www elastic co guide en elasticsearch referenc
  • Elastic Search 5.x 嵌套多个查询 C#

    我将 C 与这些 nuget 包一起使用
  • Python elasticsearch DSL 聚合/每个文档嵌套值的度量

    我试图找到 2 级嵌套中的最小值 每个文档单独的最小值 到目前为止 我能够进行聚合 计算搜索结果中所有嵌套值的最小值 但无需按文档进行分隔 我的示例架构 class MyExample DocType myexample id Intege
  • 在elasticsearch结果中显示不匹配的单词

    我想显示返回文档的多单词查询不匹配哪些单词 是否有查询类型或参数来实现此目的 通常 此类不匹配的单词会以删除线字体显示给用户 我得到答案后的示例查询 POST posts search query bool should match nam
  • Logstash删除类型并保留_type

    我有一个logstash 客户端和服务器 客户端将带有logstash的udp输出的日志文件发送到服务器 服务器也运行logstash来获取这些日志 在服务器上 我有一个 json 过滤器 它会在实际日志的字段中提取 json 格式的消息
  • 如何在 kibana 中自动配置索引模式

    是否可以在 kibana 中自动配置索引模式 要么通过一些设置文件 要么通过rest api 安装后可以手动完成 Kibana 5 x 公开了这样的 API 来管理索引模式 要创建索引模式 可以发出以下命令来 kibana 访问 url 只
  • 如何使用elasticsearch进行分页?来自 vs 滚动 API

    我使用elasticsearch作为数据库来存储大量日志数据 我知道有两种方法可以进行分页 使用大小并来自 API 使用滚动API 现在我使用 from 进行分页 从前端和后端获取页面和大小参数 Java searchSourceBuild
  • 局部敏感哈希 - Elasticsearch

    有没有允许在 Elasticsearch 上使用 LSH 的插件 如果是的话 您能否指出该位置并告诉我如何使用它 谢谢 编辑 我发现ES使用了MinHash插件 我怎样才能用这个来比较文件呢 查找重复项的最佳设置是什么 有一个Elastic
  • 从 Storm Bolt 将行插入 HBase

    我希望能够从分布式 非本地 Storm 拓扑将新条目写入 HBase 有一些 GitHub 项目提供以下任一功能 HBase 映射器 https github com ptgoetz storm hbase or 预制风暴螺栓 https
  • 计算 HBase 表中列族的记录数

    我正在寻找一个 HBase shell 命令来计算指定列族中的记录数 我知道我可以运行 echo scan table name hbase shell grep column family name wc l 然而 这将比标准计数命令运行
  • 在 ElasticSearch API 应用程序中找不到 NodeBuilder

    我正在尝试实现 Elasticsearch API 我的系统接受 nodeBuilder 时出现错误 这是代码 import org elasticsearch action index IndexResponse import org e
  • 无法使用docker在Apple Mac芯片M1上启动elasticsearch

    在发布这个问题之前 我浏览了许多链接 例如 Kibana 无法在 Mac M1 上使用 docker 连接到 ElasticSearch https stackoverflow com questions 73160632 kibana c
  • 在 Elasticsearch 中删除文件后回收磁盘空间

    当我从 Elasticsearch 中删除文档时 为什么我的 总大小 保持不变 尽管由于没有以前存储的数据而明显小得多 我读过有关索引优化的内容 但我不确定这是什么或如何做到这一点 Thanks 我确信 SO 和 Google 上都有大量与
  • Elastic Beanstalk 添加多个 ssl 证书

    我有一个 Docker Django api 应用程序 可以从多个域 abc xyx com 或 def lmn com 调用 我已从 Elastic beanstalk 中的配置控制台成功添加了 abc xyz com 的 ssl 证书

随机推荐

  • 什么是实体-联系图(ER图)

    实体 联系图 ER图 数据模型中包含3种相互关联的信息 数据对象 数据对象的属性及数据对象彼此间相互连接的关系 1 数据对象 数据对象是对软件必须理解的复合信息的抽象 所谓符合信息是指具有一系列不同性质或属性的事物 仅有单个值得事物 例如
  • 安天逆向教程——常用汇编语句

    一 汇编基础 二 条件分支 反汇编时更多关注这些条件分支 如果看懂这些条件分支 会对程序的大体逻辑有一个整体的了解 至于程序里面的细节 有时会省略掉 往往关键的跳转理解了甚至进行一点点的改动 就会使得程序发生翻天覆地的变化 三 栈和函数调用
  • PO模式-unittest

    PO模式是指将页面元素的定位以及元素的操作分离出来 测试用例脚本直接调用这些封装好的元素操作来组织测试用例 从而实现了测试用例脚本和元素定位 操作的分离 本文采用PO模式和unittest框架 对readmine系统执行了两条测试用例 文件
  • MATLAB三维绘图基础meshgrid函数的用法解析

    MATLAB三维绘图基础meshgrid函数的用法解析 MATLAB中meshgrid函数是用来生成网格的 函数用法是 X Y meshgrid x y 这种是最常用的一种用法 x和y分别是两个向量 使用示例 结果 A中的每个点对应的是x轴
  • STM32学习--中断

    这里写目录标题 什么是中断 中断的作用 中断的特点 STM32与中断 NVIC 中断通道 中断优先级 中断服务函数 SysTick中断 内核中断 SysTick中断函数 NVIC库函数 NVIC初始化函数 抢断优先级分组 USART使能中断
  • 博客是个好东西

    到底有么有必要写blog 从热情到荒废 最近几年老觉得个人写blog是个费时费力的事情 所以荒废了好长时间没有写blog了 加之CSDN那几年不思进取 博客搞得一塌糊涂 维护起来麻烦的很 所以更是转到博客园去了 但是 但是 随着工作的事情越
  • C# webBrowser

    webBrowser功能 10 屏蔽脚本错误 将WebBrowser控件ScriptErrorsSuppressed设置为True即可 webBrowser1 ScriptErrorsSuppressed true HtmlElementC
  • ubuntu制作开机自启动service

    我们在使用java时 常常需要把jar包设置为开机自启动 保证机器在断电重启后仍然能正常的执行jar提供的服务 在部署再ubuntu系统中的操作过程如下 1 上传jar到指定的路径下 如上传到 home test jarTest test
  • Markdown操作——代码块内如何添加代码块+如何引用代码块符号

    目录 例子 尝试 用途 例子 以引用Markdown的数学公式为例 预览 E mc 2 这是个数学公式 但是想打出源代码 比如说想介绍一下这个代码的使用 的时候却不知道该怎么操作了 其实有的人想到了 直接在外面再加上 那就可以了吧 备注 c
  • Mysql实战详解15:mysql错误Please use SHOW DDL to check it, and then recover or rollback it

    4644 129f3d45d0265000 100 64 106 105 3306 common counter ERR CODE TDDL 4644 ERR PENDING DDL JOB EXISTS Another DDL job 1
  • 重磅!中国网络空间安全协会发布《2020年中国网络安全产业统计报告》

    6月29日 中国网络空间安全协会 以下简称 协会 发布了 2020年中国网络安全产业统计报告 以下简称 报告 共有4000余人出席线上发布会 报告 对国内绝大多数具备网络安全技术和产品自有研发能力的网络安全企业进行了梳理 统计和分析 力图全
  • ASP.NET页面之间传值的五种常用方法

    1 使用QueryString变量 QueryString是一种非常简单的传值方式 他可以将传送的值显示在浏览器的地址栏中 如果是传递一个或多个安全性要求不高或是结构简单的数值时 可以使用这个方法 但是对于传递数组或对象的话 就不能用这个方
  • Linux下GDB中的 attach pid 如何使用?

    linux下使用gdb可以很好的跟踪代码 当然 让我觉得神奇的是它竟然能跟踪正在运行的进程 下面 我将用我的例子演示一下怎么使用的 第一步 获得正在运行的进程的进程号 ps ef grep lt 进程名 gt 我的就是 找到该进程的进程id
  • O(nlogn)在数组S中找存在相加可得到x的算法

    题目 设计一个运行时间为O nlogn 算法 给定n个整数的集合S和另一个整数x 该算法能确定S中是否存在两个和相加刚好为x 的元素 思想 O nlogn O n O nlogn O nlogn 就是快排的时间复杂度 O n 就是查找的时间
  • 因果推断学习笔记(一)

    在日常生活中 我们常常会用到因果推断 比如 你淋雨了 赶紧去洗澡 不然容易着凉 感冒 这里我们认为淋雨是感冒的因 通过原因 来推断可能得结果 我拉肚子了 可能是昨天海鲜吃多了 这里我们认为海鲜吃多了是拉肚子的因 并且通过拉肚子反推可能得原因
  • N皇后问题

    久闻N皇后问题在算法界的赫赫大名 今天晚上有空我也来试一下 ps 至于我的作业 哈哈哈 请读者自行领悟 一 问题描述 在n n格的棋盘上放置彼此不受攻击的n个皇后 按照国际象棋的规则 皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子 n
  • 工作组 文件服务器,工作组文件服务器

    工作组文件服务器 内容精选 换一换 媒体处理包括媒体素材的上传 下载 编目 节目转码和数据归档等工作 涉及音视频数据的存储 调用和管理 根据其业务特性对共享的文件系统有如下要求 媒体素材的视频码率高 文件规模大 要求文件系统容量大且易于扩展
  • 琢磨下python装饰器的例子

    首先得强调 python中的引用是无处不在的 建议先看引文再回来琢磨例子 简单概括装饰器 对象 装饰器名字 A 任意函数名字 B 装饰语句 A B 若执行函数B B 则可理解为 带有 A的语句可将函数B 被装饰函数 作为参数传入A 装饰器
  • 【转】英文论文审稿意见汇总

    转自 海岩秋沙 的QQ空间 以下是从一个朋友转载来的 关于英文投稿过程中编辑给出的意见 与大家一起分享 以下12点无轻重主次之分 每一点内容由总结性标题和代表性审稿人意见构成 1 目标和结果不清晰 It is noted that your
  • 亿流量大考(4):自研ES+HBase+纯内存的高性能毫秒级查询引擎

    V xin ruyuanhadeng获得600 页原创精品文章汇总PDF 一 前情回顾 上篇文章 亿流量大考 3 不加机器 如何抗住每天百亿级高并发流量 聊了一下系统架构中 百亿流量级别高并发写入场景下 如何承载这种高并发写入 同时如何在高