2

什么是Kafka

Kafka是一个分布式流处理平台,我们可以初步理解为一个Kafka就是一个存储消息的篮子(broker),可以实时去放消息或取消息,不同的消息按照不同的标签(topics)分类,这个篮子是可扩展的(Kafka集群),篮子里的消息高可靠不会丢失。

Kafka架构

  • Kafka基础架构

clipboard.png

producer:多个应用向Kafka集群的一个或多个topic推送一条数据流
consumer:多个应用根据需求订阅指定的topic流
stream:处理订阅的topic流,并依据结果向cluster集群推送一条新的topic流
connector:与关系型数据库相连,可以捕捉到每次数据库中表的变化

*Kafka的partition(分区)和replica(副本)区别:一个topic可以指定多个partition,当我们往指定topic存放一条消息(由key-value构成)时会根据消息key的哈希值将其分配在指定的分区上。而replica就是topic内数据的副本数,保证消息不会丢失。

Kafka的使用

  • 单节点单broker

    1.Kafka是依赖于ZooKeeper(提供集群的配置管理包括集群名字服务、集群配置服务、分布式锁等)的,因此我们需要先启动ZooKeeper,如何启动见官网,也很简单。
    2.修改Kafka配置文件conf/server.properties,基本配置包括brokerId这个在集群中是唯一的,运行的主机ip以及端口号,log生成目录,zookeeper运行端口。

    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

诗和远方丶
24 声望4 粉丝

每篇都是原创,拒绝复制粘贴