python(二)Kafka

1 Kafka简介

Apache Kafka是分布式发布-订阅消息系统,一个分布式发布-订阅消息传递系统。

Kafka是一种快速、可扩展的、设计内在就是分布式的,分区的和可复制的提交日志服务。

1.1 Kafka基本架构

1、话题(Topic):是特定类型的消息流。消息是字节的有效负载(Payload),话题是消息的分类名或种子(Feed)名;

2、生产者(Producer):是能够发布消息到话题的任何对象;

3、服务代理(Broker):已发布的消息保存在一组服务器中,它们被称为代理(Broker)或Kafka集群;

4、消费者(Consumer):可以订阅一个或多个话题,并从Broker拉数据,从而消费这些已发布的消息;

在这里插入图片描述

1.2 基本原理

在这里插入图片描述
生产者将数据生产出来,交给 broker 进行存储,消费者需要消费数据了,就从broker中去拿出数据来,然后完成一系列对数据的处理操作。

1.3 Zookeeper在kafka的作用

保证系统可用性集群保存一些meta信息。

zookeeper作为其分布式协调框架

建立起生产者和消费者的订阅关系,并实现生产者与消费者的负载均衡。

1.4 执行流程

在这里插入图片描述
系统运行的顺序:

(1)启动zookeeper 的 server

(2)启动kafka 的 server

(3)Producer 如果生产了数据,会先通过 zookeeper 找到 broker,然后将数据存放到 broker

(4)Consumer 如果要消费数据,会先通过 zookeeper 找对应的 broker,然后消费。

1.5 Kafka的使用场景

日志收集,消息系统,用户活动跟踪,运营指标,流式处理,事件源

2 安装kafka

# 通过解压文件安装,scala的版本应与kafka版本对应
tar -xzf kafka_2.12-2.3.0.tgz

2.1 启动与操作

# 进入kafka_2.12-2.3.0.tgz目录下,启动服务器
bin/zookeeper-server-start.sh config/zookeeper.properties
bin/kafka-server-start.sh config/server.properties
# 创建主题
bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic test
# 查看主题
bin/kafka-topics.sh --list --bootstrap-server localhost:9092
# 发送一些消息
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
# 启动消费者
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值