Kafka是一个分布式流处理平台,咱们能够初步理解为一个Kafka就是一个存储消息的篮子(broker),能够实时去放消息或取消息,不一样的消息按照不一样的标签(topics)分类,这个篮子是可扩展的(Kafka集群),篮子里的消息高可靠不会丢失。node
producer:多个应用向Kafka集群的一个或多个topic推送一条数据流
consumer:多个应用根据需求订阅指定的topic流
stream:处理订阅的topic流,并依据结果向cluster集群推送一条新的topic流
connector:与关系型数据库相连,能够捕捉到每次数据库中表的变化数据库
*Kafka的partition(分区)和replica(副本)区别:一个topic能够指定多个partition,当咱们往指定topic存放一条消息(由key-value构成)时会根据消息key的哈希值将其分配在指定的分区上。而replica就是topic内数据的副本数,保证消息不会丢失。架构
1.Kafka是依赖于ZooKeeper(提供集群的配置管理包括集群名字服务、集群配置服务、分布式锁等)的,所以咱们须要先启动ZooKeeper,如何启动见官网,也很简单。
2.修改Kafka配置文件conf/server.properties,基本配置包括brokerId这个在集群中是惟一的,运行的主机ip以及端口号,log生成目录,zookeeper运行端口。socket
3.启动Kafka kafka-server.sh server.properties分布式
# The id of the broker. This must be set to a unique integer for each broker. broker.id=0 # The port the socket server listens on port=9092 # Hostname the broker will bind to. If not set, the server will bind to all interfaces host.name=localhost # A comma seperated list of directories under which to store log files log.dirs=/root/tmp/kafka-logs # root directory for all kafka znodes. zookeeper.connect=localhost:2181