Inviare eventi a Hub eventi di Azure usando JavaSend events to Azure Event Hubs using Java

Hub eventi è un sistema di inserimento a scalabilità elevata, in grado di inserire milioni di eventi al secondo, che permette a un'applicazione di elaborare e analizzare le elevate quantità di dati prodotti dalle applicazioni e dai dispositivi connessi.Event Hubs is a highly scalable ingestion system that can ingest millions of events per second, enabling an application to process and analyze the massive amounts of data produced by your connected devices and applications. Dopo la raccolta in un hub eventi, è possibile trasformare e archiviare i dati usando qualsiasi provider di analisi in tempo reale o un cluster di archiviazione.Once collected into an event hub, you can transform and store data using any real-time analytics provider or storage cluster.

Per altre informazioni, vedere Panoramica di Hub eventi.For more information, see the Event Hubs overview.

Questa esercitazione illustra come inviare eventi a un hub eventi usando un'applicazione console in Java.This tutorial shows how to send events to an event hub by using a console application in Java. Per ricevere eventi usando la libreria host del processore di eventi di Java, vedere questo articolo o fare clic sul linguaggio di ricezione appropriato nel sommario a sinistra.To receive events using the Java Event Processor Host library, see this article, or click the appropriate receiving language in the left-hand table of contents.

prerequisitiPrerequisites

Per completare questa esercitazione è necessario soddisfare i prerequisiti seguenti:In order to complete this tutorial, you need the following prerequisites:

  • Ambiente di sviluppo in Java.A Java development environment. Questa esercitazione usa Eclipse.This tutorial uses Eclipse.
  • Un account Azure attivo.An active Azure account. Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.If you do not have an Azure subscription, create a free account before you begin.

Il codice in questa esercitazione si basa sull'esempio di GitHub SimpleSend, che è possibile esaminare per visualizzare la versione completa dell'applicazione in funzione.The code in this tutorial is based on the SimpleSend GitHub sample, which you can examine to see the full working application.

Inviare eventi a Hub eventiSend events to Event Hubs

La libreria client Java per Hub eventi è disponibile per l'uso in progetti Maven dal repository centrale di Maven.The Java client library for Event Hubs is available for use in Maven projects from the Maven Central Repository. Per fare riferimento a questa libreria, è possibile usare questa dichiarazione di dipendenza all'interno del file di progetto di Maven.You can reference this library using the following dependency declaration inside your Maven project file. La versione corrente è 1.0.0:The current version is 1.0.0:

<dependency>
    <groupId>com.microsoft.azure</groupId>
    <artifactId>azure-eventhubs</artifactId>
    <version>1.0.0</version>
</dependency>

Per diversi tipi di ambienti di compilazione è possibile ottenere in modo esplicito i file JAR rilasciati più recenti dal repository centrale di Maven.For different types of build environments, you can explicitly obtain the latest released JAR files from the Maven Central Repository.

Per un autore di eventi semplice, importare il pacchetto com.microsoft.azure.eventhubs per le classi di client di hub eventi e il pacchetto com.microsoft.azure.servicebus per le classi di utilità, ad esempio eccezioni comuni condivise con il client di messaggistica del bus di servizio di Azure.For a simple event publisher, import the com.microsoft.azure.eventhubs package for the Event Hubs client classes and the com.microsoft.azure.servicebus package for utility classes such as common exceptions that are shared with the Azure Service Bus messaging client.

Dichiarare la classe SendDeclare the Send class

Per l'esempio seguente, creare prima un nuovo progetto Maven per un'applicazione console/shell nell'ambiente di sviluppo Java preferito.For the following sample, first create a new Maven project for a console/shell application in your favorite Java development environment. Denominare la classe Send:Name the class Send:

package com.microsoft.azure.eventhubs.samples.send;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.microsoft.azure.eventhubs.ConnectionStringBuilder;
import com.microsoft.azure.eventhubs.EventData;
import com.microsoft.azure.eventhubs.EventHubClient;
import com.microsoft.azure.eventhubs.PartitionSender;
import com.microsoft.azure.eventhubs.EventHubException;

import java.io.IOException;
import java.nio.charset.Charset;
import java.time.Instant;
import java.util.Random;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Executors;
import java.util.concurrent.ExecutorService;

public class Send {

    public static void main(String[] args)
            throws EventHubException, ExecutionException, InterruptedException, IOException {

Costruire la stringa di connessioneConstruct connection string

Usare la classe ConnectionStringBuilder per costruire un valore di stringa di connessione da passare all'istanza del client di Hub eventi.Use the ConnectionStringBuilder class to construct a connection string value to pass to the Event Hubs client instance. Sostituire i segnaposto con i valori ottenuti durante la creazione dello spazio dei nomi e dell'hub eventi:Replace the placeholders with the values you obtained when you created the namespace and event hub:

   final ConnectionStringBuilder connStr = new ConnectionStringBuilder()
      .setNamespaceName("----NamespaceName-----")
      .setEventHubName("----EventHubName-----")
      .setSasKeyName("-----SharedAccessSignatureKeyName-----")
      .setSasKey("---SharedAccessSignatureKey----");

Inviare eventiSend events

Creare un evento singolare trasformando una stringa nella relativa codifica UTF-8.Create a singular event by transforming a string into its UTF-8 byte encoding. Creare quindi una nuova istanza del client di Hub eventi dalla stringa di connessione e inviare il messaggio:Then, create a new Event Hubs client instance from the connection string and send the message:

byte[] payloadBytes = "Test AMQP message from JMS".getBytes("UTF-8");
EventData sendEvent = new EventData(payloadBytes);

final EventHubClient ehClient = EventHubClient.createSync(connStr.toString(), executorService);
ehClient.sendSync(sendEvent);

// close the client at the end of your program
ehClient.closeSync();

Passaggi successiviNext steps

Per ulteriori informazioni su Hub eventi visitare i collegamenti seguenti:You can learn more about Event Hubs by visiting the following links: