| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> Kafka的简介 -> 正文阅读 |
|
[大数据]Kafka的简介 |
前言本篇文章会介绍Kafka,了解kafka是什么,主要用途是什么,了解kafka的特性,以及kafka集群安装,kafka核心概念、工作原理 ;做一个kafka。 简介这上面都描述了kafka是一个什么框架;
强调一个点是流式的计算,流处理,流存储,都强调一个流。 Kafka? 用于构建实时的数据管道和流式的app.它可以水平扩展,高可用,速度快,并且已经运行在数千家公司的生产环境。 通过消息中间件kafka给我们达到流式计算的场景 。 kafka是为了做了分布式流式安全存储数据的平台,水平的扩展集群,天生就是存储,就算数据消费完了也不会删除。 上图体现在kafka集群 可以高可用,达到送数据的效果,以及推送数据的效果。 Kafka? 用于构建实时的数据管道和流式的app.它可以水平扩展,高可用,速度快,并且已经运行在数千家公司的生产环境。 所谓的流式处理,把kafka的数据取过去,有序的处理完了在传送过去,也可以把db里面的数据拿到并处理传送回去。
它可以用于两大类别的应用
:
kafka体系结构有五大组件,生产者 、消费者、 流式处理、连接器、消息中间件。 Kafka有四个核心的API:
在Kafka中,客户端和服务器使用一个简单、高性能、支持多语言的?TCP 协议.此协议版本化并且向下兼容老版本, 我们为Kafka提供了Java客户端,也支持许多其他语言的客户端。 安装环境要求
kafka是scala开发的。但是需要java虚拟机上运行,所以需要java1.8以上 安装
包括下面的 启动程序 kafka安装包全在windows里面的。 配置目录? ?server.properties? 的 kafka配置文件? ,以及zookeeper.properties? zk配置文件 ?在?server.properties配置文件中 包含 节点的唯一编号? 服务端口 并可以指定 ip地址, 默认采用主机名。? ? 默认就是9092 ; 以及 advertised.listeners? 发布 给 生产者和消费者连接地址? 没有配置? ? 这个会发布到zk上去 下面其他的 包括数据目录? 这里并不是日志目录。 以及主题? 元数据存放的zookeeper目录 启动
Kafka
是用
zookeeper
来存储元数据,生产环境请一定要部署一个独立的
zookeeper
集群(至少
3
个
节点)。
集群搭建本身是分布式的
【生产集群】在其他机器上同样安装
kafka
,配置它们连接到同一个
zookeeper
集群、它们的唯一
id
,数 据目录,启动Broker
实例即加入集群。
confifig/server-2.properties:
【启动失败说明】
如果启动第二个或第三个
broker
时提示内存不够用,可以做如下调整:
export KAFKA_HEAP_OPTS="-Xmx256M -Xms256M"
最大最小设为同一值(减少内存的申请和
回收)
--replication-factor 3
备份因子 副本数
3
--partitions 1
分片数 这个主题有几个分片
创建了一个有一个分片,每个分片有
3
个副本的主题
my-13-topic
。
分片是对主题
Topic
的数据的分布式存储,它是对数据的物理分割 。 但它本身是一个逻辑概念。
分片的存储实体是副本
3
个副本,就是这个分片的数据会存
3
份。
Topic: my-13-topic Partition: 0 Leader: 0 Replicas: 0,2,1 Isr: 0,2,1
Partition: 0
分片号
Leader: 0 leader
副本在
0
号
Broker
上
Replicas: 0,2,1
三个副本位于
0 2 1
号
broker
上
Isr: 0,2,1 in sync
处于同步状态的
broker
分片和
broker
的关系
broker:
一般是一台计算机上一个
Broker
分片: 分片的一个副本存放在一个
broker
上。
分片数 是在创建 主题时 根据你的估算数据量来选择的。
监控管理工具?
Kakfa
自身未提供图形化的监控管理工具,市面上有很多开源的监控管理工具,但都不怎么成熟可靠。
Kafka Offffset Monitor
可以实时监控:
它是一个
jar
包,使用很简单
?0.2.0 版本启动命令
启动后就可以在浏览器中访问了:
http://localhost:8088
spring中使用SpringforApacheKafka(SpringKafka)项目将核心Spring概念应用于基于Kafka的消息传递解决方案的开发。它提供了一个“模板”,作为发送消息的高级抽象。它还支持带有@KafkaListener注释和“侦听器容器”的消息驱动POJO。 这些库促进了依赖项注入和声明性的使用。在所有这些情况下,您将看到与Spring框架中的JMS支持和Spring AMQP中的RabbitMQ支持的相似之处。
?在maven项目中引用
添加配置,包括序列化器 在spring中配置 kafka配置类。包括提前配置好的 一些事务等等。 ?数据消费 创建主题等。 ?配置一个消费消费消息 重试三次还不成功,将消息发送到死信队列。
监控数据都是 使用KafkaListener 注解? ?监听收到消息
在运行的时候
发生的时候
type
foo:com.study.kafka.sample_01_pub_sub.common.Foo1,bar:com.study.kafka.sample_02_multi_method_listener.common.Bar1
在json转换 时, 发送时, 消费者根据收到的消息去转
对于转换失败的,会抛异常。
?通过spring的思想,都是配置得到。 MessageConverter的调用 ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 5:24:07- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |