


Bina aplikasi pemprosesan strim menggunakan Spring Boot dan Apache Kafka Streams
Dengan kemunculan era data besar, semakin banyak perusahaan mula memberi perhatian kepada teknologi pemprosesan aliran untuk memenuhi keperluan pemprosesan dan analisis data masa nyata. Apache Kafka ialah sistem baris gilir mesej teragih berkemampuan tinggi dan berskala yang telah menjadi standard de facto dalam bidang pemprosesan strim. Spring Boot ialah alat untuk membangunkan aplikasi Spring dengan cepat, yang boleh membantu kami membina aplikasi pemprosesan strim dengan lebih pantas dan lebih mudah. Artikel ini akan memperkenalkan cara membina aplikasi pemprosesan strim menggunakan Spring Boot dan Apache Kafka Streams, dan membincangkan kelebihan dan kekurangan kedua-dua alatan ini dan cara mengoptimumkan prestasi aplikasi.
- Buat topik Kafka
Sebelum kita mula membina aplikasi, kita perlu mencipta topik Kafka dahulu. Dalam artikel ini, kami akan mencipta topik yang dipanggil "klik pengguna" yang akan menyimpan peristiwa klik pengguna di tapak web.
Laksanakan arahan berikut dalam baris arahan:
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic user-clicks
Ini akan mencipta topik bernama "klik pengguna" pada pelayan Kafka dengan hanya satu partition dan salinan setempat .
- Mencipta aplikasi Spring Boot
Seterusnya, kami akan mencipta aplikasi asas menggunakan Spring Boot. Dalam Spring Boot, kita boleh menggunakan Spring Initializr untuk mencipta aplikasi asas dengan cepat. Semasa membuat aplikasi, pastikan anda memilih kebergantungan berikut:
- Spring Kafka
- Spring Web
Selepas mencipta aplikasi, kami akan Menambah pergantungan berikut:
<dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-streams</artifactId> <version>2.6.0</version> </dependency>
Ini akan memberikan kami API pemprosesan aliran Kafka.
- Melaksanakan pemprosesan strim Kafka
Sekarang kita boleh mula menulis kod pemprosesan strim Kafka. Semasa membuat aplikasi, kami menentukan kelas pengawal yang dipanggil "Pengontrol Pengguna". Sekarang kami akan menambah pengendali permintaan POST bernama "klik" dalam kelas pengawal. Pengendali ini akan mendapatkan peristiwa klik pengguna daripada permintaan POST dan menghantarnya ke topik Kafka bernama "klik pengguna". Kodnya adalah seperti berikut:
@RestController public class UserController { private final KafkaTemplate<String, String> kafkaTemplate; @Autowired public UserController(KafkaTemplate<String, String> kafkaTemplate) { this.kafkaTemplate = kafkaTemplate; } @PostMapping("/clicks") public void clicks(@RequestBody String click) { kafkaTemplate.send("user-clicks", click); } }
Dalam kod di atas, kami menggunakan fungsi suntikan kebergantungan Spring untuk menyuntik objek KafkaTemplate bernama "kafkaTemplate". Objek ini boleh digunakan untuk menghantar mesej kepada topik Kafka.
- Cipta Topologi Penstriman Kafka
Seterusnya, kami akan mencipta Topologi Penstriman Kafka untuk mengendalikan acara klik yang diterima daripada topik "klik pengguna". Dalam contoh kami, kami akan menggunakan API Aliran Kafka untuk melaksanakan topologi pemprosesan aliran.
Dalam aplikasi Spring Boot, kami akan mencipta kelas yang dipanggil "UserClicksStream" yang akan menggunakan API Kafka Streams untuk mengendalikan acara klik. Kodnya adalah seperti berikut:
@Configuration @EnableKafkaStreams public class UserClicksStream { @Value("${spring.kafka.bootstrap-servers}") private String bootstrapServers; @Bean public KStream<String, String> kStream(StreamsBuilder builder) { KStream<String, String> stream = builder.stream("user-clicks"); stream.foreach((key, value) -> { System.out.println("Received: " + value); }); return stream; } @Bean public KafkaStreams kafkaStreams(StreamsBuilder builder) { Properties props = new Properties(); props.put(StreamsConfig.APPLICATION_ID_CONFIG, "user-clicks-stream"); props.put(StreamsConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapServers); return new KafkaStreams(builder.build(), props); } }
Dalam kod di atas, kami menggunakan fungsi suntikan kebergantungan Spring untuk menyuntik objek StreamsBuilder bernama "StreamsBuilder". Objek ini digunakan untuk mencipta topologi pemprosesan aliran Kafka.
Dalam kaedah kStream, kami mencipta objek KStream daripada topik "klik pengguna" dan mencetak acara yang diterima menggunakan kaedah foreach. froeach ialah operasi terminal yang akan kami gunakan dalam langkah seterusnya.
Dalam kaedah kafkaStreams, kami mencipta aplikasi bernama "user-clicks-stream" dan menentukan alamat pelayan Kafka. Aplikasi ini secara automatik akan melaksanakan operasi pemprosesan strim yang kami takrifkan dalam topologi sebelumnya.
- Jalankan aplikasi
Sekarang kami telah menulis semua kod untuk aplikasi itu. Sebelum menjalankan aplikasi, kita perlu memulakan pelayan Kafka.
Laksanakan arahan berikut dalam baris arahan:
bin/kafka-server-start.sh config/server.properties
Ini akan memulakan pelayan Kafka. Sekarang kita boleh mulakan permohonan kita.
Laksanakan arahan berikut dalam baris arahan:
mvn spring-boot:run
Ini akan melancarkan aplikasi kami. Kini kami boleh menghantar permintaan POST kepada aplikasi menggunakan mana-mana klien HTTP seperti cURL atau Postman. Setiap permintaan akan menjana acara klik dan mencetaknya dalam konsol.
Jika kami ingin melaksanakan lebih banyak operasi dalam topologi (seperti pengagregatan, pengiraan tetingkap, dll.), kami boleh menggunakan operasi lain yang disediakan oleh API Aliran Kafka untuk membina topologi.
- Ringkasan
Membina aplikasi pemprosesan strim menggunakan Spring Boot dan Apache Kafka Streams ialah cara yang pantas dan mudah untuk membantu kami memproses data masa nyata dengan lebih mudah. Walau bagaimanapun, kita perlu memberi perhatian kepada beberapa isu prestasi pengoptimuman, seperti reka bentuk topologi, saiz penimbal, masa pemprosesan aliran, dsb. Dengan memahami isu ini, kami boleh membina aplikasi pemprosesan strim yang cekap dengan lebih baik.
Atas ialah kandungan terperinci Bina aplikasi pemprosesan strim menggunakan Spring Boot dan Apache Kafka Streams. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Dalam projek sebenar, kami cuba mengelakkan transaksi yang diedarkan. Walau bagaimanapun, kadangkala ia benar-benar perlu untuk melakukan beberapa pemisahan perkhidmatan, yang akan membawa kepada masalah transaksi yang diedarkan. Pada masa yang sama, transaksi yang diedarkan juga ditanya di pasaran semasa temu bual Anda boleh berlatih dengan kes ini, dan anda boleh bercakap tentang 123 dalam temu bual.

Dengan perkembangan globalisasi, semakin banyak laman web dan aplikasi perlu menyediakan sokongan berbilang bahasa dan fungsi pengantarabangsaan. Bagi pembangun, melaksanakan fungsi ini bukanlah tugas yang mudah kerana ia memerlukan pertimbangan dari banyak aspek, seperti terjemahan bahasa, tarikh, masa dan format mata wang, dsb. Walau bagaimanapun, menggunakan rangka kerja SpringBoot, kami boleh melaksanakan sokongan berbilang bahasa dan aplikasi antarabangsa dengan mudah. Mula-mula, marilah kita memahami antara muka LocaleResolver yang disediakan oleh SpringBoot. Loc

Dengan kemunculan era data besar, semakin banyak syarikat mula memahami dan mengiktiraf nilai data besar dan menerapkannya dalam perniagaan. Masalah yang datang dengannya ialah bagaimana mengendalikan aliran data yang besar ini. Dalam kes ini, aplikasi pemprosesan data besar telah menjadi sesuatu yang mesti dipertimbangkan oleh setiap perusahaan. Bagi pembangun, cara menggunakan SpringBoot untuk membina aplikasi pemprosesan data besar yang cekap juga merupakan isu yang sangat penting. SpringBoot ialah rangka kerja Java yang sangat popular yang membolehkan

Memandangkan perniagaan moden semakin bergantung pada pelbagai aplikasi dan sistem yang berbeza, integrasi perusahaan menjadi lebih penting. Bas Perkhidmatan Perusahaan (ESB) ialah model seni bina integrasi yang menghubungkan sistem dan aplikasi yang berbeza bersama-sama untuk menyediakan pertukaran data biasa dan perkhidmatan penghalaan mesej untuk mencapai penyepaduan aplikasi peringkat perusahaan. Menggunakan SpringBoot dan ApacheServiceMix, kami boleh membina sistem ESB dengan mudah Artikel ini akan memperkenalkan cara melaksanakannya. SpringBoot dan A

Dalam proses pembangunan aplikasi web Java, teknologi pemetaan ORM (Object-RelationalMapping) digunakan untuk memetakan data hubungan dalam pangkalan data kepada objek Java, menjadikannya mudah untuk pembangun mengakses dan mengendalikan data. SpringBoot, sebagai salah satu rangka kerja pembangunan web Java yang paling popular pada masa ini, telah menyediakan cara untuk mengintegrasikan MyBatis, dan MyBatisPlus ialah rangka kerja ORM yang dilanjutkan berdasarkan MyBatis.

Dengan perkembangan Internet, analisis data besar dan pemprosesan maklumat masa nyata telah menjadi keperluan penting bagi perusahaan. Untuk memenuhi keperluan tersebut, pangkalan data hubungan tradisional tidak lagi memenuhi keperluan pembangunan perniagaan dan teknologi. Sebaliknya, menggunakan pangkalan data NoSQL telah menjadi pilihan penting. Dalam artikel ini, kita akan membincangkan penggunaan SpringBoot yang disepadukan dengan pangkalan data NoSQL untuk membolehkan pembangunan dan penggunaan aplikasi moden. Apakah pangkalan data NoSQL?

Bagaimana untuk mencapai pemisahan baca-tulis, projek Spring Boot, pangkalan data adalah MySQL, dan lapisan kegigihan menggunakan MyBatis.

Cara menggunakan Java untuk membangunkan aplikasi analisis data masa nyata berdasarkan Apache Kafka Dengan perkembangan pesat data besar, aplikasi analisis data masa nyata telah menjadi bahagian yang amat diperlukan dalam perusahaan. Apache Kafka, sebagai sistem baris gilir mesej teragih yang paling popular pada masa ini, menyediakan sokongan yang kuat untuk pengumpulan dan pemprosesan data masa nyata. Artikel ini akan membawa pembaca mempelajari cara menggunakan Java untuk membangunkan aplikasi analisis data masa nyata berdasarkan Apache Kafka, dan melampirkan contoh kod tertentu. Sediakan
