Rumah  >  Artikel  >  Java  >  Komunikasi mesej tak segerak di bawah perkhidmatan mikro Spring Cloud

Komunikasi mesej tak segerak di bawah perkhidmatan mikro Spring Cloud

WBOY
WBOYasal
2023-06-23 09:27:07645semak imbas

Dengan peningkatan pengkomputeran awan dan data besar, seni bina perkhidmatan mikro digunakan secara meluas dalam sistem perusahaan. Sebagai alat pelaksanaan penting untuk seni bina perkhidmatan mikro, Spring Cloud menyediakan pelbagai penyelesaian untuk merealisasikan komunikasi di bawah seni bina perkhidmatan mikro. Artikel ini akan menumpukan pada penyelesaian komunikasi mesej tak segerak di bawah perkhidmatan mikro Spring Cloud, dengan harapan dapat memberikan beberapa idea dan rujukan untuk semua orang untuk menyelesaikan masalah komunikasi mesej di bawah seni bina perkhidmatan mikro.

1. Latar belakang komunikasi mesej tak segerak perkhidmatan mikro

Di bawah seni bina perkhidmatan mikro, perkhidmatan dibahagikan kepada berbilang perkhidmatan mikro untuk pembangunan bebas, penggunaan bebas dan penyelenggaraan bebas mesti ada. Panggilan RPC tradisional atau permintaan HTTP akan merendahkan prestasi sistem disebabkan masa tindak balas yang panjang dalam senario data besar dan tinggi Oleh itu, komunikasi mesej tak segerak digunakan secara meluas dalam perkhidmatan mikro sebagai penyelesaian yang sangat baik, dengan cekap menyokong Komunikasi antara perkhidmatan mikro yang berbeza.

2. Penyelesaian komunikasi mesej tak segerak di bawah Spring Cloud

Dalam Spring Cloud, terdapat dua penyelesaian komunikasi mesej tak segerak yang biasa digunakan: Spring Cloud Stream dan Spring Cloud Bus.

  1. Spring Cloud Stream

Spring Cloud Stream ialah rangka kerja yang disediakan oleh Spring Cloud untuk membina perkhidmatan mikro dipacu mesej. Ia dibina pada Spring Boot dan Spring Integration dan boleh menyambungkan pelbagai perkhidmatan broker mesej dengan mudah. Spring Cloud Stream melaksanakan komunikasi mesej tak segerak berdasarkan model terbitkan/langgan (Terbitkan/Langgan).

Aliran kerja Spring Cloud Stream adalah seperti berikut:

① Pengeluar menjana mesej dan menerbitkannya ke Spring Cloud Stream
② Spring Cloud Stream menghantar mesej kepada broker perantaraan; Message Broker);
③ Pengguna melanggan maklumat daripada ejen perantara dan memberitahu Spring Cloud Stream apabila ia menerima mesej Spring Cloud Stream kemudian menghantar mesej kepada pengguna yang sepadan.

Spring Cloud Stream menggunakan perkhidmatan broker mesej seperti Apache Kafka dan RabbitMQ, yang mempunyai ciri-ciri kebolehpercayaan yang tinggi, konkurensi yang tinggi dan kebolehskalaan yang tinggi. Proses penggunaannya sangat mudah Anda hanya perlu memperkenalkan kebergantungan yang sepadan dan mengkonfigurasi ejen mesej yang digunakannya. Kod sampel untuk melaksanakan perkhidmatan mesej adalah seperti berikut:

// 引入Spring Cloud Stream依赖
<dependency>
   <groupId>org.springframework.cloud</groupId>
   <artifactId>spring-cloud-starter-stream-kafka</artifactId>
</dependency>
 
// 在应用程序属性文件中设置连接的kafka代理
spring.cloud.stream.kafka.binder.brokers=kafka.example.com:9092
spring.cloud.stream.kafka.binder.zkNodes=zookeeper.example.com
spring.cloud.stream.kafka.binder.defaultBrokerPort=9092
spring.cloud.stream.kafka.binder.defaultZkPort=2181
  1. Spring Cloud Bus

Spring Cloud Bus ialah mekanisme untuk menyebarkan perubahan keadaan dalam sistem yang diedarkan boleh Biarkan mesej berlalu antara pelbagai perkhidmatan mikro yang membentuk sistem. Bas Awan Musim Bunga menggunakan broker mesej untuk menyambungkan pelbagai perkhidmatan mikro dan menggunakan jenis mesej ringan untuk melengkapkan penghantaran status acara. Berbeza daripada Spring Cloud Stream, Spring Cloud Bus lebih banyak digunakan untuk pemesejan dan perkongsian keadaan dalam sistem.

Aliran kerja Bas Awan Musim Bunga adalah seperti berikut:

① Peristiwa pencetus yang boleh menjejaskan keadaan pada Bas Awan Musim Bunga melalui permintaan HTTP/HTTPS (contohnya: kaedah POST, kaedah PATCH atau kaedah DELETE) ;
② Spring Cloud Bus menerima permintaan acara dan menyimpan kandungan acara
③ Menyiarkan status acara dalam Spring Cloud Bus ke seluruh sistem yang diedarkan melalui ejen mesej; mesej Status acara dalam ejen, dan secara serentak menukar statusnya sendiri dalam masa nyata apabila status acara berubah.

Spring Cloud Bus menggunakan RabbitMQ atau Kafka sebagai pelayan broker mesej, yang mempunyai ciri-ciri berskala tinggi dan kebolehpercayaan yang tinggi. Bas Awan Musim Bunga sangat mudah digunakan Anda hanya perlu menambah konfigurasi yang sepadan dalam fail sifat aplikasi. Kod sampel untuk melaksanakan perkhidmatan mesej adalah seperti berikut:

// 添加依赖
<dependency>
   <groupId>org.springframework.cloud</groupId>
   <artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>
 
// 在应用程序属性文件中设置RabbitMQ地址
spring.rabbitmq.host=localhost
spring.rabbitmq.virtual-host=/
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest

3 Ringkasan

Spring Cloud ialah salah satu penyelesaian pelaksanaan yang paling popular dalam seni bina perkhidmatan mikro semasa menggunakan Spring Cloud untuk melaksanakan tak segerak komunikasi mesej mempunyai banyak kelebihan. Artikel ini memperkenalkan penyelesaian komunikasi mesej tak segerak yang biasa digunakan di bawah Spring Cloud: Spring Cloud Stream dan Spring Cloud Bus, dan memperkenalkan cara menggunakannya dalam aplikasi melalui contoh kod mudah. Saya harap artikel ini dapat membantu semua orang menggunakan seni bina perkhidmatan mikro dengan lebih baik dalam amalan dan meningkatkan prestasi dan kestabilan sistem.

Atas ialah kandungan terperinci Komunikasi mesej tak segerak di bawah perkhidmatan mikro Spring Cloud. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn