
Springboot整合Kafka
文章平均质量分 95
卡_卡_西
这个作者很懒,什么都没留下…
展开
-
springboot集成整合kafka实现消息的发送与接收、同步发送和异步发送自定义kafkaTemplate、监控消息发送成功失败、消费指定的分区
写在前面:各位看到此博客的小伙伴,如有不对的地方请及时通过私信我或者评论此博客的方式指出,以免误人子弟。多谢!先大体说一下本篇要完成的事:本地连阿里服务器上的kafka向指定topic发送消息 项目中创建一个监听类,接收发送的消息,同时在阿里服务器上创建一个消费者接收消息 使用kafkaTemplate提供的addCallback方法监控消息是否发送成功,并进行下一步处理 消费topic的指定分区数据 发送json数据 监听类使用ConsumerRecord接收消息直在此之前,首先要安装原创 2020-11-19 17:01:56 · 6707 阅读 · 0 评论 -
springboot集成整合kafka-自定义分区策略、将消息发送到指定的分区partition
写在前面:各位看到此博客的小伙伴,如有不对的地方请及时通过私信我或者评论此博客的方式指出,以免误人子弟。多谢! kafka中每个topic可定义多个分区,那么生产者将消息发送到topic时,具体追加到哪个分区呢?上一篇我们已经通过这种方式:@KafkaListener(topics = {"mytopic"},topicPartitions = {@TopicPartition(topic = "mytopic",partitions = {"1","3"})})实现了只消费指定分区的消息,但并没有实.原创 2020-11-19 18:27:31 · 9164 阅读 · 0 评论 -
springboot集成整合kafka-生产者拦截器ProducerInterceptor
写在前面:各位看到此博客的小伙伴,如有不对的地方请及时通过私信我或者评论此博客的方式指出,以免误人子弟。多谢!在之前的两篇文章,对于生产者而言,我们做到了使用KafkaTemplate发送消息、将消息发送到指定partition、我们还使用了带回调的addCallback方法判断消息是发送成功还是失败,并做下一步处理,今天再完善一下关于消费者的使用。想个场景,咱们在玩游戏的时候,是不是经常因为队友太菜,对面太强而破口大骂呢,当你打字骂人的时候,有很多字是发布出去的,都会被替换为**类似的字符,对于.原创 2020-11-20 12:02:59 · 1869 阅读 · 0 评论 -
springboot集成整合kafka-生产者监听器ProducerListener
写在前面:各位看到此博客的小伙伴,如有不对的地方请及时通过私信我或者评论此博客的方式指出,以免误人子弟。多谢! 补充一个简单的东西,生产者监听器,生产者监听器ProducerListener与带回调的kafkatemplate实现类似的功能,或者说是它的一个补充,实现生产者监听器也很简单,只要实现ProducerListener接口,重写onSuccess和onError方法即可,从方法名可看出,onSuccess是消息发送成功后执行的方法,onError是消息发送失败后执行的方法,可以在监听器中进..原创 2020-11-20 14:46:03 · 4787 阅读 · 0 评论 -
springboot集成整合kafka-kafka事务、生产者事务支持、kafkaTemplate.executeInTransaction
写在前面:各位看到此博客的小伙伴,如有不对的地方请及时通过私信我或者评论此博客的方式指出,以免误人子弟。多谢!先看下下面这种情况,程序都出错了,按理说消息也不应该成功 @GetMapping("/send9") public void test9(String message) { kafkaTemplate.send(topic, message); throw new RuntimeException("fail"); }但是执行结果是原创 2020-11-26 18:40:25 · 4422 阅读 · 8 评论 -
springboot集成整合kafka-批量消费、并发消费
由于Kafka的写性能非常高,因此肯定会碰到Kafka消息队列拥堵的情况。遇到这种情况,我们可以通过并发消费、批量消费的方法进行解决。之前配置生产者我没有在yml文件中直接配置,而是新建了一个配置类,在配置类中配置生产者,这样确实有点麻烦了,所以消费者就直接在yml进行配置了。先看下批量消费,想要批量消费,首先要开启批量消费,通过listener.type属性设置为batch即可开启,看下代码吧:spring: kafka: consumer: group-id: te原创 2020-11-27 17:45:25 · 7048 阅读 · 7 评论 -
springboot集成整合kafka-消费者异常处理器ConsumerAwareListenerErrorHandler
写在前面:各位看到此博客的小伙伴,如有不对的地方请及时通过私信我或者评论此博客的方式指出,以免误人子弟。多谢!前面生产者在发送消息异常的时候提供了事务机制,确保消费者不会接收到一些错误的或者不需要的消息,那么当消费者对消息消费处理的时候如果发生了异常呢,当然也需要处理一下异常了,一般我们在监听方法中,只是监听topic中的数据并消费,如果再try catch捕获并处理的话,则会显得代码块非常臃肿不利于维护,当然可以使用springboot提供的@ControllerAdvice注解来统一的异常处理,其.原创 2020-12-01 18:19:58 · 5077 阅读 · 0 评论 -
springboot集成整合kafka-消费过滤器、ConcurrentKafkaListenerContainerFactory
写在前面:各位看到此博客的小伙伴,如有不对的地方请及时通过私信我或者评论此博客的方式指出,以免误人子弟。多谢! 今天记录一下消息过滤器的使用,消息过滤器可以让消息在抵达监听容器前被拦截,过滤器根据系统业务逻辑去筛选出需要的数据交由 KafkaListener 处理,不需要的消息则会过滤掉。使用消息过滤器也很简单,只要两步:1.定义一个过滤器;2.@KafkaListener注解中通过containerFactory属性引用即可。直接贴一下代码:一、定义过滤器/** * 消费者消息过滤器 .原创 2020-12-07 10:11:39 · 7052 阅读 · 0 评论 -
Springboot整合Kafka-自动,手动提交偏移量
本篇记录一下消息的提交方式,默认的消费位移提交的方式是自动提交的,这个由消费者客户端参数enable.auto.commit控制,默认为true,默认的自动提交不是每消费一条消息就提交一次,而是定期的提交,这个定期的周期时间由客户端参数auto.commit.interval.ms配置,默认为5秒,此参数生效的前提是enable.auto.commit参数为true。自动提交消费位移的方式非常简便,它免去了复杂的位移提交逻辑,让编码更简洁。但随之而来的是重复消费和消息丢失的问题。那重复消费和消息丢失的问..原创 2020-12-14 14:05:44 · 15259 阅读 · 1 评论 -
Springboot整合Kafka-控制或关闭消费、动态开启或关闭监听
写在前面:各位看到此博客的小伙伴,如有不对的地方请及时通过私信我或者评论此博客的方式指出,以免误人子弟。多谢! 默认情况下,当项目启动时,监听器就开始工作(监听消费发送到指定 topic 的消息)。如果我们想让监听器在程序运行的过程中能够动态地开启、关闭监听器,可以借助 KafkaListenerEndpointRegistry 实现,只需要定义两个 controller 接口分别通过 KafkaListenerEndpointRegistry 来控制监听器的开启、关闭即可,以下记录下测试代码:..原创 2020-12-14 15:32:02 · 12525 阅读 · 10 评论