kafka/消息中间件
崔世勋
这个作者很懒,什么都没留下…
展开
-
shutdownhook中优雅的关闭kafka consumer
consumer是非线程安全的,它不能在多线程中使用,所以在shutdownHook线程中不能使用consumer的close方法。如果你没有在程序退出前很好关闭consumer,最明显的行为主是在下次启动程序消费数据时会发现consumer分配分区的过程可能非常慢,还有一个问题是Kafka不能立即知道consumer已经退出,如果同组在其他地方有其他消费者,rebalance要在心跳超时后才分触...转载 2019-11-04 16:43:26 · 4076 阅读 · 2 评论 -
kafka rebalance ConsumerRebalanceListener
kafka在有新消费者加入或者撤出时,会触发rebalance操作,在subscribe订阅主题的时候,我们可以编写回掉函数,在触发rebalance操作之前和之后,提交相应偏移量和获取偏移量。consumer.subscribe(Collections.singletonList(topic), new SaveOffsetOnRebalance(mulConsumer));clas...转载 2019-11-04 16:16:37 · 1752 阅读 · 0 评论 -
spring boot配置spring-kafka与原生kafka
spring-kafka搭建kafka要注意版本问题,首先看下spring-boot链接kafka的使用。1、添加pom依赖<dependencies><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-sta...转载 2019-11-04 15:59:19 · 1307 阅读 · 0 评论 -
Kafka中的topic和partition
在Kafka中,topic是一个存储消息的逻辑概念,可以认为是一个消息集合。物理上来说,不同的Topic的消息是分开存储的,每个topic可以胸个生产者向它发送消息,也可以有多个消费者去消费其中的消息。每个topic可以划分多个分区,同一topic下的不同分区包令的消息是不同的。每个消息在被添加到分区时,都会分配一个offset,它是消息在此分区中唯一编号 ,Kafka通过offset保证消息...转载 2019-11-04 14:10:47 · 776 阅读 · 0 评论 -
使用Log4j将程序日志实时写入Kafka
很多应用程序使用Log4j记录日志,如何使用Kafka实时的收集与存储这些Log4j产生的日志呢?一种方案是使用其他组件(比如Flume,或者自己开发程序)实时监控这些日志文件,然后发送至Kafka。而另外一种比较便捷的方案是使用Kafka自带的Log4jAppender,在Log4j配置文件进行相应的配置,即可完成Log4j产生的日志实时发送至Kafka中。 log4j.rootLog...转载 2017-09-04 14:26:31 · 1510 阅读 · 2 评论