Hei ada! Saya pembekal musim bunga untuk pengatup, dan hari ini saya ingin berbual tentang cara menguruskan komunikasi microservices pada musim bunga untuk produk pengatup kami. Ini sedikit topik teknikal, tetapi saya akan melakukan yang terbaik untuk memecahkannya dengan cara yang mudah difahami.


Mula -mula, mari kita bincangkan mengapa komunikasi microservices sangat penting untuk musim bunga kami untuk perniagaan pengatup. Di dunia pembuatan pengatup, kami mempunyai banyak komponen dan proses yang berbeza. Contohnya, kita mempunyaiBingkai sampingan pengatup roller 90 °, TheMahkota penghantaran pengatup roller, dan yangRoda engkol roller shutter. Setiap bahagian ini mungkin diuruskan oleh microservice yang berbeza dalam sistem berasaskan musim bunga kami.
Apabila microservices ini tidak dapat berkomunikasi dengan baik, ia seperti mempunyai sekumpulan orang di kilang yang tidak bercakap antara satu sama lain. Anda berakhir dengan kelewatan, kesilapan, dan banyak sakit kepala. Oleh itu, kita perlu memastikan bahawa microservices ini dapat berkongsi maklumat dengan lancar.
Salah satu cara utama untuk menguruskan komunikasi microservices pada musim bunga adalah melalui API yang tenang. REST (Perwakilan Negeri Perwakilan) adalah cara yang sangat popular untuk membina perkhidmatan web. Pada musim bunga kami untuk sistem pengatup, kami boleh membuat titik akhir yang tenang untuk setiap mikroservis. Sebagai contoh, jika kita mempunyai microservice yang menguruskan inventori [bingkai sampingan roller shutter 90 °], ia boleh mendedahkan API REST yang boleh digunakan oleh microservices lain untuk memeriksa tahap stok.
Berikut adalah contoh mudah bagaimana kita boleh membuat API yang tenang pada musim bunga. Kami akan menggunakan Spring Boot, yang merupakan rangka kerja yang hebat untuk membina aplikasi berasaskan musim bunga dengan cepat.
import org.springframework.boot.springapplication; import org.springframework.boot.autoconfigure.springbootapplication; import org.springframework.web.bind.annotation.getmapping; import org.springframework.web.bind.annotation.restcontroller; @Springbootapplication @restcontroller kelas awam shutterInventoryService {public static void main (string [] args) {springApplication.run (shutterInventoryService.class, args); } @GetMapping ("/inventori/roller-shutter-side-frame-90") Int public getrollersHuttersideFrame90Inventory () {// Di sini kita sebenarnya akan menanyakan pangkalan data untuk mendapatkan kiraan inventori kembali 10; }}
Dalam kod ini, kami telah mencipta API RESTful yang mudah yang mengembalikan kiraan inventori [bingkai sampingan roller roller 90 °]. Microservices lain kemudian boleh memanggil API ini menggunakan permintaan HTTP GET untuk mendapatkan maklumat yang mereka perlukan.
Satu lagi aspek penting dalam komunikasi microservices ialah komunikasi berasaskan mesej. Spring memberikan sokongan hebat untuk sistem berasaskan mesej melalui teknologi seperti Spring Cloud Stream. Dengan komunikasi berasaskan mesej, microservices boleh menghantar dan menerima mesej secara tidak segerak.
Katakan kita mempunyai microservice yang memproses pesanan untuk [Roller Shutter Crank Wheel]. Apabila pesanan diletakkan, microservice ini boleh menghantar mesej kepada broker mesej (seperti Kafka atau Rabbitmq). Microservices lain, seperti microservice pengurusan inventori, kemudian boleh mendengar mesej ini dan mengemas kini inventori dengan sewajarnya.
Berikut adalah contoh bagaimana kita boleh menggunakan aliran awan musim bunga untuk menghantar dan menerima mesej:
import org.springframework.cloud.stream.annotation.enableBinding; import org.springframework.cloud.stream.annotation.input; import org.springframework.cloud.stream.annotation.output; import org.springframework.cloud.stream.annotation.streamListener; import org.springframework.messaging.messagechannel; import org.springframework.messaging.support.messageBuilder; import org.springframework.stereotype.service; import java.util.logging.logger; Interface ShutterOrderChannels {string input = "shutter - order - input"; Output String = "Shutter - Order - Output"; @Input (input) org.springframework.messaging.subscribablechannel input (); @Output (output) Output MessageChannel (); } @EnableBinding (shutterOrderChanNels.class) @Service Class Public ShutterOrderService {private static final logger = logger.getLogger (shutterorderservice.class.getName ()); Saluran shutterorderchannels akhir swasta; shutterorderservice awam (shutterOrderChannels saluran) {this.channels = saluran; } public void SendOrderMessage (String Order) {Channels.Output (). Send (MessageBuilder.WithPayLoad (order) .build ()); } @StreamListener (ShutterOrderChanNels.Input) public void handleOrdermessage (perintah string) {logger.info ("perintah yang diterima:" + perintah); // di sini kita boleh melakukan sesuatu dengan pesanan, seperti inventori kemas kini}}
Dalam kod ini, kami telah membuat perkhidmatan yang boleh menghantar dan menerima mesej yang berkaitan dengan pesanan pengatup. Dengan cara ini, microservices yang berbeza dapat berkomunikasi antara satu sama lain dengan cara yang tidak segerak dan dihancurkan.
Ketika mengurus komunikasi microservices dalam senario dunia yang nyata, kita juga perlu memikirkan penemuan perkhidmatan. Dalam musim bunga yang besar untuk sistem pengatup, mungkin terdapat berpuluh -puluh atau beratus -ratus microservices. Ia tidak praktikal untuk setiap microservice untuk mengetahui lokasi yang tepat (alamat IP dan port) dari setiap mikroservis lain yang diperlukan untuk berkomunikasi.
Spring Cloud Netflix Eureka adalah alat yang hebat untuk penemuan perkhidmatan. Microservices boleh mendaftarkan diri dengan pelayan Eureka, dan microservices lain kemudian dapat mencari lokasi perkhidmatan yang mereka perlukan melalui pelayan Eureka.
Berikut adalah cara kami dapat menyediakan pelayan Eureka di Spring Boot:
import org.springframework.boot.springapplication; import org.springframework.boot.autoconfigure.springbootapplication; import org.springframework.cloud.netflix.eureka.server.enableeurekaserver; @SpringBootApplication @EnableEekaserver Class public shuttereureKaserver {public static void main (string [] args) {springApplication.run (shuttereurekaserver.class, args); }}
Dan inilah caranya microservice dapat mendaftar sendiri dengan pelayan Eureka:
import org.springframework.boot.springapplication; import org.springframework.boot.autoconfigure.springbootapplication; import org.springframework.cloud.netflix.eureka.enableeurekaclient; @SpringBootApplication @EnableeureKaclient Class Public ShutterMicRoservice {public static void main (string [] args) {springApplication.run (shuttermicroservice.class, args); }}
Dengan menggunakan Eureka, microservices kami dapat dengan mudah mencari dan berkomunikasi antara satu sama lain tanpa perlu keras - kod lokasi perkhidmatan.
Kesimpulannya, menguruskan komunikasi microservices pada musim bunga untuk produk pengatup kami adalah penting untuk operasi lancar perniagaan kami. Sama ada melalui API RESTFul, komunikasi berasaskan mesej, atau penemuan perkhidmatan, kami mempunyai banyak alat yang kami dapat.
Sekiranya anda berada di pasaran untuk musim bunga yang berkualiti tinggi untuk produk pengatup dan berminat dengan cara kami menguruskan microservices kami untuk memastikan kualiti dan kecekapan yang tinggi, saya suka berbual dengan anda. Kami boleh membincangkan keperluan khusus anda dan bagaimana produk kami boleh dimuatkan ke dalam perniagaan anda. Jangan teragak -agak untuk menjangkau perbincangan perolehan.
Rujukan
- Dokumentasi Boot Spring
- Dokumentasi awan musim bunga
- Reka bentuk API Reka bentuk Reka Bentuk Terbaik
- Mesej - komunikasi berasaskan dalam sistem yang diedarkan



