什么是Kafka
Kafka是一个分布式流处理平台,我们可以初步理解为一个Kafka就是一个存储消息的篮子(broker),可以实时去放消息或取消息,不同的消息按照不同的标签(topics)分类,这个篮子是可扩展的(Kafka集群),篮子里的消息高可靠不会丢失。
Kafka架构
- Kafka基础架构
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
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。