Kafka笔记基础概念和安装配置

来源:互联网 发布:基金软件手机版 编辑:程序博客网 时间:2024/06/01 08:27

1       定义

Kafka是一个分布式消息队列,是由apache开源的一个消息系统,用scala写成。

它提供了类似于JMS的特性,但是在设计实现上完全不同,此外它并不是JMS规范的实现。

kafka对消息保存时根据Topic进行归类,发送消息者成为Producer,消息接受者成为Consumer,此外kafka集群有多个kafka实例组成,每个实例(server)成为broker。

无论是kafka集群,还是producer和consumer都依赖于zookeeper来保证系统可用性集群保存一些meta信息。

2       概念

一个topic可分为多个partitions,每个partition为一个目录,partition命名规则为:topic名称+有序序号,序号从0开始,最大值为partition数量减一。每个partition(目录)包含多个大小相等的segment数据文件,相当于一个大文件被平均分配到多个大小相等的segment中,每个segment包含多个消息,消息数不一定相同。

topicànpartitions(目录)

partitionànsegments

segmentàn msgs

一个topic可以被多个group订阅,topic会发送到所有的group。

topic中的一条特定的消息,只会被订阅此topic的每个group中的其中一个consumer消费,此消息不会发送给一个group中的多个consumer。

一个consumer可以同时消费多个partition。

kafka保证一个patition中的消息被某个consumer消费时是有序的,不保证patitions之间消息的有序性。

即:一个消息或partition只能被一个consumer消费,消费完就没了。

同一个group中不能有多余partitions个数的consumer同时消费,否则某些consumer将无法得到消息。

一个group可以有多个consumer,一个consumer只能属于一个group。通常情况下,一个group中会包含多个consumer,这样不仅可以提高topic中消息的并发消费能力,还能提高“故障容错”性,如果group中的某个consumer失效了,那么其消费的patitions将会由其他consumer自动接管(触发kafka的rebalance)。

3       安装配置

3.1         安装

上kafaka.apache.org下载、解压、配置环境变量即完成安装。kafka依赖zookeeper,需先安装zookeeper。

环境变量:

export KAFKA_HOME=xxx

export PATH=${KAFKA_HOME}/bin:$PATH

3.2         配置

3.2.1       配置server.properties

各服务器上的server.properties里的broker.id值不能重复。

host.name为本机IP,若不改则报错connection to localhost:port unsuccessful。

3.2.2       配置consumer.properties

3.2.3       配置producer.properties

3.3         启动

[root@yhnormal kafkahome]#bin/kafka-server-start.shconfig/server.properties

原创粉丝点击