在一些流处理中,比如 kafka 消费等,我们需要不停的解析处理消息,然后进行入库。
有时候消息需要进行落库,每次都是单个落库,对数据库的压力比较大。
可不可以把单个操作变化为批量入库,来提升性能呢?
单个落库改为批量
目的
比如 100 条数据要落库,单个调用数据库 100 次,比一次批量入库耗时要多。
所以我们可以想办法把单个调用进行合并,然后调用入库。
单个同步落库
最基础的单个同步落库流程如下:

2024年3月15日大约 4 分钟
在一些流处理中,比如 kafka 消费等,我们需要不停的解析处理消息,然后进行入库。
有时候消息需要进行落库,每次都是单个落库,对数据库的压力比较大。
可不可以把单个操作变化为批量入库,来提升性能呢?
比如 100 条数据要落库,单个调用数据库 100 次,比一次批量入库耗时要多。
所以我们可以想办法把单个调用进行合并,然后调用入库。
最基础的单个同步落库流程如下:
一个商业化消息队列的性能好坏,其文件存储机制设计是衡量一个消息队列服务技术水平和最关键指标之一。
下面将从 Kafka 文件存储机制和物理结构角度,分析 Kafka 是如何实现高效文件存储,及实际应用效果。
Broker:消息中间件处理结点,一个Kafka节点就是一个broker,多个broker可以组成一个Kafka集群;
Topic:一类消息,例如page view日志、click日志等都可以以topic的形式存在,Kafka集群能够同时负责多个topic的分发;
Partition:topic物理上的分组,一个topic可以分为多个partition,每个partition是一个有序的队列;
λ java -version
java version "1.8.0_371"
Java(TM) SE Runtime Environment (build 1.8.0_371-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.371-b11, mixed mode)
近期在使用 kafka,不过是阿里云的。
一时心痒痒,就像本地安装一下,环境是 window7,作为记录,便于以后学习。
apache kafka 基于 java 实现,所以需要安装下 java 基本环境。
λ java -version
java version "1.8.0_102"
Java(TM) SE Runtime Environment (build 1.8.0_102-b14)
Java HotSpot(TM) Client VM (build 25.102-b14, mixed mode, sharing)