当前位置: 首页 > news >正文

34.1 uber开源的m3db简介

本节重点介绍 :

  • m3db自己的定位
  • m3db自己的架构
  • m3db自己的组件

两句话简介

  • M3最初是在优步开发的,目的是提供对优步业务运营,微服务和基础架构的可视性
  • 由于M3具有轻松进行水平扩展的能力,因此它为所有监视用例提供了一个集中式存储解决方案。

m3db地址

  • githubhttps://github.com/m3db/m3
  • 官方文档https://m3db.io/

m3db自己的定位

m3db_01.png

m3db_02.png

历史

  • 2014年,经过数年与基于Graphite和WhisperDB的传统指标平台的对抗之后,Uber的Observability团队开始开发一个开源指标平台
  • 该平台将被称为M3。该项目的目标是为团队提供一个高度可用的集中式指标平台,该平台可以轻松地与现有工具集成。

存储发展过程

  • 存储层的第一个迭代以Cassandra和ElasticSearch为特色
  • 但是,随着打车业务进入高速增长阶段,在Graphite和WhisperDB年代曾困扰团队的交火重新浮出水面
  • 然后,团队决定从头开始构建M3DB,这是一个具有嵌入式反向索引的自定义时间序列数据库,这成为了平台的基础
  • 在大约一年半的时间里,M3DB是在Uber上开发和推出的。

查询问题

  • OOM和缓慢的查询已成为常见现象,这使团队无法有效地监视其服务
  • 名为M3Query的新查询引擎利用了M3DB将数据存储在高度压缩的块中的事实,并在延迟应用函数时一次将数据客户端的一个数据点解压缩
  • 这些优化可最大程度地减少网络,计算和内存资源
  • 支持PromQL和传统Graphite语言的新查询引擎为团队提供了一种非常快速和强大的方法来深入了解其指标

采集问题

  • 随着要摄取的指标数量的激增,很明显,在数据存储策略方面,没有一种万能的方法
  • 不同的团队希望将其指标存储在不同的分辨率和保留期限内
  • 例如,基础架构团队需要以非常高的分辨率(但时间不能太长)存储度量
  • 相反,业务团队不需要精细的粒度,但希望将数据保留更长的时间
  • 该解决方案是M3Coordinator和M3Aggregator这两个组件的组合,它们协同工作以获取指标并以高度可定制的方式聚合它们,同时提供高可用性和效率

架构图

m3db_arch01.png

m3db_arch02.png

组件说明

M3 Coordinator

  • M3协调器是一项服务,用于协调上游系统(例如Prometheus)和M3DB之间的读写
  • 它是用户可以部署以访问M3DB好处的桥梁,例如长期存储和与其他监视系统(例如Prometheus)的多DC设置

m3db

  • M3DB是一个分布式时间序列数据库,提供可伸缩的存储和时间序列的反向索引
  • 它被优化为具有成本效益的,可靠的实时和长期保留指标存储和索引

m3query

  • M3 Query是一个分布式查询引擎,用于查询存储在M3DB节点中的实时和历史数据,支持多种查询语言
  • 它旨在支持低延迟的实时查询和执行时间可能更长的查询,这些数据可以聚合用于分析用例的较大数据集
  • 例如,如果您将Prometheus远程写端点与M3 Coordinator一起使用,则可以使用M3 Query代替Prometheus远程读端点
  • 这样,您可以获得M3 Query引擎的所有好处,例如块处理。由于M3 Query提供了与Prometheus兼容的API,因此您可以使用第三方制图和警报解决方案,例如Grafana

m3aggregator

  • M3聚合器是专用的度量标准聚合器,可在将度量标准存储在M3DB节点中之前提供基于状态的基于流的下采样。它使用存储在etcd中的动态规则。
  • 它使用领导者选举和聚集窗口跟踪,利用etcd来管理此状态,以可靠的方式将一次至少一次的聚集可靠地发送给长期存储的降采样指标。这提供了具有成本效益的,可靠的下采样和指标汇总。
  • M3协调器也可以执行此角色,但是M3聚合器可以分片和复制指标,而M3协调器则不是,并且需要谨慎地以高度可用的方式进行部署和运行。
  • 与M3DB相似,M3 Aggregator默认情况下支持集群和复制。这意味着度量标准已正确路由到负责聚合每个度量标准的实例,并且您可以配置多个M3 Aggregator副本,以使聚合没有单点故障。

本节重点总结 :

  • m3db自己的定位
  • m3db自己的架构
  • m3db自己的组件

相关文章:

34.1 uber开源的m3db简介

本节重点介绍 : m3db自己的定位m3db自己的架构m3db自己的组件 两句话简介 M3最初是在优步开发的,目的是提供对优步业务运营,微服务和基础架构的可视性由于M3具有轻松进行水平扩展的能力,因此它为所有监视用例提供了一个集中式存储解决方案…...

MATLAB 最小二乘点云拟合球 (89)

MATLAB 最小二乘点云拟合球 (89) 一、算法介绍二、算法实现1.代码2.结果这是缘,亦是最美的相见 一、算法介绍 球面拟合算法是一种通过数学方法将一组三维点(通常在三维空间中分布)拟合到一个理想的球形表面上。这个过程通常涉及使用最小二乘法来最小化实际数据点与拟合的…...

【Altium Designer 】AD如何使用嘉立创元器件的3D封装

1.下载3D封装 以STM32F407VGT6为例,进入嘉立创商城网站,找到需要的元器件封装 复制编号,打开嘉立创EDA,编译器选择专业版,新建工程,点击PCB1 复制编号在搜索框中,点击搜索,然后放置…...

G15沈海高速茶白高架自动化监测

1. 项目简介 G15 沈海高速公路北起辽宁省沈阳市苏家屯区金宝台枢纽,与沈阳市绕城高速公路(国家高速 G1501)相接,南至海南省海口市秀英区粤海枢纽,与海南地区环线高速公路(国家高速 G98)相交&am…...

网站从渗透到mssql提权全过程

2|0渗透全过程 1.信息收集-端口探测 1)Nmap端口探测:namp -sS -p 1-65535 172.16.12.103 可以看到端口开放情况 2.判断系统情况 根据端口情况初步判定为IISmssql.net系统,访问web站点URL应该为:http:172.16.12.103:27689 访问…...

Qt多线程与QTimer详解

引用 Qt多线程中使用QTimer(常见问题汇总) [多线程]多线程使用QTimer Qt::ConnectionType:Qt不同类型connect的详细区别说明与应用 Qt的4种多线程实现方式 一文搞定之Qt多线程(QThread、moveToThread) QTimer The QTimer class provides repe…...

基于stm23的智慧宿舍系统 (DAY10)_小程序

好久没记录开发进度了,今天小程序差不多开发完了,UI这块算是比较常见了,主要功能是能连接onenet查看设备上传的数据,同时也能对设备进行一些控制下面是几个主要的函数,功能比较简单 wx.request({url: ${apiBaseUrl}/t…...

深入理解Spring事务

目录 什么是Spring事务为什么需要Spring事务Spring事务的实现 Spring事务的传播机制Spring事务的底层原理 EnableTransactionManagement --开启Spring管理事务Import(TransactionManagementConfigurationSelector.class) --提供两个beanAutoProxyRegistrar --启用AOP的功能&am…...

Ubuntu22.04深度学习环境安装【Anaconda+Pycharm】

anaconda可以提供多个独立的虚拟环境,方便我们学习深度学习(比如复现论文); Pycharm编辑器可以高效的编写python代码,也是一个很不错的工具。 下面就记录下Ubuntu22.04的安装流程: 1.Anaconda安装 下载Ana…...

五、docker的网络模式

五、docker的网络模式 5.1 Docker的四种网络模式 当你安装docker时,它会自动创建三个网络,可使用如下命令查看: [rootlocalhost ~]# docker network ls NETWORK ID NAME DRIVER SCOPE 7390284b02d6 bridge bridge lo…...

使用el-row和el-col混合table设计栅格化,实现表头自适应宽度,表格高度占位

演示效果: 如上图,由于地址信息很长,需要占多个格子,所以需要错开,若想实现这种混合效果,可以这样搭建: 页面效果: 代码分析: 上面使用el-row和el-col搭建表单显示 第一排三个8,第二排8和16 下面混合table实现,并使用border来自适应宽度…...

【服务器监控】grafana+Prometheus+node exporter详细部署文档

我们在进行测试时,不可能一直手动看着服务器的性能消耗,这时候就需要有个工具替我们监控服务器的性能消耗。这里记录下grafanaPrometheusnodeExporter的组合用于监控服务器。 简单介绍: grafana:看板工具,所有采集的…...

JavaScript中todolist操作--待办事项的添加 删除 完成功能

效果图 在文本框中输入内容点击添加按钮会在下面生成 添加功能 html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0&qu…...

Windows中MySQL8.3.4 MSI版本——详细安装教程

一、下载MySQL安装文件。 下载地址&#xff1a;MySQL官网 进入后点击下面的MySQL社区版下载 点击MySQL Comunity Server。 我这里选择的是版本8.4.3LTS版本&#xff0c;在线对应的msi文件。 点击No thanks,直接下载。 二、安装MySQL 2.1、双击刚刚下载好的msi文件&#xff0c;…...

MySQL-DDL之数据库操作

文章目录 一. 创建数据库1. 直接创建数据库&#xff0c;如果存在则报错2. 如果数据库不存在则创建3. 创建数据库时设置字符集4. 栗子 二. 查看数据库1. 查看数据库 三. 删除数据库1. 删除数据库 四. 使用数据库1. 使用数据库2. 查看正在使用的数据库 数据定义语言&#xff1a;简…...

Python 笔记之进程通信

当需要创建的子进程数量不多时&#xff0c;可以直接利用multiprocessing中的Process动态生成多个进程 但是如果是上百个或者上千个目标&#xff0c;手动去创建进程的工作量很大&#xff0c;此时就可以利用到Multiprocessing模块提供的Pool方法 初始化pool时&#xff0c;可以指定…...

【Transformer序列预测】Pytorch中构建Transformer对序列进行预测源代码

Python&#xff0c;Pytorch中构建Transformer进行序列预测源程序。包含所有的源代码和数据&#xff0c;程序能够一键运行。此程序是完整的Transformer&#xff0c;即使用了Encoder、Decoder和Embedding所有模块。源程序是用jupyterLab所写&#xff0c;建议分块运行。也整理了.p…...

生产者-消费者模式:多线程并发协作的经典案例

生产者-消费者模式是多线程并发编程中一个非常经典的模式&#xff0c;它通过解耦生产者和消费者的关系&#xff0c;使得两者可以独立工作&#xff0c;从而提高系统的并发性和可扩展性。本文将详细介绍生产者-消费者模式的概念、实现方式以及应用场景。 1 生产者-消费者模式概述…...

数据库-mysql(基本语句)

演示工具&#xff1a;navicat 连接&#xff1a;mydb 一.操作数据库 1.创建数据库 ①create database 数据库名称 //普通创建 ②create database if not exists 数据库名称 //创建数据库&#xff0c;判断不存在&#xff0c;再创建&#xff1a; 使用指定数据库 use 数据库…...

android12L super.img 解压缩及其挂载到ubuntu18.04

本文介绍如何在Ubuntu18.04上解压缩高通平台Android12L的super.img&#xff0c;并将其挂载到系统中查看内容。 在源码的根目录下&#xff0c;执行如下命令&#xff1a; out/host/linux-x86/bin/simg2img out/target/product/msmnile_gvmq/super.img super.img_rawmkdir super…...

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站&#xff0c;会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后&#xff0c;网站没有变化的情况。 不熟悉siteground主机的新手&#xff0c;遇到这个问题&#xff0c;就很抓狂&#xff0c;明明是哪都没操作错误&#x…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…...

Python爬虫实战:研究MechanicalSoup库相关技术

一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...

进程地址空间(比特课总结)

一、进程地址空间 1. 环境变量 1 &#xff09;⽤户级环境变量与系统级环境变量 全局属性&#xff1a;环境变量具有全局属性&#xff0c;会被⼦进程继承。例如当bash启动⼦进程时&#xff0c;环 境变量会⾃动传递给⼦进程。 本地变量限制&#xff1a;本地变量只在当前进程(ba…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业

6月9日&#xff0c;国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解&#xff0c;“超级…...

视频字幕质量评估的大规模细粒度基准

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用&#xff0c;因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型&#xff08;VLMs&#xff09;在字幕生成方面…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

&#x1f50d; 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术&#xff0c;可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势&#xff0c;还能有效评价重大生态工程…...

MySQL 8.0 OCP 英文题库解析(十三)

Oracle 为庆祝 MySQL 30 周年&#xff0c;截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始&#xff0c;将英文题库免费公布出来&#xff0c;并进行解析&#xff0c;帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...

鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南

1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发&#xff0c;使用DevEco Studio作为开发工具&#xff0c;采用Java语言实现&#xff0c;包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...

vulnyx Blogger writeup

信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面&#xff0c;gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress&#xff0c;说明目标所使用的cms是wordpress&#xff0c;访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...