原文地址地址: http://blogxinxiucan.sh1.newtouch.com/2017/07/12/Apache-Kafka-介绍/

Apache Kafka教程 之 Apache Kafka - 介绍

Apache Kafka - 介绍

Apache Kafka起源于LinkedIn,后来成为2011年的开源Apache项目,然后在2012年成为Apache的一流项目。Kafka以Scala和Java编写。Apache Kafka是基于发布订阅的容错消息系统。它是快速,可扩展和分布的设计。

本教程将探讨Kafka的原理,安装,操作,然后将介绍Kafka集群的部署。最后,我们将总结实时应用和与Big Data Technologies的集成。

在进行本教程之前,您必须对 JavaScala分布式消息系统Linux环境有很好的了解。

在大数据中,使用了大量的数据。关于数据,我们有两个主要挑战。第一个挑战是如何收集大量数据,第二个挑战是分析收集的数据。为了克服这些挑战,您需要一个消息系统。

Kafka专为分布式高吞吐量系统而设计。Kafka作为一个更传统的邮件经纪人的替代品往往运作良好。与其他消息系统相比,Kafka具有更好的吞吐量,内置的分区,复制和固有的容错能力,使其非常适合大规模的消息处理应用。

什么是邮件系统?

消息系统负责将数据从一个应用程序传输到另一个应用程序,因此应用程序可以专注于数据,但不用担心如何共享数据。分布式消息传递基于可靠消息队列的概念。消息在客户端应用程序和消息系统之间异步排队。两种类型的消息传递模式是可用的 - 一种是点对点,另一种是发布订阅(pub-sub)消息系统。大多数消息传递模式跟随pub-sub

点到点信息系统

在点对点系统中,消息将保留在队列中。一个或多个消费者可以使用队列中的消息,但是特定消息可以由最多仅一个消费者消费。一旦消费者读取队列中的消息,它将从该队列中消失。该系统的典型示例是订单处理系统,其中每个订单将由一个订单处理器处理,但多订单处理器可以同时工作。下图描绘了结构。

发布订阅消息系统

在发布订阅系统中,邮件将保留在主题中。与点对点系统不同,消费者可以订阅一个或多个主题并消费该主题中的所有消息。在Publish-Subscribe系统中,消息生成器被称为发布者,消息消费者被称为订户。一个现实的例子是Dish TV,它发布不同的频道,如运动,电影,音乐等,任何人都可以订阅自己的频道,并获得他们的订阅频道。

什么是Kafka?

Apache Kafka是分布式发布订阅消息传递系统和强大的队列,可以处理大量数据,并使您能够将消息从一个端点传递到另一个终端。Kafka适用于离线和在线消息消费。Kafka消息被保留在磁盘上,并在集群内复制以防止数据丢失。Kafka建立在ZooKeeper同步服务之上。它与Apache Storm和Spark完美结合,实时流式传输数据分析。

优点 以下是Kafka的几个好处 -

  • 可靠性 - Kafka是分布式,分区式,复制型和容错型。
  • 可扩展性 - Kafka消息系统轻松扩展,无需停机时间。
  • 耐用性 - Kafka使用分布式提交日志,这意味着邮件尽可能快地依然存在于磁盘上,因此它是耐用的。
  • 性能 - Kafka对于发布和订阅消息都具有高吞吐量。它保持稳定的性能,即使存储了许多TB的消息。

Kafka非常快,保证零停机和零数据丢失。

用例

Kafka可用于许多用例。其中有些列在下面 -

  • 指标 - Kafka经常用于运行监控数据。这涉及从分布式应用程序聚合统计信息,以产生操作数据的集中式提要。
  • 日志聚合解决方案 - Kafka可以在整个组织中使用,从多个服务收集日志,并以标准格式提供给多个服务器。
  • 流处理 - 流行框架(如Storm和Spark

    Streaming)从主题读取数据,处理它,并将处理后的数据写入可用于用户和应用程序的新主题。Kafka的强大耐用性在流处理方面也非常有用。

Kafka需要

Kafka是处理所有实时数据源的统一平台。Kafka支持低延迟消息传递,并在存在机器故障的情况下保证容错。它具有处理大量不同消费者的能力。Kafka非常快,执行200万次写/秒。Kafka将所有数据保留到磁盘,这实质上意味着所有的写入都将转到操作系统(RAM)的页面缓存。这将数据从页面缓存传输到网络套接字非常有效。

Apache Kafka - 介绍的更多相关文章

  1. Apache kafka 工作原理介绍

    消息队列 消息队列技术是分布式应用间交换信息的一种技术.消息队列可驻留在内存或磁盘上, 队列存储消息直到它们被应用程序读走.通过消息队列,应用程序可独立地执行--它们不需要知道彼此的位置.或在继续执行 ...

  2. Apache Kafka - Quick Start on Windows

    在这篇文章中,我将要介绍如何搭建和使用Apache Kafka在windows环境.在开始之前,简要介绍一下Kafka,然后再进行实践. Apache Kafka Kafka是分布式的发布-订阅消息的 ...

  3. Apache Kafka:下一代分布式消息系统

    [http://www.infoq.com/cn/articles/apache-kafka/]分布式发布-订阅消息系统. Kafka是一种快速.可扩展的.设计内在就是分布式的,分区的和可复制的提交日 ...

  4. 用Apache Kafka构建流数据平台

    近来,有许多关于“流处理”和“事件数据”的讨论,它们往往都与像Kafka.Storm或Samza这样的技术相关.但并不是每个人都知道如何将这种技术引入他们自己的技术栈.于是,Confluent联合创始 ...

  5. 3 kafka介绍

     本博文的主要内容有 .kafka的官网介绍 http://kafka.apache.org/ 来,用官网上的教程,快速入门. http://kafka.apache.org/documentatio ...

  6. 《Apache kafka实战》读书笔记-kafka集群监控工具

    <Apache kafka实战>读书笔记-kafka集群监控工具 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 如官网所述,Kafka使用基于yammer metric ...

  7. 《Apache kafka实战》读书笔记-管理Kafka集群安全之ACL篇

    <Apache kafka实战>读书笔记-管理Kafka集群安全之ACL篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 想必大家能看到这篇博客的小伙伴,估计你对kaf ...

  8. 《Apache Kafka 实战》读书笔记-认识Apache Kafka

    <Apache Kafka 实战>读书笔记-认识Apache Kafka 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.kafka概要设计 kafka在设计初衷就是 ...

  9. CDH下集成spark2.2.0与kafka(四十一):在spark+kafka流处理程序中抛出错误java.lang.NoSuchMethodError: org.apache.kafka.clients.consumer.KafkaConsumer.subscribe(Ljava/util/Collection;)V

    错误信息 19/01/15 19:36:40 WARN consumer.ConsumerConfig: The configuration max.poll.records = 1 was supp ...

随机推荐

  1. window.close()方法对谷歌和火狐浏览器无效

    在近期的项目中,遇到了一个问题,就是用户到新浪支付进行操作,操作成功后,指定到一个网页,需求是点击确定,关闭该网页.需求出来以后认为这种就是小菜一碟,直接用 window.close()方法就可以实现 ...

  2. 没有main方法真的不能执行代码了吗?

    今天看北大慕课遇到一段代码,于是下载下来跑了一下,奇葩的是,没有main方法既没报错,还出了结果. 下面贴出代码: class InitialTest { public static void mai ...

  3. 微信 python 接口 -- itchat 文档

    itchat 一. 安装 $ pip install itchat 特殊的字典使用方式 通过打印 itchat 的用户以及注册消息的参数, 可以发现这些值都是字典. 但实际上 itchat 精心构造了 ...

  4. sql with as 用法(转载)

    一.WITH AS的含义     WITH AS短语,也叫做子查询部分(subquery factoring),可以让你做很多事情,定义一个SQL片断,该SQL片断会被整个SQL语句所用到.有的时候, ...

  5. sublime 设置字体

    通过菜单Preferences/Settings - User,添加下面这行配置就可以修改字体: "font_face": "Courier New", &qu ...

  6. apache 基本vhost配置

    经常使用Apache虚拟主机进行开发和测试,但每次需要配置虚拟主机时都习惯性的ctrl+c和ctrl+v,这次由于重装系统,需要配置一个新的PHP开发环境虚拟主机,于是总结一下Apaceh配置http ...

  7. Linux常用操作命令(一)

    java程序员要学习一些linux知识 java程序员要学习一些linux知识,下面就是您要学的命令:大型J2EE应用都在建构在linux环境下的.开发环境下我们可以通过samba映射成本地的网络驱动 ...

  8. 【CC2530入门教程-06】CC2530的ADC工作原理与应用

    第6课  CC2530的ADC工作原理与应用 广东职业技术学院  欧浩源 一.A/D转换的基本工作原理 将时间上连续变化的模拟量转化为脉冲有无的数字量,这一过程就叫做数字化,实现数字化的关键设备是AD ...

  9. Javacript 学习笔记

    一.初探 javacript 学习无法是围绕着对象和属性两个方面来兜圈子,万变不离其宗. 在js中,能点出来的,或者中括号里面的必然是属性(方法).数组除外. 对象调用属性! 对象调用属性! 对象调用 ...

  10. 1.0 配置 appium + java的环境

    1. 配置 appim的环境前面中写到.       2. 在eclipse中配置 java 环境, 具体步骤:       <1>:在 eclipse 中新建 一个java 项目.   ...