kafka和flume区别

kafka和flume区别Flume更趋向于消息采集系统,Kafka更趋向于消息缓存系统。 kafka:目前项目中主要是用来做消息推送中间件,消息的处理完全由业务方自己定义,请求频次单机吞吐量轻轻松松50W+/s,数据在集群不全挂的情况下是不会丢数据,消费也很灵活,可以指定分区和offset,可以当做成一个数据库。 flume:用来做数据采集和落地,目前使用的是flume-ng,流程是source(kafka)->channel->hdfs相比较kafka比较轻量级,就是一个数据的流通管道,当..

大家好,又见面了,我是你们的朋友全栈君。

kafka和flume区别

  • Flume更趋向于消息采集系统,Kafka更趋向于消息缓存系统。
  • kafka:目前项目中主要是用来做消息推送中间件,消息的处理完全由业务方自己定义,请求频次单机吞吐量轻轻松松50W+/s,数据在集群不全挂的情况下是不会丢数据,消费也很灵活,可以指定分区和offset,可以当做成一个数据库。
  • flume:用来做数据采集和落地,目前使用的是flume-ng,流程是source(kafka)->channel->hdfs 相比较kafka比较轻量级 ,就是一个数据的流通管道,当一个flume实例挂了 数据会丢失。
  • Flume架构简单,依赖少,功能也简单,但是够灵活,它的定位是数据通道,不是消息队列。
  • Flume的Source-Channel-Sink模型,非常适合作为日志收集的模型。
  • Kafka就不必多说了,生产者消费者模型,看你怎么去构建日志消费的下游了。有了消息队列作为中间件,消费的下游和上游可以完美的解耦。
  • Kafka是pull based, 如果你有很多下游的Data Consumer,用Kafka;
  • Kafka有Replication,Flume没有,如果要求很高的容错性(Data High Availability),选kafka;
  • 需要更好的Hadoop类产品接口,例如HDFS,HBase等,用Flume。
  • flume是海量日志采集、聚合和传输的日志收集系统,kafka是一个可持久化的分布式的消息队列。
  • Flume可以使用拦截器实时处理数据,对数据屏蔽或者过滤很有用,如果数据被设计给Hadoop使用,可以使用Flume,重在数据采集阶段。
  • 采集和处理数据不一定同步,所以用kafka这个消息中间件来缓冲,重在数据接入。
  • kafka就是消息队列, 对日志采集系统来说是做缓存用的,供实时的应用读取。
  • 当你只想进行日志的收集工作时,可直接用flume。
  • 如果你收集了日志后,想输出到多个业务方,则可结合kafka。
  • kafka是消息队列,可支持多个业务来读取数据。
  • 由于前端一般都会做负载均衡,所以日志源会有多个,而公司可能只有一个统一的实时计算平台。所以在这个中间一般都会采用消息队列来缓存。
  • Kafka 是一个通用型系统。你可以有许多的生产者和消费者分享多个主题。相反地,Flume 被设计成特定用途的工作,特定地向 HDFS 和 HBase 发送出去。Flume 为了更好地为 HDFS 服务而做了特定的优化,并且与 Hadoop 的安全体系整合在了一起。基于这样的结论,Hadoop 开发商 Cloudera 推荐如果数据需要被多个应用程序消费的话,推荐使用 Kafka,如果数据只是面向 Hadoop 的,可以使用 Flume。
  • Flume 拥有许多配置的来源 (sources) 和存储池 (sinks)。然后,Kafka 拥有的是非常小的生产者和消费者环境体系,Kafka 社区并不是非常支持这样。如果你的数据来源已经确定,不需要额外的编码,那你可以使用 Flume 提供的 sources 和 sinks,反之,如果你需要准备自己的生产者和消费者,那你需要使用 Kafka。
  • Flume 可以在拦截器里面实时处理数据。这个特性对于过滤数据非常有用。Kafka 需要一个外部系统帮助处理数据。
  • 无论是 Kafka 或是 Flume,两个系统都可以保证不丢失数据。然后,Flume 不会复制事件。相应地,即使我们正在使用一个可以信赖的文件通道,如果 Flume agent 所在的这个节点宕机了,你会失去所有的事件访问能力直到你修复这个受损的节点。使用 Kafka 的管道特性不会有这样的问题。
  • Flume 和 Kafka 可以一起工作的。如果你需要把流式数据从 Kafka 转移到 Hadoop,可以使用 Flume 代理 (agent),将 kafka 当作一个来源 (source),这样可以从 Kafka 读取数据到 Hadoop。你不需要去开发自己的消费者,你可以使用 Flume 与 Hadoop、HBase 相结合的特性,使用 Cloudera Manager 平台监控消费者,并且通过增加过滤器的方式处理数据。

​​​​​​​

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/152355.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ubuntu安装opencv的正确方法

    ubuntu安装opencv的正确方法本文介绍的是如何安装ubuntu下C++接口的opencv1.安装准备:1.1安装cmakesudoapt-getinstallcmake1.2依赖环境sudoapt-getinstallbuild-essentiallibgtk2.0-devlibavcodec-devlibavformat-devlibjpeg-devlibswscale-devlib…

    2022年6月18日
    38
  • java向上取整函数_java取整函数,向上取整函数Math.ceil()

    java向上取整函数_java取整函数,向上取整函数Math.ceil()你知道java取整函数要怎样实现吗?下面要给大家分享的是java向上取整函数的相关内容,一起来了解一下具体的方法吧!java向上取整函数Math.ceil():doubledividend=7;//被除数doubledivisor=2;//除数doubleflag=0;intresult1=0;intresult2=0;//函数式flag=Math.ce…

    2022年6月21日
    25
  • Parallel ForEach For 多线程并行计算使用注意

    Parallel ForEach For 多线程并行计算使用注意之前用DataTable进行遍历,出现索引超出范围问题,因为List<T>也只支持单线程,改用ConcurrentBag解决问题。在ParallelForEach/For外的变量要避免同时操作同一个变量造成数据不一致的情况。List<T>转为ConcurrentBagConcurrentBag<T>concT=newC…

    2022年7月19日
    16
  • pycharm安装教程-pycharm安装详细步骤(Mac版)

    pycharm安装教程-pycharm安装详细步骤(Mac版)上期跟大家讲了怎么安装Python,这期跟大家介绍个很好用的编程工具–pycharm。PyCharm是一种PythonIDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制。Pycharm分为专业版(Professional)和社区版(Community),专业版功能非常全,需要购买,可以试用,对比之下社区版功能有限,可以免费使用,并且开源。如果大家只是不需要做特别复杂的项目,下载社区版就足够

    2022年8月25日
    8
  • ctk编译linux,CTK插件框架学习5-插件间通信(Netlink实现热拔插监控)[通俗易懂]

    ctk编译linux,CTK插件框架学习5-插件间通信(Netlink实现热拔插监控)[通俗易懂]本章来写一个插件,插件功能为通过NETLINK读取linux系统中的hotplug信息,比如usb、SD卡、磁盘等设备的插拔事件产生的信息,将读到的信息通过插件间通信的方式发出。1.eventadmin库编译CTKPluginFramework下插件间通信是通过事件管理机制实现的,其代码位于CTK/Libs/PluginFramework/service/event目录下,使能事件管理机制,…

    2022年5月29日
    47
  • kubernetes CKA题库(附答案)

    kubernetes CKA题库(附答案)第一题RBAC授权问题权重:4%设置配置环境:[student@node-1]$kubectlconfiguse-contextk8sContext为部署管道创建一个新的ClusterRole并将其绑定到范围为特定的namespace的特定ServiceAccount.Task创建一个名为deployment-clusterrole且仅允许创建以下资源类型的新ClusterRole:DeploymentStatefulSetDaemonSet在现有的name

    2022年6月9日
    144

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号