kafka
花和尚也有春天
会收集一些不错的文章,时常品读,也学着自己总结一些东西,坚持努力的方向!
展开
-
kafka:三种消费模式
自动提交offset以下实例代码展示了如何自动提交topic的offset:public void autoOffsetCommit() { Properties props = new Properties(); props.put("bootstrap.servers", "binghe100:9092"); props.put("group.id", "bin...转载 2020-03-31 13:10:59 · 2500 阅读 · 0 评论 -
kafka:工具:kafkaTool 使用方法
左上角File-Add New Connection...,添加链接(1)File-Add New Connection...-Add Cluster,弹框配置以下内容General配置:Cluster name=192.168.102.124:2181Kafka Cluster Version=0.11Zookeeper Host=192.168.102.124...转载 2019-12-26 16:33:24 · 18224 阅读 · 3 评论 -
Kafka:消息格式的选择 Avro JSON XML String JavaBean
使用Kafka是应该用怎样的消息格式才是最优?决定我们使用何种消息格式考虑的因素有两种,一个是方便,一个效率。就方便来说其实就是数据的转换(或者Mapping),效率包括时间和空间两个维度,当然能压缩最小无论是空间还是时间都是良好的选择。所以不同的场景应该有不同的最优,Kafka提供了String和Byte数组两种选择,分别为:org.apache.kafka.common.seria...转载 2018-10-18 08:26:39 · 2393 阅读 · 0 评论 -
Kafka:消息格式的演变
对于一个成熟的消息中间件而言,消息格式不仅关系到功能维度的扩展,还牵涉到性能维度的优化。随着Kafka的迅猛发展,其消息格式也在不断的升级改进,从0.8.x版本开始到现在的1.1.x版本,Kafka的消息格式也经历了3个版本。本文这里主要来讲述Kafka的三个版本的消息格式的演变。Kafka根据topic(主题)对消息进行分类,发布到Kafka集群的每条消息都需要指定一个topic,每...转载 2018-10-18 08:52:34 · 200 阅读 · 0 评论 -
kafka:如何做到1秒发布百万级条消息
目录1 KAFKA高吞吐率性能揭秘1.1 KAFKA让代码飞起来之写得快1.2 KAFKA让代码飞起来之读得快▲零拷贝▲批量压缩2 KAFKA数据可靠性深度解读2.1 Partition recovery过程2.2 数据同步KAFKA是分布式发布-订阅消息系统,是一个分布式的,可划分的,冗余备份的持久性的日志服务。它主要用于处理活跃的流式数据。现在被广泛地应...转载 2018-10-18 09:47:19 · 356 阅读 · 0 评论 -
kafka:leader选举(broker /分区)
broker的leader:Kafka集群Leader选举原理我们知道Zookeeper集群中也有选举机制,是通过Paxos算法,通过不同节点向其他节点发送信息来投票选举出leader,但是Kafka的leader的选举就没有这么复杂了。 Kafka的Leader选举是通过在zookeeper上创建/controller临时节点来实现leader选举,并在该节点中写入当前broker的信...转载 2018-10-15 09:09:12 · 5561 阅读 · 3 评论 -
kafka:常用命令
以下是kafka常用命令行总结:0.查看有哪些主题: ./kafka-topics.sh --list --zookeeper 192.168.0.201:121811.查看topic的详细信息./kafka-topics.sh -zookeeper 127.0.0.1:2181 -describe -topic testKJ12、为topic增加副本./kafka-rea...转载 2018-10-20 00:04:51 · 173 阅读 · 0 评论 -
kafka:如何消费消息 & perfect
目录消费者与消费组消费组与分区重平衡创建Kafka消费者订阅主题拉取循环消费者配置提交(commit)与位移(offset)自动提交提交当前位移异步提交混合同步提交与异步提交提交特定位移重平衡监听器(Rebalance Listener)从指定位移开始消费优雅退出反序列化自定义反序列化使用Avro反序列化单个消费者消费...转载 2018-10-20 00:05:12 · 689 阅读 · 1 评论 -
kafka:修改 topic的offset
查询topic的offset的范围用下面命令可以查询到topic:test broker:suna:9092的offset的最小值:bin/kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list suna:9092 -topic test --time -2输出test:0:1288查询offset的最大值:bin...转载 2018-10-20 00:05:03 · 1163 阅读 · 0 评论 -
kafka :消费者offset记录位置和方式
kafka消费者在会保存其消费的进度,也就是offset,存储的位置根据选用的kafka api不同而不同。首先来说说消费者如果是根据javaapi来消费,也就是【kafka.javaapi.consumer.ConsumerConnector】,通过配置参数【zookeeper.connect】来消费。这种情况下,消费者的offset会更新到zookeeper的【consumers/{gro...转载 2018-10-20 00:05:50 · 1883 阅读 · 0 评论 -
kafka:在zookeeper中存储结构
目录1.topic注册信息2.partition状态信息3. Broker注册信息4. Controller epoch: 5. Controller注册信息:6. Consumer注册信息:7. Consumer owner:8. Consumer offset:1.topic注册信息/brokers/topics/[topic] :存储...转载 2018-10-20 00:05:40 · 292 阅读 · 0 评论 -
kafka:一直重复消费消息
Spring - kafka 遇到问题:业务线推来数据需要同步,这边提供的是dubbo接口,推送过来16w条数据,很快就都接收到了,但是kafka出现了循环消费,始终停不了。查看kafka日志如下:解决问题是调高了timeout时间前后对比:第二天又推大量数据,又出现同样的问题:然后又配置了参数如下:发现问题解决了解决参考: https://fl...转载 2018-11-26 21:32:29 · 4384 阅读 · 0 评论 -
kafka:启动停止方式
本人环境:3台虚拟机分别为sparkproject1 192.168.124.110sparkproject2 192.168.124.111sparkproject3 192.168.124.112参考:https://blog.csdn.net/weixin_38750084/article/details/90650015首先我们先看下没有启动...原创 2019-05-30 00:04:30 · 8841 阅读 · 0 评论 -
kafka:springboot集成kafka,并完成单机版安装
因为我的环境:springboot版本:<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.4.RELEASE</v...原创 2019-06-02 23:34:13 · 1174 阅读 · 0 评论 -
docker:安装kafka单机版
注意:我这里需要springboot集成kafka,所以需要安装。集成会有报错,解决见最后。kafka依赖zookeeper,需要先安装zk,参考:https://blog.csdn.net/weixin_38750084/article/details/90548149第一步:搜索镜像docker search kafka 查看有哪些镜像可用。[root@Maste...原创 2019-06-04 01:51:45 · 5345 阅读 · 0 评论 -
kafka:过期数据清理
Kafka 作为一个高吞吐的消息中间件和传统的消息中间件一个很大的不同点就在于它的日志实际上是以日志的方式默认保存在/kafka-logs文件夹中的。虽然默认有7天清楚的机制,但是在数据量大,而磁盘容量不足的情况下,经常出现无法写入的情况。如何调整Kafka的一些默认参数就显得比较关键了。这里笔者整理了一些常见的配置参数供大家参考:分段策略属性属性名 | 含义 |默认值---|---|--...转载 2018-10-13 13:48:49 · 20291 阅读 · 2 评论 -
kafka:如何收集项目日志统一发送到kafka中?
上一篇(http://qindongliang.iteye.com/blog/2354381 )写了收集sparkstreaming的日志进入kafka便于后续收集到es中快速统计分析,今天就再写一篇如何在普通应用程序实时收集日志,上一篇写的毕竟是分布式环境下的操作,有一定的特殊性,如MapReduce,Spark运行的日志和普通项目的日志是不太一样的。所谓的普通程序就是web项目的或者非we...转载 2018-10-13 12:56:19 · 6631 阅读 · 0 评论 -
kafka:压缩
压缩Kafka支持以集合(batch)为单位发送消息,在此基础上,Kafka还支持对消息集合进行压缩,Producer端可以通过GZIP或Snappy格式对消息集合进行压缩。Producer端进行压缩之后,在Consumer端需进行解压。压缩的好处就是减少传输的数据量,减轻对网络传输的压力,在对大数据处理上,瓶颈往往体现在网络上而不是CPU。 那么如何区分消息是压缩的还是未压缩的呢,K...转载 2018-10-05 22:15:46 · 2847 阅读 · 0 评论 -
kafka:为什么说Kafka使用磁盘比内存快
Kafka最核心的思想是使用磁盘,而不是使用内存,可能所有人都会认为,内存的速度一定比磁盘快,我也不例外。在看了Kafka的设计思想,查阅了相应资料再加上自己的测试后,发现磁盘的顺序读写速度和内存持平。 而且Linux对于磁盘的读写优化也比较多,包括read-ahead和write-behind,磁盘缓存等。如果在内存做这些操作的时候,一个是JAVA对象的内存开销很大,另一...转载 2018-09-25 12:38:19 · 3242 阅读 · 0 评论 -
kafka:为什么Kafka可以高效快速的存储
总结下:1.顺序写入 因为硬盘是机械结构,每次读写都会寻址->写入,其中寻址是一个“机械动作”,它是最耗时的。所以硬盘最“讨厌”随机I/O,最喜欢顺序I/O。为了提高读写硬盘的速度,Kafka就是使用顺序I/O。如果一个topic建立多个分区那么每个parathion都是一个文文件,收到消息后Kafka会把数据插入到文件末尾。 2. Memory Mapped Files(内存映射...转载 2018-09-25 13:29:00 · 1378 阅读 · 0 评论 -
kafka:比其他消息系统快的原因
Kafka的消息是保存或缓存在磁盘上的,你可能会认为:在磁盘上读写数据是会降低性能的,因为寻址会比较消耗时间。事实上,磁盘读写的快慢取决于你怎么使用它了(顺序读写、随机读写)。Kafka的设计目标是高吞吐量,它比其它消息系统快的原因体现在以下几方面:1、Kafka操作的是序列文件I / O(序列文件的特征是按顺序写,按顺序读),为保证顺序,Kafka强制点对点的按顺序传递消息,这意味着...转载 2018-09-25 13:46:25 · 195 阅读 · 0 评论 -
kafka:Spark-Streaming获取kafka数据的两种方式:Receiver与Direct
简单理解为:Receiver方式是通过zookeeper来连接kafka队列,Direct方式是直接连接到kafka的节点上获取数据回到顶部Receiver使用Kafka的高层次Consumer API来实现。receiver从Kafka中获取的数据都存储在Spark Executor的内存中,然后Spark Streaming启动的job会去处理那些数据。然而,在默认的配置下,这种...转载 2018-09-21 21:14:08 · 202 阅读 · 0 评论 -
kafka:如何保证消息不丢失不重复
首先要考虑这么几个问题: 消息丢失是什么造成的?(从生产端和消费端两个角度来考虑) 消息重复是什么造成的?(从生产端和消费端两个角度来考虑) 如何保证消息有序? 如果保证消息不重不漏,损失的是什么? 下面是文章详情,这里先简单总结一下: 消费端重复消费:很容易解决,建立去重表。 消费端丢失数据:也容易解决,关闭自动提交of...转载 2018-10-04 18:30:10 · 9896 阅读 · 2 评论 -
kafka:参数配置详解
broker config属性 默认值 描述 broker.id 必填参数,broker的唯一标识 log.dirs /tmp/kafka-logs Kafka数据存放的目录。可以指定多个目录,中间用逗号分隔,当新partition被创建的时会被存放到当前存放partition最少的目录。 port 9092 BrokerServ...转载 2018-10-04 23:33:07 · 929 阅读 · 0 评论 -
kafka:性能优化
目录1.partition数量配置2.日志保留策略设置3.文件刷盘策略4.网络和io操作线程配置优化5.异步提交(kafka.javaapi.producer)6.producer版本参考使用新producer发送少量消息时丢失7.性能测试8.生产端发送堵塞producer使用线程池1.partition数量配置partition数量由topic...转载 2018-10-05 00:05:20 · 4237 阅读 · 0 评论 -
kafka:sync、async以及oneway 几种发送消息模式 & perfect
kafka有同步(sync)、异步(async)以及oneway这三种发送方式,某些概念上区分也可以分为同步和异步两种,同步和异步的发送方式通过“producer.type”参数指定,而oneway由“request.require.acks”参数指定。1. sync vs async在官方文档Producer Configs中有如下:Property Default De...转载 2018-10-05 00:38:00 · 1948 阅读 · 1 评论 -
kafka:topic为什么要进行分区?副本机制是如何做的?
kafka为什么要在topic里加入分区的概念?如果没有分区,topic中的segment消息写满后,直接给订阅者不是也可以吗?Kafka可以将主题划分为多个分区(Partition),会根据分区规则选择把消息存储到哪个分区中,只要如果分区规则设置的合理,那么所有的消息将会被均匀的分布到不同的分区中,这样就实现了负载均衡和水平扩展。另外,多个订阅者可以从一个或者多个分区中同时消费数据,以支撑...转载 2018-10-05 10:39:26 · 29001 阅读 · 6 评论 -
kafka:组件、角色
1、Kafka简介Apache下的项目Kafka(卡夫卡)是一个分布式流处理平台,它的流行是因为卡夫卡系统的设计和操作简单,能充分利用磁盘的顺序读写特性。kafka每秒钟能有百万条消息的吞吐量,因此很适合实时的数据流处理。例如kafka在线日志收集系统可作为flume的实时消息sink端,再通过kafka的消费者将消息实时写入hbase数据库中。卡夫卡以topic分类对记录进行存储,每个记...转载 2018-10-05 16:38:07 · 2928 阅读 · 0 评论 -
kafka:发现kafka丢消息后的排查
背景: 最近在用kafka做消息中间件,producer从hive中读取消息发送到kafka,后端storm对消息分类发送到elasticsearch建立索引。问题: hive表中总共350万数据,当时整个全量索引结束后发现,最后索引条数总共310万左右。storm日志没有任何错误日志。排查: 首先排查storm consumer的问题,由于发现s...转载 2018-10-05 14:13:26 · 3617 阅读 · 0 评论 -
kafka:与zookeeper的联系是什么?
我们先看一张图,zookeeper的存储结构图:可以看到在zookeeper中存储的信息有broker,consumer等重要znode信息。可以感知到,每个kafka节点会在zookeeper中注册该机器的配置信息。然后注册完的kafka节点的topic信息会存在topics目录下面。根据zookeeper目录列表可以看到,zookeeper存储了kafka集群的所有信...转载 2018-10-05 15:52:16 · 7618 阅读 · 0 评论