Latihan - Mengonfigurasi aplikasi untuk mengirim atau menerima pesan melalui pusat aktivitas

Selesai

Kini Anda siap mengonfigurasi aplikasi penerbit dan konsumen untuk pusat aktivitas.

Di unit ini, Anda mengonfigurasi aplikasi untuk mengirim atau menerima pesan melalui hub peristiwa Anda. Satu aplikasi bertindak sebagai pengirim pesan (SimpleSend), yang lain sebagai penerima pesan (EventProcessorSample). Karena aplikasi ini ditulis dalam Java, Anda dapat melakukan semua pengembangan, pengujian, dan manajemen di browser Anda. Namun, konfigurasi yang sama harus digunakan untuk setiap platform, seperti .NET. Aplikasi ini disimpan dalam repositori GitHub.

Membuat akun penyimpanan standar dengan tujuan umum

Aplikasi penerima Java menyimpan pesan di Azure Blob Storage, yang memerlukan akun penyimpanan. Untuk membuat akun penyimpanan (tujuan umum V2), gunakan perintah storage account create. Kami menentukan parameter berikut untuk perintah ini:

Parameter Deskripsi
nama (diperlukan) Nama untuk akun penyimpanan Anda.
grup-sumber-daya (diperlukan) Pemilik grup sumber daya adalah grup sumber daya kotak pasir, yang sudah didefinisikan sebagai nilai default.
lokasi (opsional) Wilayah sudah didefinisikan sebagai nilai default, tetapi Anda dapat menyertakannya jika Anda ingin mengatur wilayah yang berbeda dari lokasi grup sumber daya default.
sku Nilai SKU default akun penyimpanan adalah Standard_RAGRS. Tetapi dalam latihan ini, kami menentukan nilai tersebut.

Dalam latihan sebelumnya, kami menentukan nilai default untuk grup sumber daya dan lokasi, sehingga kami dapat menghilangkan parameter tersebut dari perintah.

  1. Di Azure Cloud Shell, atur nama akun penyimpanan ke variabel. Nama akun penyimpanan harus unik di dalam Azure dan harus berisi 3 hingga 24 angka atau huruf kecil.

    STORAGE_NAME=storagename$RANDOM
    
  2. Jalankan perintah berikut untuk membuat akun penyimpanan.

    az storage account create --name $STORAGE_NAME --sku Standard_RAGRS --encryption-service blob
    

    Tip

    Mungkin perlu beberapa saat untuk membuat akun penyimpanan ini. Jika pembuatan akun penyimpanan gagal, ubah variabel lingkungan dan coba lagi.

  3. Jalankan perintah berikut untuk mendapatkan kunci akses yang terkait dengan akun penyimpanan Anda.

    az storage account keys list --account-name $STORAGE_NAME
    
  4. Dua kunci yang terkait dengan akun penyimpanan Anda adalah output dalam format JSON. Salin dan simpan nilai key1 untuk digunakan di masa mendatang. Anda memerlukan kunci ini untuk mengakses akun penyimpanan Anda.

  5. Jalankan perintah berikut untuk mendapatkan string koneksi untuk akun penyimpanan Anda.

    az storage account show-connection-string -n $STORAGE_NAME
    
  6. Output ini berisi rincian koneksi untuk akun penyimpanan Anda. Salin dan simpan nilai connectionString. Hasilnya akan terlihat seperti ini:

    "DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net;AccountName=storage_account_name;AccountKey=VZjXuMeuDqjCkT60xX6L5fmtXixYuY2wiPmsrXwYHIhwo736kSAUAj08XBockRZh7CZwYxuYBPe31hi8XfHlWw=="
    
  7. Jalankan perintah berikut untuk membuat kontainer yang disebut pesan di akun penyimpanan Anda. Gunakan nilai connectionString yang Anda salin di langkah sebelumnya.

    az storage container create --name messages --connection-string "<connection string here>"
    

Mengkloning repositori GitHub pusat aktivitas

Di Cloud Shell, kloning repositori GitHub pusat aktivitas dengan git. File sumber untuk aplikasi yang Anda bangun di unit ini terletak di repositori GitHub.

  1. Jalankan perintah berikut untuk memastikan bahwa Anda berada di direktori utama di Cloud Shell, lalu untuk mengkloning repositori ini.

    cd ~
    git clone https://github.com/Azure/azure-event-hubs.git
    

Repositori dikloning ke folder utama Anda.

Mengedit SimpleSend.java

Dalam latihan ini, Anda menggunakan editor Cloud Shell bawaan untuk memodifikasi aplikasi SimpleSend. Anda perlu menambahkan namespace Layanan Pusat Aktivitas, nama hub peristiwa, nama kebijakan akses bersama, dan kunci utama.

  1. Ubah ke folder SimpleSend.

    cd ~/azure-event-hubs/samples/Java/Basic/SimpleSend/src/main/java/com/microsoft/azure/eventhubs/samples/SimpleSend
    
  2. Buka editor Cloud Shell di folder saat ini.

    code .
    

    File dalam folder saat ini tercantum di menu sebelah kiri, dan ruang editor di sisi kanan menampilkan konten nama file yang tercantum di bilah judul.

  3. Jika belum terbuka, buka file SimpleSend.java dengan memilihnya dari daftar file.

  4. Di editor, temukan dan ganti string berikut di bawah 'Koneksi ionStringBuilder'':

    • "Your Event Hubs namespace name" dengan nama namespace layanan Pusat Aktivitas Anda.
    • "Your Event Hub" dengan nama pusat aktivitas Anda.
    • "Your policy name" dengan RootManageSharedAccessKey.
    • "Your primary SAS key" dengan nilai kunci primaryKey untuk namespace layanan Pusat Aktivitas yang Anda simpan sebelumnya.

    Jika Anda lupa nilai-nilai ini, Anda dapat beralih ke jendela terminal di bawah editor dan menjalankan echo perintah untuk mencantumkan variabel lingkungan. Contohnya:

    echo $NS_NAME
    echo $HUB_NAME
    echo $STORAGE_NAME
    

    Untuk kunci SAS utama, Saat Anda membuat namespace layanan Pusat Aktivitas, kunci SAS 256-bit yang bernama RootManageSharedAccessKey dibuat dan menyertakan kunci utama dan sekunder terkait yang memberikan hak kirim, dengar, dan kelola ke namespace layanan. Sebelumnya dalam latihan ini, Anda memperoleh kunci dengan menjalankan perintah Azure CLI; namun, Anda juga dapat menemukan kunci dan string koneksi dengan memilih namespace layanan Pusat Aktivitas Anda di portal Azure, lalu di menu di bagian Pengaturan, pilih Kebijakan akses bersama; sekarang pilih nama kebijakan RootManageSharedAccessKey untuk menampilkan kunci Kebijakan SAS.

  5. Simpan file SimpleSend.java, lalu tutup editor.

    Tip

    Untuk menyimpan pengeditan Anda, gunakan Ctrl+S. Keluar dari editor dengan menekan Ctrl + X di Windows dan Linux, atau Cmd+ S di macOS. Tidak seperti jendela terminal Cloud Shell, editor Cloud Shell menggunakan tombol akselerator keyboard salin/tempel yang khas untuk OS Anda. Atau, buka menu editor dengan memilih elipsis (...) di sudut kanan atas untuk perintah pengeditan tambahan.

Menggunakan Maven untuk membuat SimpleSend.java

Sekarang, Anda membangun aplikasi Java dengan menjalankan perintah mvn .

  1. Di Cloud Shell, masukkan perintah berikut untuk membuka folder SimpleSend utama.

    cd ~/azure-event-hubs/samples/Java/Basic/SimpleSend
    
  2. Buat aplikasi SimpleSend Java. Perintah ini akan membuat aplikasi Anda menggunakan detail koneksi untuk pusat aktivitas Anda.

    mvn clean package -DskipTests
    

    Proses build dapat memakan waktu beberapa menit untuk diselesaikan. Pastikan Anda melihat pesan [INFO] BUILD SUCCESS sebelum melanjutkan.

    Build results for sender application.

Mengedit EventProcessorSample.java

Anda sekarang mengonfigurasi aplikasi penerima (juga dikenal sebagai pelanggan atau konsumen) untuk menyerap data dari pusat aktivitas Anda.

Untuk aplikasi penerima, tersedia dua kelas: EventHubReceiver dan EventProcessorHost. EventProcessorHost dibangun di atas EventHubReceiver, tetapi menyediakan antarmuka terprogram yang lebih sederhana daripada EventHubReceiver. EventProcessorHost dapat otomatis mendistribusikan partisi pesan di beberapa instans EventProcessorHost menggunakan akun penyimpanan yang sama.

Dalam prosedur ini, Anda menggunakan metode .EventProcessorHost Anda mengedit aplikasi EventProcessorSample untuk menambahkan nilai berikut: Namespace Layanan Azure Event Hubs Anda, nama hub peristiwa, nama kebijakan akses bersama dan kunci utama, nama akun penyimpanan, string koneksi, dan nama kontainer.

  1. Ubah ke folder EventProcessorSample dengan menjalankan perintah berikut.

    cd ~/azure-event-hubs/samples/Java/Basic/EventProcessorSample/src/main/java/com/microsoft/azure/eventhubs/samples/eventprocessorsample
    
  2. Buka editor Cloud Shell.

    code .
    
  3. Pilih file EventProcessorSample.java.

  4. Di editor, cari dan ganti string berikut:

    • ----EventHubNamespaceName---- dengan nama namespace layanan Pusat Aktivitas Anda.
    • ----EventHubName---- dengan nama pusat aktivitas Anda.
    • ----SharedAccessSignatureKeyName---- dengan RootManageSharedAccessKey.
    • ----SharedAccessSignatureKey---- dengan nilai kunci primaryKey untuk namespace layanan Pusat Aktivitas yang Anda simpan sebelumnya.
    • ----AzureStorageConnectionString---- dengan string koneksi akun penyimpanan yang Anda simpan sebelumnya.
    • ----StorageContainerName---- dengan pesan.
    • ----HostNamePrefix---- dengan nama akun penyimpanan Anda.
  5. Simpan EventProcessorSample.java baik dengan menu "...", atau tombol akselerator (Ctrl+S di Windows dan Linux, Cmd+S di macOS).

  6. Tutup editor.

Menggunakan Maven untuk membuat EventProcessorSample.java

  1. Ubah ke folder EventProcessorSample utama dengan menjalankan perintah berikut.

    cd ~/azure-event-hubs/samples/Java/Basic/EventProcessorSample
    
  2. Buat aplikasi Java SimpleSend dengan menjalankan perintah berikut untuk memastikan bahwa aplikasi Anda menggunakan detail koneksi untuk pusat aktivitas Anda.

    mvn clean package -DskipTests
    

    Proses build dapat memakan waktu beberapa menit untuk diselesaikan. Pastikan Anda melihat pesan [INFO] BUILD SUCCESS sebelum melanjutkan.

    Build results for receiver application.

Memulai aplikasi pengirim dan penerima

  1. Jalankan aplikasi Java dari baris perintah dengan menjalankan perintah berikut java , dan tentukan paket .jar. Jalankan perintah berikut untuk memulai aplikasi SimpleSend.

    cd ~/azure-event-hubs/samples/Java/Basic/SimpleSend
    java -jar ./target/simplesend-1.0.0-jar-with-dependencies.jar
    
  2. Saat Anda melihat Kirim Selesai..., tekan Enter.

    jar-with-dependencies.jar
    SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
    SLF4J: Defaulting to no-operation (NOP) logger implementation
    SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
    2018-09-18T19:42:15.146Z: Send Complete...
    
  3. Mulai aplikasi EventProcessorSample dengan menjalankan perintah berikut.

    cd ~/azure-event-hubs/samples/Java/Basic/EventProcessorSample
    java -jar ./target/eventprocessorsample-1.0.0-jar-with-dependencies.jar
    
  4. Saat pesan berhenti muncul di konsol, tekan Enter atau tekan CTRL+C untuk mengakhiri program.

    ...
    SAMPLE: Partition 0 checkpointing at 1064,19
    SAMPLE (3,1120,20): "Message 80"
    SAMPLE (3,1176,21): "Message 84"
    SAMPLE (3,1232,22): "Message 88"
    SAMPLE (3,1288,23): "Message 92"
    SAMPLE (3,1344,24): "Message 96"
    SAMPLE: Partition 3 checkpointing at 1344,24
    SAMPLE (2,1120,20): "Message 83"
    SAMPLE (2,1176,21): "Message 87"
    SAMPLE (2,1232,22): "Message 91"
    SAMPLE (2,1288,23): "Message 95"
    SAMPLE (2,1344,24): "Message 99"
    SAMPLE: Partition 2 checkpointing at 1344,24
    SAMPLE: Partition 1 batch size was 3 for host mystorageacct2018-46d60a17-7060-4b53-b0e0-cca70c970a47
    SAMPLE (0,1120,20): "Message 81"
    SAMPLE (0,1176,21): "Message 85"
    SAMPLE: Partition 0 batch size was 10 for host mystorageacct2018-46d60a17-7060-4b53-b0e0-cca70c970a47
    SAMPLE: Partition 0 got event batch
    SAMPLE (0,1232,22): "Message 89"
    SAMPLE (0,1288,23): "Message 93"
    SAMPLE (0,1344,24): "Message 97"
    SAMPLE: Partition 0 checkpointing at 1344,24
    SAMPLE: Partition 3 batch size was 8 for host mystorageacct2018-46d60a17-7060-4b53-b0e0-cca70c970a47
    SAMPLE: Partition 2 batch size was 9 for host mystorageacct2018-46d60a17-7060-4b53-b0e0-cca70c970a47
    SAMPLE: Partition 0 batch size was 3 for host mystorageacct2018-46d60a17-7060-4b53-b0e0-cca70c970a47
    

Ringkasan

Di unit ini, Anda mengonfigurasi aplikasi pengirim yang siap mengirim pesan ke pusat aktivitas Anda. Anda juga mengonfigurasi aplikasi penerima yang siap menerima pesan dari hub peristiwa Anda.