
Kafka
文章平均质量分 82
阿弥陀佛僧
知幻即离,不假方便;离幻即觉,亦无渐次。
展开
-
Kafka11——Kafka监控
Kafka Eagle启动步骤如下: 1、修改kafka的服务端启动脚本 将kafka-server-start.sh命令中的如下代码:if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"fi 修改为:if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then export KAFKA_HEAP_OPTS="server -Xmx2G -Xms2G -XX:P原创 2021-12-27 10:01:59 · 1241 阅读 · 0 评论 -
Kafka10——自定义Interceptor和流式计算
一、拦截器原理 Producer 拦截器(interceptor)是 Kafka 在 0.10 版本被引入的,主要用于实现 clients 端的定制化控制逻辑。 对于 producer 而言,interceptor 使得用户在消息发送前以及 producer 回调逻辑前有机会对消息做一些定制化需求,比如修改消息等。同时,producer 允许用户指定多个 interceptor 按序作用于同一条消息从而形成一个拦截链(interceptor chain)。Intercetpor 的实现接口是 org.a原创 2021-12-24 13:36:21 · 1360 阅读 · 0 评论 -
Kafka09——Kafka的API
一、Producer API 1、消息发送流程 Kafka 的 Producer 发送消息采用的是异步发送的方式。在消息发送的过程中,涉及到了两个线程——main 线程和 Sender 线程,以及一个线程共享变量——RecordAccumulator。main 线程将消息发送给 RecordAccumulator,Sender 线程不断从 RecordAccumulator 中拉取消息发送到 Kafka broker。 相关参数: batch.size:只有数据积累到 batch.size原创 2021-12-23 17:29:01 · 142 阅读 · 0 评论 -
Kafka08——kafka的事务
Kafka 从 0.11 版本开始引入了事务支持。事务可以保证 Kafka 在 Exactly Once 语义的基础上,生产和消费可以跨分区和会话,要么全部成功,要么全部失败。一、Producer 事务 为了实现跨分区跨会话的事务,需要引入一个全局唯一的 Transaction ID,并将 Producer 获得的PID 和 Transaction ID 绑定。这样当 Producer 重启后就可以通过正在进行的 Transaction ID 获得原来的 PID。 为了管理 Transaction,原创 2021-12-23 10:32:57 · 2437 阅读 · 0 评论 -
Kafka07——zookeeper在kafka中的作用
kafaka集群中的 Broker 和 Consumer 都需要连接 Zookeeper,而 Producer 则直接连接 Broker。zookeeper在kafka中的作用如下: 1、Broker的注册 Broker是分布式部署的,并且相互之间是独立的。但是需要有一个注册系统能够将整个集群中的Broker管理起来,此时就使用到了Zookeeper。在Zookeeper上会有一个专门用来进行Broker服务器列表记录的节点:/brokers/ids 每个Broker在启动时,都会到Zook原创 2021-12-22 17:24:11 · 585 阅读 · 0 评论 -
Kafka06——高效读写数据
一、写数据(生产数据-顺序写磁盘) Kafka 的 producer 生产数据,要写入到 log 文件中,写的过程是一直追加到文件末端,为顺序写。官网有数据表明,同样的磁盘,顺序写能到 600M/s,而随机写只有 100K/s。这与磁盘的机械机构有关,顺序写之所以快,是因为其省去了大量磁头寻址的时间。二、读数据(消费数据) Kafka 高吞吐量的其中一个重要功臣就是“零拷贝”。从字面上理解就是数据不需要多次拷贝,系统性能大幅度提升。其实,不仅在kafka中,Java NIO,netty,rocketM原创 2021-12-22 16:44:46 · 1055 阅读 · 0 评论 -
Kafka05——消费者
一、消费方式 consumer 采用 pull(拉)模式从 broker 中读取数据。 push(推)模式很难适应消费速率不同的消费者,因为消息发送速率是由 broker 决定的。它的目标是尽可能以最快速度传递消息,但是这样很容易造成 consumer 来不及处理消息,典型的表现就是拒绝服务以及网络拥塞。而 pull 模式则可以根据 consumer 的消费能力以适当的速率消费消息。 pull 模式不足之处是,如果 kafka 没有数据,消费者可能会陷入循环中,一直返回空数据。针对这一点,Kafka原创 2021-12-21 08:39:45 · 434 阅读 · 0 评论 -
Kafka04——生产者
一、分区策略 1、分区的原因 ①方便在集群中扩展,每个 Partition 可以通过调整以适应它所在的机器,而一个 topic 又可以由多个 Partition 组成,因此整个集群就可以适应任意大小的数据了; ②可以提高并发,因为可以以 Partition 为单位进行读写; 2、分区的原则 我们需要将 producer 发送的数据封装成一个 ProducerRecord 对象,ProducerRecord 类中提供了如下 6 种构造:public ProducerRecord(@NotNu原创 2021-12-20 10:17:46 · 875 阅读 · 0 评论 -
Kafka03——Kafka 工作流程及文件存储机制
Kafka 中消息是以 topic 进行分类的,生产者生产消息、消费者消费消息,都是面向 topic 的。 topic 是逻辑上的概念,而 partition 是物理上的概念,每个 partition 对应于一个 log 文件,该 log 文件中存储的就是 producer 生产的数据。Producer 生产的数据会被不断追加到该 log 文件末端,且每条数据都有自己的 offset。消费者组中的每个消费者,都会实时记录自己消费到了哪个 offset,以便出错恢复时,从上次的位置继续消费。 该文件可.原创 2021-12-17 17:51:25 · 733 阅读 · 0 评论 -
Kafka02——命令行操作
一、topic的操作 1、查看当前服务器中的所有 topic./kafka-topics.sh --bootstrap-server 192.168.56.93:9092 --list# 或./kafka-topics.sh --list --bootstrap-server 192.168.56.93:9092 2、创建 topic./kafka-topics.sh --create --bootstrap-server 192.168.56.93:9092 --topic topicTes原创 2021-12-17 17:04:19 · 1462 阅读 · 0 评论 -
Kafka01——kafka的基础架构和安装
一、kafka的基础架构 如图所示:kafka的基础架构中包含生产者、kafka集群、消费者和zk。 生产者:生产消息,并将消息发送到kafka中指定的topic的指定分区(partition)中。 kafka集群:一个kafka集群中有多个kafka服务器(broker),这些broker通过zk形成一个集群。每个broker可以容纳多个topic,为了使消息分散在不同的broker上以提升性能或者说提升吞吐能力,kafka将每个topic分成多个分区(partition)存储在不同的broker原创 2021-04-08 23:29:46 · 234 阅读 · 1 评论