随笔分类 -  Kafka

Kafka学习
摘要:SpringKafka消费 单线程自动提交 config receiver 单线程手动提交 config receiver 批量消费自动提交 config receiver 批量消费手动提交 config receiver 阅读全文
posted @ 2020-03-27 16:03 6。 阅读(288) 评论(1) 推荐(0) 编辑
摘要:生产者消息发送方式 发送既忘方式(异步发送) 不考虑回调,不考虑消息重复,消息漏发,速度最快。常用作收集操作日志、用户浏览痕迹等不重要的信息。 异步发送 带回调 有回调函数,可以对失败结果或者成功结果进行二次处理。可靠性比发送既忘的方式高,效率比发送既忘方式低(但还是很高,测试过20W条数据眨眼的时 阅读全文
posted @ 2020-03-27 16:02 6。 阅读(582) 评论(1) 推荐(0) 编辑
摘要:接收 处理 发送事务 在消费者接收到数据后,对数据进行处理,然后进行发送到队列。 例如: 用户注册成功后,获得注册优惠券。 当用户注册成功后,需要向用户表插入数据。同时需要向优惠券表插入新的优惠券信息。若在单体应用中,事务的实现非常容易实现,但是在分布式的服务中,事务的实现就需要进行研究了。 分布式 阅读全文
posted @ 2020-03-18 17:22 6。 阅读(360) 评论(0) 推荐(0) 编辑
摘要:生产者事务 Exactly Once 语义 At Least Once 语义 至少发送一次,当生产者ack设置为 1的时候(在发送message后,leader和follower数据全部落盘成功以后,返回ack。但是在follower全部同步完成未完成或已完成,broker发送ack之前,leade 阅读全文
posted @ 2020-03-18 17:20 6。 阅读(406) 评论(0) 推荐(0) 编辑
摘要:Kafka监控工具 官网 https://www.kafka eagle.org/ 是什么 Kafka Eagle是一款用于监控和管理Apache Kafka的完全开源系统,目前托管在Github,由笔者和一些开源爱好者共同维护。它提供了完善的管理页面,很方面的去管理和可视化Kafka集群的一些信息 阅读全文
posted @ 2020-03-17 16:30 6。 阅读(1179) 评论(0) 推荐(0) 编辑
摘要:消费者位移的提交方式以及提交时机需要根据不同的业务场景进行选择,可以看之前的博客kafka消费者相关。 这里只做应用相关,更多的使用场景,该怎么用、何时用要看前面的博客了解原理。 参考博客:https://blog.csdn.net/yy756127197/article/details/10389 阅读全文
posted @ 2020-03-13 19:53 6。 阅读(1227) 评论(0) 推荐(0) 编辑
摘要:[toc] 选择自动提交还是手动提交方式和业务场景相关,可以查看前面的博客,根据原理进行选择。 单线程消费 pom consumerConfig consumer 批量消费 开启批量消费需要3步 1、消费者设置 max.poll.records/ 2、消费者 开启批量消费 factory.setBa 阅读全文
posted @ 2020-03-13 19:45 6。 阅读(2914) 评论(0) 推荐(0) 编辑
摘要:[toc] 生产者根据不同的业户需求和性能需求,选择合适的发送方式,可以达到最大效率。 具体选择哪一种发送方式,要考虑实际的业务场景。 简单来说: 1、保存用户点击情况、不重要的日志分析等大频率储存,但不担心丢失的情况下使用异步发送 2、订单、支付信息,信息量不一定很多,但是非常重要,就需要采取同步 阅读全文
posted @ 2020-03-13 19:31 6。 阅读(615) 评论(0) 推荐(0) 编辑
摘要:![](https://img2018.cnblogs.com/blog/1550092/201912/1550092-20191207221009721-1305513723.png) 阅读全文
posted @ 2019-12-07 22:10 6。 阅读(196) 评论(0) 推荐(0) 编辑
摘要:Kafka消费者端 可靠性保证 作为消费端,消费数据需要考虑的是: 1、不重复消费消息 2、不缺失消费消息 自动提交 offset 的相关参数: enable.auto.commit: 是否开启自动提交 offset 功能(true) auto.commit.interval.ms: 自动提交 of 阅读全文
posted @ 2019-12-07 22:08 6。 阅读(895) 评论(0) 推荐(0) 编辑
摘要:[toc] Kafka生产者端 可靠性保证: producer向broker发送消息数据,需要有一定的可靠性,至少要保证数据: 1、不丢失 2、不重复 producer提供了一些参数,在编写producer是进行合理设置和编写,就可以保证数据的可靠性。 acks 参数配置 为保证producer发送 阅读全文
posted @ 2019-12-07 22:06 6。 阅读(998) 评论(0) 推荐(0) 编辑
摘要:[toc] 消费者客户端多线程实现 KafkaProducer 是线程安全的,然而 KafkaConsumer 却是非线程安全的。KafkaConsumer 中定义了一个 acquire() 方法,用来检测当前是否只有一个线程在操作,若有其他线程正在操作则会抛出 ConcurrentModifcat 阅读全文
posted @ 2019-12-07 21:57 6。 阅读(2669) 评论(0) 推荐(0) 编辑
摘要:consumer 采用 pull(拉)模式从 broker 中读取数据。 push(推)模式很难适应消费速率不同的消费者,因为消息发送速率是由 broker 决定的。它的目标是尽可能以最快速度传递消息,但是这样很容易造成 consumer 来不及处理消息,典型的表现就是拒绝服务以及网络拥塞。而 pu 阅读全文
posted @ 2019-12-07 21:32 6。 阅读(458) 评论(0) 推荐(0) 编辑
摘要:[toc] Kafka 简介 Kafka最初是由LinkedIn公司采用Scala语言开发的一个多分区、多副本并且基于ZooKeeper协调的分布式消息系统,现在已经捐献给了Apache基金会。目前Kafka已经定位为一个分布式流式处理平台,它以 高吞吐、可持久化、可水平扩展、支持流处理等多种特性而 阅读全文
posted @ 2019-12-07 20:20 6。 阅读(1431) 评论(0) 推荐(0) 编辑
摘要:[toc] 集群启动 启动zookeeper集群 cd /usr/app/zookeeper/bin ./zkServer.sh start 依次启动。 启动kafka集群 cd /usr/app/kafka bin/kafka server satrt.sh daemon config/serve 阅读全文
posted @ 2019-12-07 15:26 6。 阅读(358) 评论(0) 推荐(0) 编辑
摘要:[toc] Kafka是强依赖与zookeeper集群的,所以需要先搭建Zookeeper集群。 Zookeeper的集群搭建 上传安装包 因为zookeeper需要java环境所以需要上传jdk和zookeeper的安装包,一般安装文件放在usr/opt目录下,这里我用的是jdk1.7、zooke 阅读全文
posted @ 2019-12-07 15:25 6。 阅读(363) 评论(0) 推荐(0) 编辑
摘要:[toc] bootstrap.servers broker集群地址,格式:ip1:port,ip2:port...,不需要设定全部的集群地址,设置两个或者两个以上即可。 group.id 消费者隶属的消费者组名称,如果为空会报异常,一般而言,这个参数要有一定的业务意义。 fetch.min.byt 阅读全文
posted @ 2019-12-07 15:24 6。 阅读(6268) 评论(0) 推荐(0) 编辑
摘要:[toc] 消费者客户端 消费步骤: 1、配置消费者客户端参数并创建相应的消费者实例。 2、订阅主题。 3、拉取消息并消费 4、提交消费位移 5、关闭消费者实例 订阅主题 通过使用subscribe()方法订阅主题,既可以以集合的形式订阅多个主题,也可以以正则表达式的形式订阅特定模式的主题。 对于消 阅读全文
posted @ 2019-12-07 15:22 6。 阅读(654) 评论(0) 推荐(0) 编辑
摘要:[toc] acks 这个参数用老指定分区中必须由多少个副本收到消息,之后生产者才会认为这条消息写入是成功的。acks参数有三种类型的值(都是字符串类型)。 acks=1 默认值为1.生产者发送消息之后,只要分区的leader副本成功的写入消息,生产端就会收到来自服务端的成功响应,说明发送成功。如果 阅读全文
posted @ 2019-12-07 15:18 6。 阅读(3192) 评论(0) 推荐(0) 编辑
摘要:[toc] 整体架构 生产过程由两个线程协调运行,分别为主线程和sender线程(发送线程)。 主线程中,由KafkaProducer创建消息,然后通过可能的拦截器、序列化器和分区器的作用,缓存消息到消息加载器(RecordAccumulator,也称为消息收集器)中,Sender线程负责从消息加载 阅读全文
posted @ 2019-12-07 14:43 6。 阅读(990) 评论(0) 推荐(0) 编辑