我一直在尝试做一些搜索(Google,Slack,Stack),但还没有找到答案。我们有一些使用Spring Cloud Streams编写的应用程序,并且有兴趣将后端从Kafka交换到Pulsar。Spring目前没有任何对Kafka的原生支持,但是pulsar似乎提供了使用Kafka API直接与pulsar通信(https://pulsar.apache.org/docs/en/adaptors-kafka)的能力。
我想知道是否有人尝试在Spring cloud消息传递的上下文中使用这个Kafka-clients库的替代品。
当然,另一种有效的方法是重写代码-但我想求助于社区,看看到目前为止是否有人走上了这条路。
谢谢
发布于 2020-01-27 22:11:12
虽然不完全符合您的要求,但我已经尝试使用阴影库org.apache.pulsar: Pulsar -client-kafka:2.5.0将pulsar与Spring-Kafka集成在一起,并使用此堆栈跟踪失败:
Caused by: java.lang.UnsupportedOperationException: null
at org.apache.kafka.clients.consumer.KafkaConsumer.partitionsFor(KafkaConsumer.java:650) ~[pulsar-client-kafka-2.5.0.jar:2.5.0]
at org.springframework.kafka.listener.AbstractMessageListenerContainer.checkTopics(AbstractMessageListenerContainer.java:312) ~[spring-kafka-2.2.10.RELEASE.jar:2.2.10.RELEASE]
at org.springframework.kafka.listener.ConcurrentMessageListenerContainer.doStart(ConcurrentMessageListenerContainer.java:136) ~[spring-kafka-2.2.10.RELEASE.jar:2.2.10.RELEASE]
at org.springframework.kafka.listener.AbstractMessageListenerContainer.start(AbstractMessageListenerContainer.java:292) ~[spring-kafka-2.2.10.RELEASE.jar:2.2.10.RELEASE]
at org.springframework.kafka.config.KafkaListenerEndpointRegistry.startIfNecessary(KafkaListenerEndpointRegistry.java:311) ~[spring-kafka-2.2.10.RELEASE.jar:2.2.10.RELEASE]
at org.springframework.kafka.config.KafkaListenerEndpointRegistry.start(KafkaListenerEndpointRegistry.java:255) ~[spring-kafka-2.2.10.RELEASE.jar:2.2.10.RELEASE]
at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:182) ~[spring-context-5.1.10.RELEASE.jar:5.1.10.RELEASE]使用AbstractMessageListenerContainer.checkTopics的自定义实现可以绕过这个特定的错误(对于这些特定的库版本),但是您可能会遇到更多的问题。
https://stackoverflow.com/questions/58998948
复制相似问题