Java 向Azure事件中心发送消息的简单方法-第二种方法
我的第一种方法是使用Java 向Azure事件中心发送消息的简单方法-第二种方法,java,azure,azure-eventhub,Java,Azure,Azure Eventhub,我的第一种方法是使用com.microsoft.azure:azure eventhubs:3.2.0依赖项,但我遇到了以下问题: 所以我的第二种方法是 或者使用另一个依赖项(我也需要使用OAuth2)->不幸的是,我没有找到任何依赖项 或者不要使用依赖项,而是通过自己发送消息来编写代码->这可能是一项艰巨的任务 您能向我推荐支持OAuth2的库吗? 或者是一个示例代码,它支持使用OAuth2通过AMQP将消息发送到事件中心? 还是第三种方法 谢谢, V.关于您的挂起问题,我在原始帖子中发布
com.microsoft.azure:azure eventhubs:3.2.0
依赖项,但我遇到了以下问题:
所以我的第二种方法是
- 或者使用另一个依赖项(我也需要使用OAuth2)->不幸的是,我没有找到任何依赖项
- 或者不要使用依赖项,而是通过自己发送消息来编写代码->这可能是一项艰巨的任务
或者是一个示例代码,它支持使用OAuth2通过AMQP将消息发送到事件中心?
还是第三种方法 谢谢,
V.关于您的挂起问题,我在原始帖子中发布了一个新答案这将解决您的问题 现在回到这个问题,您主要应该遵循(使用事件中心V5SDK,使用生产者/消费者模式) 关于OAuth2的问题,很有可能利用AAD身份验证方法而不是共享访问签名(默认的连接字符串方法)。您可以遵循托管标识方案或基于自定义AAD应用程序的身份验证 关于OAuth2库的建议,Azure世界的第一方选择是无缝集成和支持 关于使用自定义代码编写整个过程的问题,虽然从技术上讲是可行的,但老实说,由于以下原因,投资于这项庞大的任务是非常不现实的:
使用标准库不仅可以为您节省大量的精力和金钱,还可以确保可重用性以及创建者和社区的支持。您好,感谢您的回复!我的想法(将消息发送机制重写到Azure)主要是出于绝望,因为我无法通过
Azure eventhubs
依赖项来规避悬而未决的问题。然而,你在我的另一篇文章中帮助了我(再次感谢!),并且你还推荐了一个更新的库,所以这个问题不再有效。我希望OAuth2也能与com.microsoft.azure:msal4j
配合使用。谢谢谢谢是的,com.microsoft.azure:msal4j是MSAL的Java风格,MSAL是microsoft唯一支持Java的版本,在azure AD中适用于OAuth2。
import com.azure.messaging.eventhubs.*;
public class Sender {
public static void main(String[] args) {
final String connectionString = "EVENT HUBS NAMESPACE CONNECTION STRING";
final String eventHubName = "EVENT HUB NAME";
// create a producer using the namespace connection string and event hub name
EventHubProducerClient producer = new EventHubClientBuilder()
.connectionString(connectionString, eventHubName)
.buildProducerClient();
// prepare a batch of events to send to the event hub
EventDataBatch batch = producer.createBatch();
batch.tryAdd(new EventData("First event"));
batch.tryAdd(new EventData("Second event"));
batch.tryAdd(new EventData("Third event"));
batch.tryAdd(new EventData("Fourth event"));
batch.tryAdd(new EventData("Fifth event"));
// send the batch of events to the event hub
producer.send(batch);
// close the producer
producer.close();
}
}