首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Kafka基础理论理解,欲走大数据之路必铺石阶,行走的kafka!

大数据编程理解,实际上是件很困难的事,大数据需要掌握的技能太多了,get到的技能点也实际更多!

kafka作为一个大数据的必备内容,可以作为大数据的基本标志,下面我们将介绍如何学习大数据

简介

#概念:消息中间件(消息系统)

//消息系统分类:

点对点 消息队列(peer-to-peer)

替换高清大图

发布/订阅 消息队列

消费者在消费时,是通过pull 主动从broker中拉取数据的

#作用:缓存地带

#消息系统适用场景

解耦 各位系统之间通过消息系统这个统一的接口交换数据,无须了解彼此的存在

冗余 部分消息系统具有消息持久化能力,可规避消息处理前丢失的风险

扩展 消息系统是统一的数据接口,各系统可独立扩展

峰值处理能力 消息系统可顶住峰值流量,业务系统可根据处理能力从消息系统中获取并处理对应量的请求

可恢复性 系统中部分组件失效并不会影响整个系统,它恢复后仍然可从消息系统中获取并处理数据

异步通信 在不需要立即处理请求的场景下,可以将请求放入消息系统,合适的时候再处理

#架构

主要分为3部分

生产者(producer),消费者(consumer),kafka(broker)外加一个zookeeper来储存源数据

Broker 中可以包含多个topic ,topic 是一个逻辑存在的基本运行单元

topic 中可以包含多个partation, partition是真正存储数据的地方,类似于书架,一个partition是一个强有序的队列

partition是由segmend组成的

segmend由两部分组成

一部分是.log结尾的文件,作用存储kafka的数据

另一部分是.index结尾的文件,作用kafka存储数据的索引文件

#过程

生产者: 对数据的生产可以使用同步生产也可以使用异步生产,将生产完成的数据 push到kafka中

kafka:  kafka收到生产者生产的数据后,将数据保存到具体的partition中,将该批数据的元数据信息写到zookeeper上,

消费者:  当消费者要消费数据时,会先从zookeeper中获取数据偏移量以及元数据,获取之后,通过主动拉取的形式来消费数据。

#kafka数据生产的格式:

* (key,value)格式的数据:在对数据进行存储的时候,采用的存储策略是对key进行hashcode取模来进行具体分配到哪个partiton中进行存储

* string格式的数据:在对数据进行存储的时候,采用的策略是轮训策略。

如果以上的存储策略都不符合业务生产需求,可以自定义存储策略 需要集成Partitioner接口

目录结构

注意:演示的所有的命令行操作都在bin目录下进行

配置详解

要想启动,我们只需要修改kafka的配置文件就可以了

注意

1.外网地址尽量写ip,别写主机名,不然可能访问不到

2.本地地址如果写ip地址的话,启动producer,consumer 参数为本地ip

3.本地地址如果写localhost的话,启动producer,consumer参数为localhost

默认localhost

服务启动与查看

由于kafka服务以来与zookeeper所以需要先启动zookeeper

而zookeeper又需要java 来支持,所以需要大家自行准备jdk

命令

启动zookeeper服务./zookeeper-server-start.sh ../config/zookeeper.properties

启动kafka服务./kafka-server-start.sh ../config/server.properties

创建topic

./kafka-topics.sh --zookeeper localhost:2181 --create --topic test4 --partitions 3 --replication-factor 1

--zookeeperzookeepe连接地址:端口

--create 说明要创建

--topic topic名称

--partitions partitions数量

启动生产者

./kafka-console-producer.sh --broker-list localhost:9092 --topic test3

由于生产者并不依赖于zookeeper,但是生产者需要知道写入数据到那个broker中的

又因为topic 是运行的基本单元,因此需要指定topic以及broker所在地址

启动消费者

./kafka-console-consumer.sh --zookeeper localhost:2181 --topic test3

在生产者发送数据 可以看到消费者已经在消费

:觉得视频不错,如果你也想学习大数据即可关注私信我,赠送大数据基础学习!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180814A0XY8X00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券