Latihan - Mengonfigurasi aplikasi untuk mengirim atau menerima pesan melalui pusat aktivitas
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.
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
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.
Jalankan perintah berikut untuk mendapatkan kunci akses yang terkait dengan akun penyimpanan Anda.
az storage account keys list --account-name $STORAGE_NAME
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.
Jalankan perintah berikut untuk mendapatkan string koneksi untuk akun penyimpanan Anda.
az storage account show-connection-string -n $STORAGE_NAME
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=xxxxxxxxxxx"
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.
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.
Ubah ke folder SimpleSend.
cd ~/azure-event-hubs/samples/Java/Basic/SimpleSend/src/main/java/com/microsoft/azure/eventhubs/samples/SimpleSend
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.
Jika belum terbuka, buka file SimpleSend.java dengan memilihnya dari daftar file.
Di editor, temukan dan ganti string berikut di bawah 'ConnectionStringBuilder'':
"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.
Simpan file SimpleSend.java, lalu tutup editor. Pilih di sudut kanan atas editor, dan gunakan item menu Simpan dan Tutup Editor .
Menggunakan Maven untuk membuat SimpleSend.java
Sekarang, Anda membangun aplikasi Java dengan menjalankan perintah mvn .
Di Cloud Shell, masukkan perintah berikut untuk membuka folder SimpleSend utama.
cd ~/azure-event-hubs/samples/Java/Basic/SimpleSend
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.
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.
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
Buka editor Cloud Shell.
code .
Pilih file EventProcessorSample.java di penjelajah file di sebelah kiri.
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.
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
Simpan EventProcessorSample.java baik dengan menu "...", atau tombol akselerator (Ctrl+S di Windows dan Linux, Cmd+S di macOS).
Tutup editor.
Menggunakan Maven untuk membuat EventProcessorSample.java
Ubah ke folder EventProcessorSample utama dengan menjalankan perintah berikut.
cd ~/azure-event-hubs/samples/Java/Basic/EventProcessorSample
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.
Memulai aplikasi pengirim dan penerima
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
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...
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
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.