伯克利开源 Confluo,吞吐量是 Kafka 的 4 到 10 倍
近日伯克利 RISE Lab 开源了一个多数据流实时分布式分析系统 Confluo,它既是一个网络监控和诊断框架,也可以作为时序数据库和发布订阅消息系统。

源码地址:https://github.com/ucbrise/confluo
当下,类似基于终端主机的网络监控系统、IoT 设备传感器程序等应用,其后端的服务器每秒都可以捕获数千万个数据点。这些数据被用于在线查询,实现可视化与监控,或者用于离线查询,进行故障分析和系统优化。
这样的使用场景下,就需要实时监控和分析工具支持,这些工具通常支持高吞吐量数据提取、低延迟在线查询和低开销的离线查询。
虽然目前已经存在一些用于高吞吐量数据提取的数据结构,它们可以支持丰富的在线和离线查询,但是高吞吐量与查询能力目前来看还是互斥的。
在从多个数据流提取数据时,查询需要更新多个数据结构,包括原始数据、聚合统计信息和物化视图。但是用于支持这些查询的数据结构往往具有较高的更新开销,而且无法维持大多数应用程序所需的数据提取速率。
而另一方面,可以维持高数据提取速率的数据结构往往只支持非常简单的查询。

Confluo 正是为了应对这种情况而产生的,它是一个致力于同时实现高吞吐量数据提取和富有表现力的离线/在线查询的系统。
Confluo 性能强悍,支持:
来自多个数据流的数百万个数据点的高吞吐量并发写入
毫秒级的在线查询
使用最少 CPU 资源的 ad-hoc 查询
不同场景下对 Confluo 进行性能测试,结果显示:
作为一个网络监控和诊断框架,Confluo 能够在单核上以线路速率(10Gbps 链路)执行数千个触发器和数十个过滤器。
作为一个时序数据库,与其它诸如 CorfuDB、TimescaleDB 和 BTrDB 等先进的时序数据库相比,Confluo 的吞吐量提高了 2 到 20 倍,写入延迟降低了 2 至 10 倍,时间区间查询延迟降低了 5 至 20 倍。
作为一个发布订阅消息系统,Confluo 的吐量是 Kafka 的 4 到 10 倍。

更详细的分析:https://rise.cs.berkeley.edu/blog/confluo-millisecond-level-queries-on-large-scale-streaming-data
伯克利开源 Confluo,吞吐量是 Kafka 的 4 到 10 倍的更多相关文章
- 取代 Python 多进程!伯克利开源分布式框架 Ray
Ray 由伯克利开源,是一个用于并行计算和分布式 Python 开发的开源项目.本文将介绍如何使用 Ray 轻松构建可从笔记本电脑扩展到大型集群的应用程序. 并行和分布式计算是现代应用程序的主要内容. ...
- Kafka实战:如何把Kafka消息时延秒降10倍
背景 国内某大型税务系统,业务应用分布式上云改造. 业务难题 如上图所示是模拟客户的业务网页构建的一个并发访问模型.用户在页面点击从而产生一个HTTP请求,这个请求发送到业务生产进程,就会启动一个投递 ...
- Apache Kafka: 优化部署的10个最佳实践
原文作者:Ben Bromhead 译者:江玮 原文地址:https://www.infoq.com/articles/apache-kafka-best-practices-to-opti ...
- 【福州活动】| "福州首届.NET开源社区线下技术交流会"(2018.11.10)
活动介绍 微软爱开源,已是尽人皆知的事实.自从收购全球最大的开源社区 GitHub 之后,微软依旧使 GitHub 保持独立运营,并且通过此项举措,微软本身已经成为最大的社区服务者. .NET Cor ...
- Structured Streaming + Kafka Integration Guide 结构化流+Kafka集成指南 (Kafka broker version 0.10.0 or higher)
用于Kafka 0.10的结构化流集成从Kafka读取数据并将数据写入到Kafka. 1. Linking 对于使用SBT/Maven项目定义的Scala/Java应用程序,用以下工件artifact ...
- 第1节 kafka消息队列:10、flume与kafka的整合使用
11.flume与kafka的整合 实现flume监控某个目录下面的所有文件,然后将文件收集发送到kafka消息系统中 第一步:flume下载地址 http://archive.cloudera.co ...
- RabbitMQ与Kafka选型对比
背景 本公司是.Net项目,在.Net可选的MQ比较少,主要Kafka和RabbitMQ,RabbitMQ我也是使用多年了,最近的Kafka广告与流行度打得使我也是无法无视,因此也是花了点时间收集了资 ...
- 消息中间件-RabbitMq相关概念及原理介绍【图文并茂】
消息中间件 消息中间件的作用 解耦:消息中间件在服务之间插入了一个隐含的.基于数据的接口层.两边的服务处理过程都要实现这一接口,这允许我们独立的扩展或修改两边的处理过程,只要确保他们遵守相同的规范约束 ...
- 使用Revel(go)开发网站
Revel很好的利用了Go语言的goroutine,把每一个request都分配到了goroutine里.不用再写一大堆的回调.如果你写过nodejs的话就会深刻的体会到callback hell是什 ...
随机推荐
- [NOI2018]你的名字(后缀自动机+线段树合并)
看到题目名字去补番是种怎么样的体验 我只会 \(68\) 分,打了个暴力.正解看了一会儿,发现跟 \([HEOI2016/TJOI2016]\) 字符串很像,用线段树合并维护 \(endpos\) 集 ...
- javaScript中BOM
BOM是browser object model的缩写,简称浏览器对象模型 主要处理浏览器窗口(window)和框架(iframe),简述了与浏览器进行交互的方法和接口, 可以对浏览器窗口进行访问和操 ...
- EF6使用Mysql,踏过的那些坑
在vs2013中使用mysql连接entityFramework经常会遇到这个问题:您的项目引用了最新实体框架:但是,找不到数据连接所需的与版本兼容的实体框架数据提供程序.请退出此向导,安装兼容提供程 ...
- SQL面试题之行转列
典型的课程表: mysql> select * from course; +----+------------+----------+------------+ | id | teacher_i ...
- _tkinter.TclError: image "pyimage1" doesn't exist 解决办法
_tkinter.TclError: image "pyimage1" doesn't exist 解决办法 1 def logout(self): 2 login.LoginWi ...
- css 图片文字居中
1.单行文字居中 2.多行文字居中 3.利用background-position:center;的图片居中 4.利用display:table-cell;属性的图片居中 <!DOCTYPE h ...
- odoo按钮图标 icon
https://www.slideshare.net/TaiebKristou/odoo-icon-smart-buttons http://www.iconfont.cn/collections/d ...
- ES6 模块定义 export 与 import
一般导出 export math.js export function* getFibo() { let a = 1; let b = 1; yield a; yield b; while (true ...
- How to resize or create a thumbnail image from file stream on UWP
最近在搞Ocr相关的windows universal app, 用到了一些图像处理相关的知识. 涉及到了BitmapDecoder/BitmapEncoder/IRandomAccessStream ...
- Python numpy 中 keepdims 的含义
keepdims主要用于保持矩阵的二维特性 import numpy as np a = np.array([[1,2],[3,4]]) # 按行相加,并且保持其二维特性 print(np.sum(a ...