Kafka学习

Kafka学习

学习链接:Kafka学习
Kafka学习第二弹

一、概念

Kafka依赖于zookeeper
定义: Kafka是一个分布式的基于发布/订阅模式(同一个消息可以被多个消费者消费) 的消息队列(Message Queue) ,主要应用于大数据实时处理领域。

  • 消费者主动拉取(Kafka选择的模式) 消费者主动去问,比较浪费资源,维护一个长轮询查看队列中是否有新的数据。
  • 队列主动推送

同一个分区的数据:Partition里面的数据只能被同一个组里面的某一个人,别的组的某一个消费者也可以消费,我们可以把一个组看成一个消费整体。

  • Topic 主题
  • Partition 分区
  • 副本 每一个主题有一个副本与leader不在同一个机器上。

二、Kafka术语

消息由producer产生,消息按照topic归类,并发送到broker中,broker中保存了一个或多个topic的消息,consumer通过订阅一组topic的消息,通过持续的poll操作从broker获取消息,并进行后续的消息处理。

Producer:消息生产者,就是向broker发指定topic消息的客户端。
Consumer:消息消费者,通过订阅一组topic的消息,从broker读取消息的

三、具体的使用(具体的安装过程见收藏夹)

具体内容收藏于csdn kafka文件夹

# 新起一个终端启动zookeeper
cd /usr/local/Cellar/kafka/2.8.0
./bin/zookeeper-server-start /usr/local/etc/kafka/zookeeper.properties

# 启动kafka
cd /usr/local/Cellar/kafka/2.8.0
./bin/kafka-server-start /usr/local/etc/kafka/server.properties

#创建topic
kafka-topics --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic iris2

#查看已有主题
cd /usr/local/Cellar/kafka/2.8.0
./bin/kafka-topics --list --zookeeper localhost:2181


# 新起一个终端,作为生产者,用于发送消息,每一行算一条消息,将消息发送到kafka服务器
cd /usr/local/Cellar/kafka/2.8.0
./bin/kafka-console-producer --broker-list localhost:9092 --topic test 

# 新起一个终端作为消费者,接收消息
cd /usr/local/Cellar/kafka/2.8.0
./bin/kafka-console-consumer --bootstrap-server localhost:9092 --topic test --from-beginning

# 发送消息
> ./bin/kafka-console-producer --broker-list localhost:9092 --topic iris 
  This is a message
  This is another message

四、 Kafka优势及应用场景

转自:Kafka优势及应用场景
Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。简单地说,Kafka就相比是一个邮箱,生产者是发送邮件的人,消费者是接收邮件的人,Kafka就是用来存东西的,只不过它提供了一些处理邮件的机制。

一、Kafka的优势如下:

   高吞吐量、低延迟:kafka每秒可以处理几十万条消息,它的延迟最低只有几毫秒;

   可扩展性:kafka集群支持热扩展;

   持久性、可靠性:消息被持久化到本地磁盘,并且支持数据备份防止数据丢失;

   容错性:允许集群中节点故障(若副本数量为n,则允许n-1个节点故障);

   高并发:支持数千个客户端同时读写。

二、Kafka适合以下应用场景:

   日志收集:一个公司可以用Kafka可以收集各种服务的log,通过kafka以统一接口服务的方式开放给各种consumer;

   消息系统:解耦生产者和消费者、缓存消息等;

    用户活动跟踪:kafka经常被用来记录web用户或者app用户的各种活动,如浏览网页、搜索、点击等活动,这些活动信息被各个服务器发布到kafka的topic中,然后消费者通过订阅这些topic来做实时的监控分析,亦可保存到数据库;

   运营指标:kafka也经常用来记录运营监控数据。包括收集各种分布式应用的数据,生产各种操作的集中反馈,比如报警和报告;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值