Kafka小结

一、参数配置

spring:
  kafka:
    listener:
      type: batch # 批量消费@KafkaLister监听
    consumer:
      bootstrap-servers: localhost:9092
      group-id: hrfan-consumer-group
      auto-offset-reset: earliest
      key-deserializer: org.apache.kafka.common.serialization.StringSerializer
      value-deserializer: org.springframework.kafka.support.serializer.JsonSerializer
      properties:
        spring.json.trusted.packages: '*' # 这个不配置,批量消费时候会认为对象的包名不可信错误
      max-poll-records: 500 #拉取条数  
    producer:
      bootstrap-servers: localhost:9092
      key-serializer: org.apache.kafka.common.serialization.StringSerializer
      value-serializer: org.springframework.kafka.support.serializer.JsonSerializer

二、性能优化

spring:
    kafka:  
      producer:
          bootstrap-servers: localhost:9092
          key-serializer: org.apache.kafka.common.serialization.StringSerializer
          value-serializer: org.springframework.kafka.support.serializer.JsonSerializer
          acks: 1 #应答机制
          batch-size: 32768 #批次大小
          buffer-memory: 67108864 #累加器缓冲区大小
          properties:
            linger.ms: 50 #批次大小不满足,超过这个时间也会立即发消息

三、相关注解

1、@Payload 解析信息体绑定到熟悉上

2、@Header 绑定消息上其他熟悉

四、小代码

1、自动创建Topic

@Bean
public NewTopic newTopic(){
   return new NewTopic("audit", 2, (short) 1);
}

/**

需配置adminClient 服务信息
*/

spring.kafka.admin.properties.bootstrap.servers = localhost:9092

### Kafka 集群配置教程 #### 1. 下载并解压 Kafka 安装包 为了开始配置 Kafka 集群,首先需要获取 Kafka 的安装文件。可以从 Apache Kafka 的官方网站下载对应版本的 Kafka 安装包[^2]。确保选择了适合操作系统的版本。 ```bash tar -xzf kafka_2.13-3.0.0.tgz cd kafka_2.13-3.0.0 ``` #### 2. 修改 `server.properties` 文件 对于每个 Broker 节点,在其对应的 `config/server.properties` 文件中设置唯一的 broker.id 参数来区分不同的节点。此外,还需要调整其他参数以适应生产环境的需求: - `listeners=PLAINTEXT://:9092`: 设置监听地址。 - `log.dirs=/tmp/kafka-logs`: 日志存储路径。 - `zookeeper.connect=localhost:2181`: ZooKeeper 连接字符串。 #### 3. 启动 Kafka Broker 通过执行以下命令启动 Kafka Broker 进程[^1]: ```bash bin/kafka-server-start.sh config/server.properties & ``` #### 4. 创建主题 (Topic) 创建用于测试的主题前,先确认所有 Brokers 已经成功启动。之后可以通过如下命令创建新主题: ```bash bin/kafka-topics.sh --create --topic test --bootstrap-server localhost:9092 --partitions 3 --replication-factor 1 ``` --- ### Kafka 集群运行注意事项 #### 数据冗余与恢复机制 当 Broker 进程被终止重启时,Kafka 和 RMQ 均能够保证同步发送的消息不会丢失,这是因为操作系统会将进程遗留在内存中的数据刷新至磁盘上。然而,在某些极端情况下可能会出现极少量的消息重复现象[^5]。 #### 性能优化建议 - **合理规划分区数**:根据业务需求分配合适的 Topic 分区数量,既不过多也不过少。 - **控制日志保留策略**:依据实际应用场景设定合理的日志清理政策,防止磁盘空间耗尽。 - **监控资源消耗情况**:定期检查 CPU、内存及网络带宽等硬件指标的变化趋势,及时发现潜在瓶颈。 --- ### Kafka 技术发展趋势 随着大数据处理技术的发展,Kafka 正朝着以下几个方向演进: - **增强流处理能力**:除了现有的 Streams API 外,还将继续改进和完善对复杂事件处理的支持,进一步简化开发流程[^3]。 - **提升安全特性**:加强身份验证、授权管理等功能模块的安全防护水平,满足日益增长的企业级应用需求。 - **扩大生态系统建设**:积极与其他开源项目合作共建更加完善的中间件解决方案生态体系,促进跨平台集成互通。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值