Menggunakan Azure Event Grid di Musim Semi
Artikel ini memperlihatkan kepada Anda cara menggunakan Azure Event Grid untuk mengirim peristiwa ke topik dan menggunakan antrean Bus Layanan sebagai Penanganan Aktivitas untuk diterima dalam aplikasi Spring Boot.
Layanan Azure Event Grid adalah layanan distribusi pesan Sub pesan Pub yang sangat dapat diskalakan dan dikelola sepenuhnya yang menawarkan pola konsumsi pesan fleksibel menggunakan protokol MQTT dan HTTP.
Prasyarat
Langganan Azure - membuat secara gratis.
Java Development Kit (JDK) versi 8 atau yang lebih tinggi.
Apache Maven, versi 3.0 atau lebih tinggi.
Instans Topik Event Grid. Jika Anda tidak memilikinya, lihat Membuat topik kustom atau domain di Azure Event Grid.
Instans Antrean Bus Layanan. Jika Anda tidak memilikinya, lihat Membuat antrean di portal Azure.
Aplikasi Spring Boot. Jika Anda tidak memilikinya, buat proyek Maven dengan Spring Initializr. Pastikan untuk memilih Maven Project dan pilih Java versi 8 atau yang lebih tinggi.
Berlangganan topik kustom
Gunakan langkah-langkah berikut untuk membuat langganan peristiwa untuk memberi tahu Event Grid untuk mengirim peristiwa ke antrean Bus Layanan:
- Di portal Azure, navigasikan ke instans Topik Event Grid Anda.
- Pilih Langganan Peristiwa pada toolbar.
- Pada halaman Buat Langganan Peristiwa, masukkan nilai nama untuk langganan peristiwa.
- Untuk Jenis Titik Akhir, pilih antrean Bus Layanan.
- Pilih Pilih titik akhir lalu pilih instans antrean Bus Layanan yang Anda buat sebelumnya.
Mengirim peristiwa oleh Azure Event Grid dan menerima oleh Azure Bus Layanan Queue
Dengan sumber daya Azure Event Grid, Anda dapat mengirim acara menggunakan Spring Cloud Azure Event Grid. Dengan sumber daya Azure Bus Layanan Queue sebagai penanganan aktivitas, Anda dapat menerima acara menggunakan Spring Cloud Azure Stream Binder untuk Bus Layanan.
Untuk menginstal modul Spring Cloud Azure Event Grid Starter dan modul Bus Layanan Spring Cloud Azure Stream Binder, tambahkan dependensi berikut ke file pom.xml Anda:
Spring Cloud Azure Bill of Materials (BOM):
<dependencyManagement> <dependencies> <dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-dependencies</artifactId> <version>5.12.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
Catatan
Jika Anda menggunakan Spring Boot 2.x, pastikan untuk mengatur versi ke
spring-cloud-azure-dependencies
4.18.0
. Bill of Material (BOM) ini harus dikonfigurasi di bagian<dependencyManagement>
file pom.xml Anda. Ini memastikan bahwa semua dependensi Spring Cloud Azure menggunakan versi yang sama. Untuk informasi selengkapnya tentang versi yang digunakan untuk BOM ini, lihat Versi Spring Cloud Azure mana yang Harus Saya Gunakan.Artefak Spring Cloud Azure Event Grid Starter:
<dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-starter-eventgrid</artifactId> </dependency>
Artefak Bus Layanan Spring Cloud Azure Stream Binder:
<dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-stream-binder-servicebus</artifactId> </dependency>
Kodekan aplikasi
Gunakan langkah-langkah berikut untuk mengonfigurasi aplikasi Anda untuk mengirim peristiwa dengan menggunakan Event Grid dan terima dengan menggunakan antrean Bus Layanan.
Konfigurasikan Azure Event Grid dan kredensial Bus Layanan dalam file konfigurasi application.yaml, seperti yang ditunjukkan dalam contoh berikut:
spring: cloud: azure: eventgrid: endpoint: ${AZURE_EVENTGRID_ENDPOINT} key: ${AZURE_EVENTGRID_KEY} servicebus: connection-string: ${AZURE_SERVICEBUS_CONNECTION_STRING} function: definition: consume stream: bindings: consume-in-0: destination: ${AZURE_SERVICEBUS_QUEUE_NAME} servicebus: bindings: consume-in-0: consumer: auto-complete: false
Edit file kelas startup untuk menampilkan konten berikut. Kode ini menghasilkan penyelesaian.
import com.azure.core.util.BinaryData; import com.azure.messaging.eventgrid.EventGridEvent; import com.azure.messaging.eventgrid.EventGridPublisherClient; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Bean; import org.springframework.messaging.Message; import java.util.List; import java.util.function.Consumer; @SpringBootApplication public class EventGridSampleApplication implements CommandLineRunner { private static final Logger LOGGER = LoggerFactory.getLogger(EventGridSampleApplication.class); @Autowired EventGridPublisherClient<EventGridEvent> client; public static void main(String[] args) { SpringApplication.run(EventGridSampleApplication.class, args); } @Bean public Consumer<Message<String>> consume() { return message -> { List<EventGridEvent> eventData = EventGridEvent.fromString(message.getPayload()); eventData.forEach(event -> { LOGGER.info("New event received: '{}'", event.getData()); }); }; } @Override public void run(String... args) throws Exception { String str = "FirstName: John, LastName: James"; EventGridEvent event = new EventGridEvent("A user is created", "User.Created.Text", BinaryData.fromObject(str), "0.1"); client.sendEvent(event); LOGGER.info("New event published: '{}'", event.getData()); } }
Mulai aplikasi. Setelah diluncurkan, aplikasi menghasilkan log yang mirip dengan contoh berikut:
New event published: '"FirstName: John, LastName: James"' ... New event received: '"FirstName: John, LastName: James"'
Sebarkan ke Azure Spring Apps
Sekarang setelah Anda memiliki aplikasi Spring Boot yang berjalan secara lokal, saatnya untuk memindahkannya ke produksi. Azure Spring Apps memudahkan penyebaran aplikasi Spring Boot ke Azure tanpa perubahan kode apa pun. Layanan ini mengelola infrastruktur aplikasi Spring sehingga pengembang dapat fokus pada kode mereka. Azure Spring Apps menyediakan manajemen siklus hidup menggunakan pemantauan dan diagnostik yang komprehensif, manajemen konfigurasi, penemuan layanan, integrasi CI/CD, penyebaran biru-hijau, dan banyak lagi. Untuk menyebarkan aplikasi Anda ke Azure Spring Apps, lihat Menyebarkan aplikasi pertama Anda ke Azure Spring Apps.
Langkah berikutnya
Untuk mempelajari selengkapnya tentang Spring dan Azure, lanjutkan ke pusat dokumentasi Spring di Azure.
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk