kafka学习
概述
kafka 是一个分布式、分区、多副本备份的消息队列系统。 Topic:消息主题,发布/订阅消息的主题。 Broker:代理,每一台master kafka即一台broker。 Partition:区,消息按照分区存储,每个topic被分成多个partition,每个partition在存储层面是append log文件(可追加的日志文件)。 Offset:偏移量,long型数字,唯一标记一条消息。每个消息发送到partition 文件中的位置就是offset。kafka禁止对消息随机读写。 备注1:关于消息顺序性,从partition维度是顺序消费的,但从整体Topic来说无法保证有序。 备注2:kafka的设计原理决定,对于一个topic,同一个group中不能有多于partitions个数的consumer同时消费,否则将意味着某些consumer将无法得到消息.
kafka快速开始
安装
前置条件:Java环境,zookeeper已经安装 brew install kafka
启动
一键启动:zookeeper-server-start /usr/local/etc/kafka/zookeeper.properties & kafka-server-start /usr/local/etc/kafka/server.properties
创建topic
kafka-topics --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic myTest
手动发消息
kafka-console-producer --broker-list localhost:9092 --topic test
手动消费消息
kafka-console-consumer --bootstrap-server localhost:9092 --topic test --from-beginning 注意事项1:kafka默认使用9092端口启动