kafka 应用场景
1、日志收集:一个公司可以用Kafka可以收集各种服务的log,通过kafka以统一接口服务的方式开放给各种consumer,例如hadoop、Hbase、Solr等。
2、消息系统:解耦和生产者和消费者、缓存消息等。
3、用户活动跟踪:Kafka经常被用来记录web用户或者app用户的各种活动,如浏览网页、搜索、点击等活动,这些活动信息被各个服务器发布到kafka的topic中,然后订阅者通过订阅这些topic来做实时的监控分析,或者装载到hadoop、数据仓库中做离线分析和挖掘。
4.运营指标:Kafka也经常用来记录运营监控数据。包括收集各种分布式应用的数据,生产各种操作的集中反馈,比如报警和报告。
5、流式处理:比如spark streaming和storm
6、事件源
Kafka的特性
1、高吞吐量、低延迟:kafka每秒可以处理几十万条消息,延迟毫秒级
2、可扩展性:kafka集群支持热扩展
3、持久性、可靠性:消息被持久化到本地磁盘,且支持数据备份防止数据丢失
4、容错性:允许集群中节点失败
5、高并发:支持多个客户端同时读写
Kafka架构组件
Kafka中发布订阅的对象是topic。我们可以为每类数据创建一个topic,把向topic发布消息的客户端称作producer,从topic订阅消息的客户端称作consumer。Producers和consumers可以同时从多个topic读写数据。一个kafka集群由一个或多个broker服务器组成,它负责持久化和备份具体的kafka消息。
topic:消息存放的目录即主题
Producer:生产消息到topic的一方
Consumer:订阅topic消费消息的一方
Broker:Kafka的服务实例就是一个broker