栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

kafka

kafka

目录

Kafka 教程

1. Kafka 简介2. 什么是消息系统

**1) 点对点消息系统**2) 发布-订阅消息系统 3. Kafka 用途

1) 主要功能2) Kafka 主要用途3) Kafka 使用场景 4. Kafka 优势5. 分布式系统消息系统对比 Kafka 基本概念

1. Kafka 概念之间的关系图2. 主题 Topic3. 生产者 Producer4. 消费者 Consumer5. 集群 Cluster 和 代理 Broker kafka的使用:

修改配置文件

zookeeper.properties文件server.properties文件 启动zookeeper启动kafka启动类:

配置kafka 启动消费者

Kafka 教程

Apache Kafka 是一个分布式发布-订阅消息系统,具有高吞吐、低延时、可扩展、容错以及持久化存储等特点,使用 Kafka 可以方便地构建分布式应用程序。

Kafka 将消息保存在磁盘上,并在集群内复制以防止数据丢失。

Kafka 建立在 ZooKeeper 同步服务之上,能与 Apache Storm 和 Spark 很好地集成,进行实时流数据分析。

Apache Kafka 官网地址:https://kafka.apache.org/


1. Kafka 简介

Apache Kafka 是由 Apache 软件基金会开发的一个开源消息系统,使用 Scala 和 Java 编写。

Kafka 最初是由 linkedIn 开发,并于 2011 年初开源。2012 年10 月从 Apache Incubator 毕业,成为 First-class Apache 项目。

Kafka 的目标是为处理实时数据提供一个统一的高吞吐、低延时的平台。

2. 什么是消息系统

消息系统负责将数据从一个应用程序传输到另一个应用程序,因此应用程序可以专注于数据,而不必担心如何共享数据。

消息传递模式有两种:一种是点对点的,另一种是发布-订阅(pub-sub)的消息传递系统。大多数消息传递模式遵循 pub-sub。

1) 点对点消息系统

在点对点系统中,消息将保留在队列中。一个或多个使用者可以使用队列中的消息,但是特定消息最多只能由一个使用者使用。使用者读取队列中的消息后,该消息将从该队列中消失。

点对点系统的典型示例是订单处理系统,其中每个订单将由一个订单处理器处理,但是多个订单处理器可以同时工作。

如下图所示:

2) 发布-订阅消息系统

在发布-订阅系统中,消息保留在主题中。与点对点系统不同,消费者可以订阅一个或多个主题,并消费该主题中的所有消息。

在发布-订阅系统中,消息生产者称为发布者,消息消费者称为订阅者。

一个真实的例子是Dish TV,它发布了体育,电影,音乐等不同的频道,任何人都可以订阅自己的频道集,并在订阅频道可用时获取它们。

如下图所示:

3. Kafka 用途

Kafka是一个分布式流式处理平台。

1) 主要功能

消息队列:发布和订阅消息流,这个功能类似于消息队列,这也是Kafka被归类为消息队列的原因。容错和持久方式存储消息流:Kafka会把消息持久化到磁盘,有效避免消息丢失的风险。流式处理平台:在消息发布的时候进行处理,Kafka提供了一个完整的流式处理类库。 2) Kafka 主要用途

消息队列:构建信息系统,可靠地在应用程序传递数据。数据处理:构建实时的流数据处理程序来转换或处理数据流。 3) Kafka 使用场景

指标 - Kafka 操作监控数据,汇总来自分布式应用程序的统计信息,生成集中的运行数据指标。日志聚合 - Kafka 从多种服务中收集日志,并以标准格式提供给多个消费者。流处理 - 提供给 Storm 和 Spark 流处理框架进行数据处理,并将处理后的数据写入一个新的主题,供用户和应用程序使用。 4. Kafka 优势

高吞吐、低延时 - Kafka 能够达到百万级的消息吞吐量,延迟可达毫秒级。持久化存储 - Kafka可以将消息直接持久化在普通磁盘上,且磁盘读写性能优异。分布式可扩展 - Kafka集群支持热扩展,Kaka集群启动运行后,用户可以直接向集群添加节点。容错性 - Kafka会将数据备份到多台服务器节点,集群中任意一个 broker 节点宕机,Kafka 仍能对外提供服务。多语言支持 - Kafka支持Java、.NET、PHP、Python、Go等多种语言。 5. 分布式系统消息系统对比

Kafka 基本概念::Kafka 是一个分布式的、可分区的、可复制的消息系统。它提供了普通消息系统的功能,但具有自己独特的设计。Kafka 基本概念包括:Topic、Producer、Consumer、Cluster 和 Broker。Kafka producers(生产者)通过网络将消息发送到 Kafka 集群,集群负责保存消息,并向消费者提供消息。Kafka

Kafka 基本概念

Kafka 是一个分布式的、可分区的、可复制的消息系统。不仅提供了普通消息系统的功能,还具有自己独特的设计。

Kafka 基本概念包括:主题 Topic、生产者 Producer、消费者 Consumer、集群 Cluster 和 代理 Broker。

1. Kafka 概念之间的关系图

**Kafka producers(生产者)**通过网络将消息发送到 Kafka 集群,Kafka 集群负责保存消息,并向消费者提供消息。**Kafka cluster(集群)**负责保存生产者提交的消息,并向消费者提供消息。Kafka 集群有多个 broker(代理服务器)组成。**Kafka consumers(消费者)**通过网络从 Kafka 集群拉取消息,进行消费。 2. 主题 Topic

Kafka 将消息以 Topic 为单位进行分类,每一类的消息称之为一个主题(Topic)。

3. 生产者 Producer

发布消息的对象称之为主题生产者(Kafka topic producer)。生产者通常是一个应用程序。

4. 消费者 Consumer

订阅消息并处理发布消息的对象称之为主题消费者(consumers)。消费者通常也是一个应用程序。

5. 集群 Cluster 和 代理 Broker

已发布的消息保存在一组服务器中,称为 Kafka 集群(cluster)。

Kafka 集群中的每一个服务器都是一个代理(Broker)。

消费者可以订阅一个或多个主题(topic),并从 Broker 拉取数据,从而消费这些已发布的消息。

Kafka 消息是指由生产者发送的一条记录,它在 Kafka 中以特定的格式进行存储。随着 Kafka 的迅猛发展,消息格式也在不断的升级改进。Kafka 的消息格式也经历了3个版本:v0、v1 和 v2。Kafka 的消息格式对于使用 Kafka 的开发人员是透明的。也就是说无论是使用生产者发送消息,还是使用消费者使用消息,都无需更关心。

kafka的使用: 修改配置文件 zookeeper.properties文件

server.properties文件

启动zookeeper

在kafka文件下启动命令窗口

输入:

.binwindowszookeeper-server-start.bat .configzookeeper.properties
启动kafka

输入:

binwindowskafka-server-start.bat configserver.properties
启动类: 配置kafka
package main

import (
   "fmt"
   "github.com/Shopify/sarama"
)

func main() {
   //1. 生产者配置
   config := sarama.NewConfig()
   config.Producer.RequiredAcks = sarama.WaitForAll          //ACK
   config.Producer.Partitioner = sarama.NewRandomPartitioner //分区
   config.Producer.Return.Successes = true                   //确认

   //2.连接kafka
   client, err := sarama.NewSyncProducer([]string{"127.0.0.1:9092"}, config)
   if err != nil {
      fmt.Println("producer closed,err:", err)
      return
   }
   defer client.Close()

   //3. 封装消息
   msg := &sarama.ProducerMessage{}
   msg.Topic = "shopping"
   msg.Value = sarama.StringEncoder("happy aaaa")

   //4.发送消息
   pid, offset, err := client.SendMessage(msg)

   if err != nil {
      fmt.Println("send msg failed,err:", err)
      return
   }
   fmt.Printf("pid : %v offset : %v", pid, offset)

}
启动消费者
binwindowskafka-console-consumer.bat  --bootstrap-server 127.0.0.1:9092 --topic shopping --from-beginning

shopping是Topic的值

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/745815.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号