kafka1
标签(空格分隔): java kafka
简介
Kafka是最初由Linkedin公司开发,是一个分布式、分区的、多副本的、多订阅者,基于zookeeper协调的分布式日志系统(也可以当做MQ系统),常见可以用于web/nginx日志、访问日志,消息服务等等,Linkedin于2010年贡献给了Apache基金会并成为顶级开源项目。
主要应用场景是:日志收集系统和消息系统。
Kafka主要设计目标如下:
- 以时间复杂度为O(1)的方式提供消息持久化能力,即使对TB级以上数据也能保证常数时间的访问性能。
- 高吞吐率。即使在非常廉价的商用机器上也能做到单机支持每秒100K条消息的传输。
- 支持Kafka Server间的消息分区,及分布式消费,同时保证每个partition内的消息顺序传输。
- 同时支持离线数据处理和实时数据处理。
- Scale out:支持在线水平扩展
安装
http://kafka.apache.org/downloads
mkdir -p /server/
解压 tar -xf kafka -C /server/
kafka 配置
kafka的主配置文件
server.properties
集群的唯一标识
broker.id=0
kafka 监听端口
listeners=PLAINTEXT://10.0.0.58:9092
log 日志存放 存放数据
log.dirs=/server/kafka_2.12-2.2.2/data
topic的分区 最好根据消费者数量<=
num.partitions=6
日志保存时间 消息的保存时间 单位可以是 log.retention.ms log.retention.minutes
log.retention.hours=168
每个partitions 的最大大小
log.segment.bytes=1073741824
zookeeper的链接
zookeeper.connect=10.0.0.58:2181,10.0.0.59:2181,10.0.0.60:2181
自动创建topics 没有就创建
auto.create.topics.enable=true
是否打开 自动 删除topic的功能
delete.topic.enable=true
kafka zookeeper的主配置文件
zookeeper.properties
启动
前端启动
./kafka-server-start.sh ../config/server.properties
后端启动 直接使用nohup
nohup ./kafka-server-start.sh ../config/server.properties &
查看启动状态
jps
可以查看到kafka的java进程
常用的操作
查看话题 topic
./kafka-topics.sh --zookeeper 10.0.0.58:2181,10.0.0.59:2181,10.0.0.60:2181 --list
创建话题 topic
./kafka-topics.sh --create --zookeeper 10.0.0.58:2181,10.0.0.59:2181,10.0.0.60:2181 --replication-factor 1 --partitions 3 --topic mytopic1
查看话题 topic的详情
./kafka-topics.sh --describe --zookeeper 10.0.0.58:2181,10.0.0.59:2181,10.0.0.60:2181 --topic mytopic1
paplicas 副本
isr 活动状态的broker
producer 放入 数据
./kafka-console-producer.sh --broker-list 10.0.0.58:9092,10.0.0.59:9092,10.0.0.60:9092 --topic mytopic1
consumer 取出 数据
- 从头获取
./kafka-console-consumer.sh --bootstrap-server 10.0.0.58:9092,10.0.0.59:9092,10.0.0.60:9092 --topic mytopic1 --from-beginning
./kafka-console-consumer.sh --bootstrap-server 10.0.0.58:9092,10.0.0.59:9092,10.0.0.60:9092 --topic 10.0.0.58-nginx-log --from-beginning
- 继续获取
./kafka-console-consumer.sh --bootstrap-server 10.0.0.58:9092,10.0.0.59:9092,10.0.0.60:9092 --topic mytopic1
删除topic
./kafka-topics.sh --zookeeper 10.0.0.58:2181,10.0.0.59:2181,10.0.0.60:2181 --delete -topic mytipic1