如何解决Azure-eventhubs和spring-cloud-azure-eventhubs-stream-binder有什么区别?
我的要求是使用Spring使用Azure Events Hub进行简单的发布。
检查文档后,我发现有2篇文章演示了集成。 One uses azure-eventhubs库和the other uses spring-cloud-azure-eventhubs-stream-binder.
两者之间有什么区别?
解决方法
首先请注意,在引用本文的旧版本以在Java中使用Azure事件中心时,here是最新的文章。
第一篇文章向您展示如何在“经典” java应用程序中将Java SDK用于事件中心。
第二篇文章介绍了如何在Spring Boot Java应用程序中使用事件中心(Spring Boot是Pivotal维护的开源框架)。
,嗯,我是这样看的。我想说有 3-4 种方法可以做到。您可以作为 Kafka/9093 或 AMQP/5671 连接到 Eventhubs。我认为很遗憾没有任何页面对此提供建议:
- 首先是最基本的:
azure-messaging-eventhubs
lib。我会放azure-core
和azure-core-amqp
是相关的。您可以使用azure-core
连接以进行健康检查,例如:EventHubClient.createFromConnectionStringSync(connectionString,Executors.newSingleThreadScheduledExecutor());
。此方法为您提供了最大的灵活性,但您需要编写更多代码并自行处理配置属性。 - 然后,您可能会看到
azure-spring-cloud-starter-eventhubs
,它有一个名为spring-cloud-starter-azure-eventhubs-kafka
的 kafka 变体。 spring libazure-spring-cloud-stream-binder-eventhubs
可能与此有关。这个库需要一个特定的application.properties
配置(与 #3 不同)。我喜欢这个的一件事是它延迟加载,即使 lib 无法连接,您的 spring-boot 服务也会启动,并且健康检查中会显示问题。 - 然后,我们对
#1

,spring-cloud-azure-eventhubs-stream-binder
中的内容进行了包装。这个库有它自己特定的application.properties
配置(与#2
不同)。这有一个内置的健康检查,但我无法让它工作。有了这个,如果无法建立连接来配置 Bean,您的服务将不会启动。 - 也许您不想使用上述包装库之一。在这种情况下,您也可以只使用基本的
spring-kafka
。我举了一个例子:https://github.com/djangofan/kafka-on-azure
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。