概念:
ApacheKafka®是一个分布式流媒体平台
功能介绍:
1)流媒体平台有三个关键功能:
- 发布和订阅记录流,类似于消息队列或企业消息传递系统。
- 以容错的持久方式存储记录流。
- 记录发生时处理流。
-
Kafka通常用于两大类应用:
- 构建可在系统或应用程序之间可靠获取数据的实时流数据管道
- 构建转换或响应数据流的实时流应用程序
2)在流计算中,kafka主要功能是用来缓存数据,storm可以通过消费kafka中的数据进行流计算
是一套开源的消息系统,由scala开发支持javaApi
kafka最初由LinkedIn公司开发,2011开源
3)是一个分布式消息队列,kafka读消息保存采用topic进行归类
4)角色
Producer 生产者 consumer消费者
5)消息队列
a.解耦 为了避免出现问题
b.拓展性
c.灵活 面对访问剧增,不会因为超负荷而瘫痪
d.可恢复 一部分组件失效,不会不影响整个系统,可以进行恢复
e.缓冲 控制数据流经过系统的速度
f.顺序保证 对消息进行有需处理
g.异步通信 akka 可以进行异步通讯的消息。允许用户吧消息放到队列中,不立即处理
6)安装配置
启动: kafka-server-start.sh /opt/kafka-2.10/config/server.properties
停止:kafka-server-stop.sh
7)命令行操作
a.查看当前启动的主题Topic
kafka-topics.sh --zookeeper 192.168.8.128:2181 --list
b.创建主题
--zookeeper 连接的集群
--create创建
--replication-factor 副本
--partitions 分区
--topic主题名
kafka-topics.sh --zookeeper 192.168.8.128:2181 --create --replication-factor 3 --partitions 1 --topic Hello
Created topic "Hello".
[root@Master ~]# kafka-topics.sh --zookeeper 192.168.8.128:2181 --list
Hello
c)删除主题
--delete 删除
kafka-topics.sh --zookeeper 192.168.8.128:2181 --delete --topic World
d)发送消息
kafka-console-producer.sh --broker-list 192.168.8.128:9112 --topic World
e)消费消息
kafka-console-consumer.sh --bootstrap-server 192.168.8.128:9112 --from-beginning --topic World
接受到生产者发送的消息
f)查看主题详细消息
kafka-topics.sh --zookeeper 192.168.8.128:2181 --describe --topic Hello
Topic:Hello PartitionCount:1 ReplicationFactor:3 Configs:
Topic: Hello Partition: 0 Leader: 1 Replicas: 1,2,0 Isr: 1,2,0
问题1:生产者生产消息时卡死
解决方案:
生产者API:
Error while executing topic command : replication factor: 2 larger than available brokers: 1
[2019-03-17 21:41:02,550] ERROR org.apache.kafka.common.errors.InvalidReplicationFactorException: replication factor: 2 larger than available brokers: 1
(kafka.admin.TopicCommand$)
解决方式: