赞
踩
Kafka是分布式发布-订阅消息系统。它最初由LinkedIn公司开发,之后成为Apache项目的一部分。Kafka是一个分布式的,可划分的,冗余备份的持久性的日志服务。它主要用于处理活跃的流式数据。
Kafka的整体架构非常简单,是显式分布式架构,producer、broker(kafka)和consumer都可以有多个。Producer,consumer实现Kafka注册的接口,数据从producer发送到broker,broker承担一个中间缓存和分发的作用。broker分发注册到系统中的consumer。broker的作用类似于缓存,即活跃的数据和离线处理系统之间的缓存。客户端和服务器端的通信,是基于简单,高性能,且与编程语言无关的TCP协议。
基础概念
发送消息流程
**高吞吐量、低延迟:**kafka每秒可以处理几十万条消息,它的延迟最低只有几毫秒;
**可扩展性:**kafka集群支持热扩展;
**持久性、可靠性:**消息被持久化到本地磁盘,并且支持数据备份防止数据丢失;
**容错性:**允许集群中节点故障(若副本数量为n,则允许n-1个节点故障);
**高并发:**支持数千个客户端同时读写。
**日志收集:**一个公司可以用Kafka可以收集各种服务的log,通过kafka以统一接口服务的方式开放给各种consumer;
**消息系统:**解耦生产者和消费者、缓存消息等;
**用户活动跟踪:**kafka经常被用来记录web用户或者app用户的各种活动,如浏览网页、搜索、点击等活动,这些活动信息被各个服务器发布到kafka的topic中,然后消费者通过订阅这些topic来做实时的监控分析,亦可保存到数据库;
**运营指标:**kafka也经常用来记录运营监控数据。包括收集各种分布式应用的数据,生产各种操作的集中反馈,比如报警和报告;
**流式处理:**推荐系统或者推荐新闻文章的处理管道,我们可以将从RSS提要中抓取文章的内容,然后将内容发布到文章的主题中,有兴趣可以了解Apache Kafka官网查看,它从0.10.0.0开始,提供了一个轻量级流处理库Kafka Streams,是用于执行上的数据处理的,这个功能非常的强大。流处理还有strom、samza。
检测数据:Kafka可以作为检测数据,比如分布式应用程序中的聚合统计数据,然后我们统一集中处理。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。