bd——kafka

基本概念

(1) 什么是kafka:大吞吐量,内置分区,可以进行数据备份,同时具备数据容错性的消息系统。

① Kafka可以完成在线或者离线数据消费,所谓离线数据消费实际上就是kafka将消息数据保留在磁盘上。

② kafka会做数据备份,防止节点宕机从而导致数据丢失。

③ 和spark产品的整合性非常好,可以完成实时的大数据分析

④ kafka的节点可以无限扩容

(2) 什么是消息系统:将数据从一个应用程序传递到另一个应用程序,分布式系统利用消息系统,在多应用之间进行高效、稳定、安全的数据传递。

(3) 两种消息模式

① 点对点:若干个生产和消费者,处理队列当中的数据,一旦该数据被消费,则从队列当中被移除。(多线程:生产消费者模型)

② 发布-订阅:消息是被保留在主题当中,消费者消费一个或者若干个主题当中的消息

(4) 术语:

① Topics

② Partition

③ Offset

④ Brokers

⑤ Kafka Cluster

(5) 发布和订阅的流程

① 生产者向主题当中提交消息,代理将主题当中的数据在主题的分区当中依次保存;

② 消费者向代理请求获取消息,代理向消费者提供偏移量,消费者根据偏移量要求获取消息。

③ 消费者排队的前提,消费者数量大于分区数量

部署环境

环境变量配置

【1】Kafka

【2】Scala

==========伪集群搭建:server.properties * 3

broker.id=1 //配置代理id
port=9091 //端口号
host.name=192.168.92.102 //主机地址

log.dirs=/hadoopserver/kafka_2.12-2.3.0/zkLogs/log01 //日志地址

zookeeper.connect= 192.168.92.102:2181,192.168.92.102:2182,192.168.92.102:2183 //zk连接地址

====

启动顺序:先启动ZK,然后才是kafka

kafka-server-start.sh ./server1.properties

关闭集群:注意修改脚本!

kafka shell操作

获取端口的主题列表: kafka-topics.sh --list --zookeeper 192.168.92.102:2183

创建主题:数据副本与主题分区【个数】 kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 3 --topic hello_kafka_10

生产者生产消息【支持多个数据分区生产】: kafka-console-producer.sh --broker-list 192.168.92.102:9092,192.168.92.102:9091,192.168.92.102:9093 --topic hello_kafka_10

消费者消费消息【注意:消费同一个主题】:kafka-console-consumer.sh --bootstrap-server 192.168.92.102:9093 --topic hello_kafka_10 &

posted @ 2020-09-14 07:25  小海_macro  阅读(141)  评论(0编辑  收藏  举报