zoukankan      html  css  js  c++  java
  • Apache Kafka开发入门指南(1)

    Apache Kafka可以帮助你解决在发布/订阅架构中遇到消费数百万消息的问题。
    如今,商业应用、社交应用以及其它类型的应用产生的实时信息在不断增长,这些信息需要以简单的方式快速、可靠地路由到各种类型的接收者。在大多数情况下,产生信息和消费信息的应用都是自然分开的,彼此不可互相访问。
    需要一种机制,让信息的生产者和消费者能无缝地集成。
    在大数据时代,收集数据也是一个挑战——因为数据量太大。第二个挑战是分析数据,它通常分为:
    1)用户行为数据
    2)应用程序性能跟踪
    3)日志形式的活动数据
    4)事件消息

    消息订阅是一种机制,可以连接各种应用程序,帮助消息在彼此之间路由。
    Kafka是一个实时消息传输的解决方案,可处理大量实时信息,并把这些信息快速路由到各种消费者。Kafka提供了信息生产者和消费者之间的无缝集成,无需对生产者的信息进行阻塞,也无需告诉生产者那些消费者的位置。

    Apache Kafka是一个开源、分布式的消息发布/订阅系统,其主要设计特性如下:
    1)消息持久化
    要从大数据中获取真正的价值,那么不能丢失任何信息。Apache Kafka设计上是时间复杂度O(1)的磁盘结构,它提供了常量时间的性能,即使是存储海量的信息(TB级)。
    2)高吞吐
    记住大数据,Kafka的设计是工作在标准硬件之上,支持每秒数百万的消息。
    3)分布式
    Kafka明确支持在Kafka服务器上的消息分区,以及在消费机器集群上的分发消费,维护每个分区的排序语义。
    4)多客户端支持
    Kafka系统支持与来自不同平台(如java、.NET、PHP、Ruby或Python等)的客户端相集成。
    5)实时
    生产者线程产生的消息对消费者线程应该立即可见,此特性对基于事件的系统(比如CEP系统)是至关重要的。
    注:CEP即Complex Event Processing,复杂事件处理。

    Apache Kafka提供了一个实时的发布/订阅解决方案,它客服了消费实时大数据的挑战,这些数据量可能在数量级的增长、真实的数据。Kafka还支持在Hadoop系统上做并行数据载入。

    下面的视图显示了Apache Kafka消息系统支持的一个典型的大数据汇聚和分析的场景:


    在生产者端,有数种不同的生产者:
    1)前端Web应用产生的应用日志
    2)生产者代理产生的Web分析日志
    3)生产者适配器产生的传输日志
    4)生产者服务产生的调用跟踪日志

    在消费者端,有数种不同的消费者:
    1)离线消费者:消费消息并在Hadoop或传统的数据仓库中存储消息用于离线分析
    2)近乎实时的消费者:消费消息并在任意NoSQL数据库(如HBase或Cassandra)中存储消息用于近实时分析
    3)实时消费者:在内存数据库中过滤消息,并在相关的群组中触发警告事件

  • 相关阅读:
    jquery插件treetable使用
    WPF界面按钮美化
    Nginx配置
    Spring Framework之AOP
    IOS抓取与反抓取
    Spring Framework之事务管理
    68- 二叉树的最近公共祖先
    Spring Framework之IoC容器
    应试教育引发的思考
    春季实习生校园招聘总结
  • 原文地址:https://www.cnblogs.com/yepei/p/4752063.html
Copyright © 2011-2022 走看看