kafka概念
Kafka是最初由Linkedin公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统。
kafka解决问题
1.提供Pub/Sub方式的海量消息处理。
2.以高容错的方式存储海量数据流。
3.保证数据流的顺序。
常用场景:
1.日志收集:一个公司可以用Kafka可以收集各种服务的log,通过kafka以统一接口服务的方式开放给各种consumer,例如hadoop、Hbase、Solr等。
2.消息系统:解耦和生产者和消费者、缓存消息等。
概念
Consumergroup:各个consumer(consumer 线程)可以组成一个组(Consumer group
),partition中的每个message只能被组(Consumer group )中的一个consumer(consumer
线程)消费,如果一个message可以被多个consumer(consumer 线程)消费的话,那么这些consumer必须在不同的组。
保存策略
kafka 有两种数据保存策略:按照过期时间保留和按照存储的消息大小保留。