原文地址地址: 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. MySQL5.7绿色版(免装版)的初始化和修改密码

    1.下载MySQL5.7.18绿色版 1.1下载链接 以下是MySQL5.7.18绿色版的链接(来源oracle官网),打开链接直接下载 https://dev.mysql.com/gt/Downlo ...

  2. 【转载】The Elements of Programming Style之代码风格金科玉律

    原始日期: 2017-02-06 16:20 <The Elements of Programming Style >是一本很古老的书.尽管 Fortran 我们不太使用,尽管新奇的语言层 ...

  3. Codewars练习笔记·1 - 6.23

    Codewars地址:https://www.codewars.com/ 笔记资料来源:JavaScript高级程序设计. 欢迎和大家一起来讨论~   基础练习(1):   我的解答为: class ...

  4. 搭建phabricator代码审核工具

    phabricator 依赖环境 系统centos,mysql,php,nginx 1.下载安装脚本 https://secure.phabricator.com/source/phabricator ...

  5. Android 音乐播放

    android简单音乐播放控制代码 这个几个月业余时间一直在做一个android项目,里面涉及到了音乐播放功能.很简单那种,播放.暂停.上一曲.下一曲.音量调节等. 音乐播放主要使用的对象是Media ...

  6. php中查询mysql如何在IN array中用

    假如有一个数组 $arr = array(1,3,5,7,9)那么我在如何在php中使用mysqlWHERE id IN (1,3,5,7,9.......)$arr_string = join(', ...

  7. Quartz使用-入门使用

    注:这里使用的是Quartz1.6.5版本(包:quartz-1.6.5.jar) //测试main函数 //QuartzTest.java package quartzPackage; import ...

  8. Chapter 3. Video Coding Concepts

    本章主要介绍一些有关视频编码的概念 时域模型(Temporal Model) 时域模型的作用是去除帧间冗余.如:将第二帧减去第一帧,得到的剩余信息,其能量会远小于第二帧本身. 基于块的运动估计和补偿 ...

  9. react系列从零开始-react介绍

    react算是目前最火的js MVC框架了,写一个react系列的博客,顺便回忆一下react的基础知识,新入门前端的小白,可以持续关注,我会从零开始教大家用react开发一个完整的项目,也会涉及到w ...

  10. java中方法的定义

    所谓的方法(将方法称为函数)指的就是一段可以被重复调用的代码块. 对于方法的返回值类型有两种使用形式: · 有数据返回:返回值类型就使用 Java 中定义的数据类型: · 无数据返回:使用 void ...