我有一个springboot项目,它的依赖项使用kafka进行日志记录。我无法摆脱上述依赖关系,因为我的逻辑需要来自该依赖关系的代码
我想在本地启动所说的应用程序而不运行kafka,这样我就可以测试我的简单db查找代码。
我试过禁用自动配置
spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.kafka.KafkaAutoConfiguration
我尝试通过bean配置将missingtopicsfaltal设置为false
@Bean(name = "kafkaListenerContainerFactory")
public ConcurrentKafkaListenerContainerFactory<?, ?> kafkaListenerContainerFactory(
ConsumerFactory<Object, Object> kafkaConsumerFactor,
ConcurrentKafkaListenerContainerFactoryConfigurer configurer) {
ConcurrentKafkaListenerContainerFactory<Object, Object> factory =
new ConcurrentKafkaListenerContainerFactory<>();
configurer.configure(factory, kafkaConsumerFactor);
ContainerProperties containerProperties = factory.getContainerProperties();
containerProperties.setMissingTopicsFatal(false);
...
return factory;
}
但是很明显,这个设置已经是错误的,因为我的应用程序运行时没有失败,只是tomcat不想打开listen端口
我遇到的所有其他解决方案都涉及到更改使用Kafka的代码;在本例中,我使用的依赖关系。但我无法改变这种依赖关系。
应用程序启动,但spring拒绝打开侦听端口,并继续循环错误
Connection to node -1 (localhost/127.0.0.1:9092) could not be established. Broker may not be available.
应用程序运行良好,kafka在本地运行,但由于kafka的资源使用,现在只需输入就很慢了。请帮忙。
2条答案
按热度按时间30byixjq1#
在我看来,你的主要问题是当地Kafka安装的资源使用。也许先看看它的配置和数据。也许从刷新和清除所有本地数据开始?
或者,您可以在进程中运行kafkaserver,在主类中类似这样:
或者你可以从docker那里找到Kafka。参见docker compose文件https://github.com/confluentinc/examples/tree/5.4.1-post/cp-all-in-one-community.
你可能只需要Zookeeper和经纪人:
docker-compose.yml码:
d8tt03nd2#
您可以通过spring配置文件禁用整个kafkalistenercontainerFactorybean:
并使用spring配置文件nokafka运行应用程序。
e、 g.使用最新的spring boot maven插件:
或通过java系统属性: