
kafka
文章平均质量分 79
努力的布布
花有重开日,人无再少年。
展开
-
Kafka API
Topic基本的dml操作,如何创建,删除,查询一个topic含有哪些东西创建生产者API创建生产者模拟发送消息,发送消息的时候需要指定消息所属的topic和消息k,v.因为创建topic的时候指定了分区数量,所以会根据消息的key指定消息所属的分区。发送消息有两种方式,即同步和异步。创建消费者API创建消费者,指定消费者组,消费者所属的组。指定消费者消费的topic,在这里,消费者具体消费哪一个分区的内容是根据消费者的分区分配策略指定的。自定义消费者组分区在这里没有指定消费者所属的group,原创 2022-06-24 18:08:48 · 1033 阅读 · 0 评论 -
八、Zookeeper 在 Kafka 中的作用
zk相当于是kafka的一个基础设施,了解zk在kafka中的作用,可以对kafka的原理有进一步的了解。首先从controller看起,这是zk中一个重要的组成:Controller 作为 Kafka Server端一个重要的组件,它的角色类似于其他分布式系统Master的角色,跟其他系统不一样的是,Kafka集群的任何一台Broker都可以作为Controller,但是在一个集群中同时只会有一个 Controller是alive状态。在于分布式系统中,总会有一个地方需要对全局 meta 做一个统一的维护原创 2022-06-13 21:46:19 · 863 阅读 · 0 评论 -
七、kafka怎么保证不丢失消息和不重复消费消息
Kafka中怎么保证消息不会丢失和不重复消费?从两个方面分析:消息推送和消息消费。也就是生产者和消费者两方面。首先我们需要知道topic的概念。生产者在推送消息时,会确定topic和topic中的那个partition。一个消费者组内每个消费者负责消费 一个topic中不同分区的数据,同一个分区同时只能由一个组内消费者消费对于生产者,在推送消息的时候,有以下几种方式来确定topic、topic中的partition。将 producer 发送的数据封装成一个 对象。1.指明 partition 的情况下原创 2022-06-13 21:36:33 · 12282 阅读 · 0 评论 -
六、kafka生产者和消费者的分区分配策略
我们向topic发送消息的时候是要把messages封装成一个ProducerRecord对象的,源码如下:可以看到再new一个ProducerRecord对象时可分为三种情况:1.指明 partition 的情况下,直接将指明的值直接作为 partiton 值;2.没有指明 partition 值但有 key 的情况下,将 key 的 hash 值与 topic 的 partition 数进行取余得到 partition 值;(具体实现可参考:默认分区器org.apache.kafka.clien原创 2022-06-13 21:11:55 · 1356 阅读 · 0 评论 -
五、Kafka 生产者 、 Kafka 消费者与 kafka事务
1.1、分区的原因1.方便在集群中扩展,提高负载能力,每个 Partition 可以通过调整以适应它所在的机器,而一个 topic又可以有多个 Partition 组成,因此整个集群就可以适应任意大小的数据了;2.可以提高并发读写,因为可以以 Partition 为单位读写了。(联想到ConcurrentHashMap在高并发环境下读写效率比HashTable的高效)1.2、分区的原则【*】我们需要将 producer 发送的数据封装成一个 ProducerRecord 对象。1.指明 part原创 2022-06-09 19:19:35 · 1575 阅读 · 0 评论 -
四、Kafka 工作流程及文件存储机制
kafka整体工作流程图:Kafka 生产端发送消息的机制是 Kafka 高吞吐的基础,生产端的基本流程如下图所示:在kafka中,消息以topic进行分类:1.指定生产者向某一个topic生产消息2.定义消费者指定消费的topic和所属组topic是逻辑上的概念,partiotion是物理上的概念。每个 partition 对应于一个 log 文件,该 log 文件中存储的就是 producer 生产的数据。(topic = N partition,partition = log)produ原创 2022-06-08 21:54:33 · 973 阅读 · 0 评论 -
三、Kafka集群配置
Kafka集群配置下载安装和单机版一样,Kafka单机安装不同之处在于配置文件的修改。主要修改点:broker.id三台递增0,1,2就行;listeners=PLAINTEXT://CentOSC:9092监听的主机和端口;log.dirs=/usr/kafka-logs修改日志和数据文件目录地址配置zookeeper.connect=CentOSA:2181,CentOSB:2181,CentOSC:2181是zook集群的连接信息# Licensed to the Apache Sof原创 2022-05-20 22:09:15 · 1142 阅读 · 0 评论 -
二、Kafka单机配置
Kafka单机配置下载安装解压到指定目录tar -zxf kafka_2.11-2.2.0.tgz -C /usr/修改配置文件cd /usr/kafka_2.11-2.2.0/configvi server.properties修改监听端口号。主机名写成配置的和IP映射过的主机名listeners=PLAINTEXT://CenTos:9092 监听端口号log.dirs=/usr/kafka-logs //数据目录日志zookeeper.connect=CenTos:2181原创 2022-05-18 19:01:00 · 388 阅读 · 0 评论 -
一、初识Kafka
初识KafkaApache Kafka是Apache软件基金会的开源的流处理平台,该平台提供了消息的订阅与发布的消息队列,一般用作系统间解耦、异步通信、削峰填谷等作用。同时Kafka又提供了Kafka streaming插件包实现了实时在线流处理。相比较一些专业的流处理框架不同,Kafka Streaming计算是运行在应用端,具有简单、入门要求低、部署方便等优点。消息队列Message QueueKafka Streaming 流处理消息队列是一种在分布式和大数据开发中不可或缺的中间件。在原创 2022-05-17 21:00:46 · 346 阅读 · 0 评论