springboot集成kafka遇到问题

本文介绍如何在SpringBoot中使用Kafka的注解方式进行编程,并探讨了动态调整主题和分区的方法。通过SPeL表达式和自定义类实现split、even、odd等分区策略,适用于分布式部署下任务压力大的场景。
部署运行你感兴趣的模型镜像

使用springboot进行集成,对kafka变成了注解方式编程,例子如下:

@KafkaListener(id = "test0-5", topicPartitions = {
        @TopicPartition(topic = "${topicName}", partitions = {"0", "1"})}, containerFactory = "kafkaListenerContainerFactory")
public void listen1(ConsumerRecord<String, String> record)  {
    messageProcss(record);
}

如果想要动态改变主题和分区就变得相对麻烦,修改主题可以通过注解参数解决或者使用topicPattern模式进行匹配。

但是修改分区就需要我们通过spel表达式进行

partitions = { "#{'${partition.list}'.split(',')}" })

通过代码表示实现split,even,odd等方法

 public static class SplitParts {

        public static String[] odds(int partitions) {
            return split(partitions, i -> i % 2 == 0);
        }

        public static String[] evens(int partitions) {
            return split(partitions, i -> i % 2 == 1);
        }

        private static String[] split(int partitions, IntPredicate predicate) {
            return IntStream.range(0, partitions)
                    .filter(predicate)
                    .mapToObj(i -> String.valueOf(i))
                    .collect(Collectors.toList())
                    .toArray(new String[0]);
        }

    }

这样就能动态调整分区消费,在后面处理任务压力大情况进行分布式部署程序。 

 

您可能感兴趣的与本文相关的镜像

Llama Factory

Llama Factory

模型微调
LLama-Factory

LLaMA Factory 是一个简单易用且高效的大型语言模型(Large Language Model)训练与微调平台。通过 LLaMA Factory,可以在无需编写任何代码的前提下,在本地完成上百种预训练模型的微调

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值