大数据系列之kafka(一)

什么是Kafka

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

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运行端口。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
相关文章
相关标签/搜索