Rumah > masalah biasa > teks badan

百草
Lepaskan: 2024-04-09 14:14:29
asal
1490 orang telah melayarinya

Mereka bentuk aplikasi asli awan melibatkan pengurusan sistem kompleks perkhidmatan mikro dan komponen tanpa pelayan yang perlu berkomunikasi antara satu sama lain dengan cekap. Komunikasi segerak menggunakan panggilan HTTP atau gRPC, menunggu respons dalam julat masa tertentu, memberikan maklum balas masa nyata dan sesuai untuk senario yang memerlukan respons segera. Komunikasi tak segerak menggunakan broker mesej (seperti RabbitMQ atau Kafka) untuk bertukar-tukar mesej tanpa memerlukan respons segera, meningkatkan kebolehskalaan sistem. Dengan memahami kelebihan dan kekurangan setiap mod komunikasi, arkitek boleh mereka sistem yang menyelaraskan elemen bebas ini dengan berkesan untuk menyampaikan aplikasi awan-asli berprestasi tinggi, berskala dan boleh dipercayai.

Bayangkan membina mesin yang kompleks dengan banyak bahagian bebas, masing-masing melaksanakan fungsinya, tetapi semua perlu berkomunikasi secara berkesan antara satu sama lain untuk menyelesaikan tugas. Inilah cabaran yang kami hadapi apabila mereka bentuk aplikasi asli awan yang terdiri daripada perkhidmatan mikro yang saling berkaitan dan komponen tanpa pelayan. Dalam artikel ini, kami meneroka butiran mereka bentuk sistem komunikasi yang teguh dan berdaya tahan yang boleh menyelaraskan elemen bebas ini dengan berkesan di dalam dan di luar sempadan aplikasi.

Perkhidmatan berbutir halus ini menggunakan pelbagai kaedah komunikasi segerak atau tak segerak untuk interaksi dalaman dan luaran. Dalam komunikasi segerak, satu perkhidmatan memanggil perkhidmatan lain menggunakan HTTP atau gRPC, menunggu respons dalam jangka masa yang ditentukan, dan kemudian meneruskan. Sebaliknya, komunikasi tak segerak melibatkan pertukaran mesej tanpa mengharapkan tindak balas segera. Broker mesej seperti RabbitMQ atau Kafka bertindak sebagai perantara, menimbal mesej untuk memastikan penghantaran yang boleh dipercayai. Dalam aplikasi asli awan, menggunakan gabungan corak komunikasi selalunya merupakan pendekatan praktikal. Mari kita mulakan dengan komunikasi segerak.

Apakah komunikasi segerak?

Komunikasi segerak adalah seperti perbualan. Satu perkhidmatan (sebutkan perkhidmatan A) membuat permintaan dan kemudian menunggu respons daripada perkhidmatan lain (perkhidmatan B) atau API luaran. Ini sama seperti bertanya soalan dan menunggu jawapan. Perkhidmatan A menghantar permintaan melalui HTTP dan menunggu. Ia sama ada menunggu respons daripada perkhidmatan B atau menunggu masa menunggu maksimum untuk tamat tempoh. Dalam tempoh menunggu ini, Perkhidmatan A disekat buat sementara waktu, sama seperti seseorang menjeda aktivitinya untuk menunggu respons. Mod ini sering dipanggil mod permintaan-tindak balas dan agak mudah untuk dilaksanakan. Walau bagaimanapun, penggunaannya yang meluas mungkin menimbulkan cabaran yang memerlukan pertimbangan yang teliti.

Cabaran Komunikasi Segerak

Walaupun komunikasi segerak ialah alat yang berkuasa dalam kit alat asal awan kami, ia juga disertakan dengan set cabarannya sendiri yang perlu dipertimbangkan dengan teliti.

Gandingan Temporal

Terlalu bergantung pada komunikasi segerak sepanjang penyelesaian boleh membawa kepada isu gandingan temporal. Ini berlaku apabila sejumlah besar panggilan segerak dirantai bersama, menyebabkan aplikasi klien menunggu lebih lama untuk menerima respons.

Availability Dependencies

Komunikasi segerak memerlukan semua perkhidmatan komunikasi tersedia pada masa yang sama. Jika perkhidmatan bahagian belakang mengalami beban yang tidak dijangka, aplikasi pelanggan mungkin gagal dengan ralat tamat masa, yang menjejaskan prestasi keseluruhan.

Kesan Kualiti Rangkaian

Kualiti rangkaian boleh memberi kesan secara langsung kepada prestasi komunikasi segerak, termasuk lebar jalur yang tersedia dan tempoh yang diperlukan untuk respons melintasi antara perkhidmatan hujung belakang perkhidmatan.

Walaupun menghadapi cabaran ini, komunikasi segerak boleh menjadi tidak ternilai dalam senario tertentu. Mari kita terokai beberapa kes penggunaan yang mana komunikasi segerak mungkin merupakan pilihan yang lebih baik dalam bahagian seterusnya.

Bila menggunakan komunikasi segerak

Dalam sesetengah kes, menggunakan komunikasi segerak mungkin merupakan pilihan yang lebih baik.

Akses data masa nyata atau hasil terjamin

Komunikasi segerak meningkatkan kecekapan apabila maklum balas segera atau masa nyata diperlukan. Sebagai contoh, apabila pelanggan membuat pesanan di tapak web e-dagang, bahagian hadapan e-dagang perlu menyemak sistem inventori untuk memastikan item itu ada dalam stok. Ini adalah operasi segerak kerana aplikasi perlu menunggu maklum balas daripada sistem inventori sebelum ia boleh meneruskan pemprosesan pesanan.

Mengatur urutan tugasan yang berkaitan

Dalam situasi di mana perkhidmatan mesti melaksanakan urutan tugas, masing-masing bergantung pada tugas sebelumnya, komunikasi segerak boleh mengekalkan susunan. Ia amat sesuai untuk aliran kerja yang susunan tugasan adalah kritikal.

Kekalkan Integriti Transaksi

Apabila mengekalkan konsistensi data merentas berbilang komponen adalah kritikal, komunikasi segerak boleh membantu mengekalkan transaksi atom. Ia adalah relevan untuk senario seperti transaksi kewangan yang integriti data adalah kritikal.

Komunikasi segerak ialah alat yang berkuasa, tetapi ia juga datang dengan cabaran. Berita baiknya ialah kami juga mempunyai pilihan komunikasi tak segerak - gaya pelengkap yang boleh berfungsi dengan kaedah segerak. Mari kita terokai ini dengan lebih lanjut dalam bahagian seterusnya.

Apakah komunikasi tak segerak?

Corak komunikasi tak segerak menyediakan kaedah yang dinamik dan cekap untuk komunikasi antara perkhidmatan. Tidak seperti komunikasi segerak, komunikasi tak segerak membenarkan perkhidmatan untuk memulakan permintaan tanpa menunggu respons segera. Dalam model ini, respons mungkin tidak serta-merta atau tiba secara tidak segerak pada saluran yang berasingan (seperti baris gilir panggilan balik). Model komunikasi ini bergantung pada protokol seperti Advanced Message Qeuing Protocol (AMQP) dan middleware pemesejan, termasuk broker mesej atau broker acara.

Perisian tengah pemesejan ini bertindak sebagai perantara dengan logik perniagaan yang minimum. Ia menerima mesej daripada sumber atau perkhidmatan pengeluar dan menyampaikannya kepada perkhidmatan pengguna yang dimaksudkan. Mengintegrasikan perisian tengah pemesejan boleh meningkatkan dengan ketara keanjalan dan toleransi kesalahan pendekatan yang dipisahkan ini. Komunikasi tak segerak merangkumi pelbagai pelaksanaan. Mari kita terokai ini dengan lebih lanjut.

Komunikasi satu dengan satu

Dalam komunikasi mesej satu sama satu, pengeluar menggunakan broker mesej untuk menghantar mesej secara khusus kepada penerima. Biasanya, broker mesej bergantung pada baris gilir untuk memastikan komunikasi yang boleh dipercayai dan menyediakan jaminan penghantaran, seperti sekurang-kurangnya sekali. Pelaksanaannya serupa dengan corak arahan, di mana mesej yang dihantar bertindak sebagai arahan yang digunakan oleh perkhidmatan pelanggan untuk mencetuskan tindakan.

Mari kita pertimbangkan contoh kedai runcit dalam talian untuk menggambarkan penggunaannya. Perniagaan dalam talian bergantung pada kebolehpercayaan tapak webnya. Model ini menyediakan toleransi kesalahan dan jaminan mesej, memastikan bahawa sebaik sahaja pelanggan membuat pesanan di tapak web, sistem pemenuhan bahagian belakang menerima pesanan untuk diproses. Broker mesej mengekalkan mesej walaupun sistem back-end ditutup dan menghantarnya apabila ia boleh diproses. Sebagai contoh, dalam aplikasi e-dagang, apabila pelanggan membuat pesanan, broker mesej boleh digunakan untuk menghantar butiran pesanan sebagai mesej daripada perkhidmatan pesanan (pengeluar) kepada perkhidmatan pemenuhan (pengguna). Ini adalah contoh komunikasi satu dengan satu.

Komunikasi satu sama satu tak segerak dalam awan

Pelanjutan mod mesej satu sama satu ialah mod tindak balas permintaan tak segerak. Dalam kes ini, penghantar menghantar mesej tanpa mengharapkan balasan. Tetapi dalam beberapa senario tertentu, pengguna mesti menggunakan baris gilir dalam baris gilir infrastruktur broker mesej yang sama untuk bertindak balas kepada perkhidmatan pengeluaran. Respons daripada pengguna mungkin mengandungi metadata tambahan, seperti ID yang dikaitkan dengan permintaan awal atau alamat respons. Memandangkan pengeluar tidak mengharapkan respons segera, aliran kerja pengeluar yang berasingan mengurus balasan ini. Sebaik sahaja pesanan dibuat, perkhidmatan pemenuhan (pengguna) bertindak balas kepada perkhidmatan pesanan hadapan (pengeluar) supaya pelanggan boleh mengemas kini di laman web.

Komunikasi balas permintaan satu dengan satu tak segerak dalam awan

Komunikasi pengguna tunggal berguna apabila dua perkhidmatan berkomunikasi dari satu titik ke titik. Walau bagaimanapun, terdapat situasi di mana penerbit mesti menghantar acara tertentu kepada berbilang pelanggan, yang membawa kami kepada corak berikut.

Komunikasi satu-ke-banyak

Kaedah komunikasi ini amat berharga apabila satu komponen (penerbit) perlu menyiarkan acara kepada berbilang komponen dan perkhidmatan (pelanggan). Komunikasi satu-ke-banyak menggunakan konsep topik, serupa dengan forum dalam talian.

Ia seperti forum dalam talian di mana berbilang pengguna boleh menyiarkan artikel yang boleh dibaca oleh pengikut mereka dalam masa mereka sendiri dan bertindak balas mengikut keperluan. Begitu juga, aplikasi boleh mempunyai topik yang boleh ditulis oleh perkhidmatan pengeluar dan boleh dibaca oleh perkhidmatan pengguna. Ia adalah salah satu corak yang paling popular dalam aplikasi dunia sebenar.

Pertimbangkan sekali lagi bahawa platform e-dagang mempunyai perkhidmatan yang mengemas kini harga produk dan pelbagai perkhidmatan memerlukan maklumat ini (seperti perkhidmatan langganan, perkhidmatan pengesyoran, dll.), kemas kini harga boleh dihantar sebagai mesej kepada topik dalam broker mesej . Semua perkhidmatan yang berminat (pelanggan) boleh mendengar topik dan menerima kemas kini harga. Ini adalah contoh komunikasi satu-ke-banyak. Terdapat beberapa alatan yang tersedia untuk melaksanakan corak ini, dengan Apache Kafka, Redis Pub/Sub, Amazon SNS dan Azure Event Grid menjadi antara pilihan yang paling popular.

Komunikasi Satu-ke-Banyak Asynchronous dalam Awan

Cabaran Komunikasi Asynchronous

Walaupun komunikasi tak segerak memberikan banyak faedah, ia juga datang dengan set cabarannya sendiri.

Ketahanan dan Toleransi Kesalahan

Dengan sejumlah besar perkhidmatan mikro dan komponen tanpa pelayan, setiap satu dengan berbilang kejadian, kegagalan tidak dapat dielakkan. Kejadian boleh ranap, menjadi terharu atau mengalami kegagalan sementara. Selain itu, pengirim tidak menunggu mesej diproses, jadi jika ralat berlaku, ia mungkin tidak menyedarinya dengan segera. Kita mesti mengguna pakai strategi berikut:

Cuba semula mekanisme: cuba semula panggilan rangkaian yang gagal untuk kegagalan sementara

Corak pemutus litar: mengelakkan panggilan berulang ke perkhidmatan yang gagal untuk mengelakkan kesesakan sumber

Pengesanan teragih

Segerakan perkhidmatan, komunikasi segerak ini menjadikan pemantauan prestasi sistem secara keseluruhan mencabar. Melaksanakan pengesanan teragih membantu mengikat log dan metrik bersama-sama untuk memahami aliran transaksi.

Nyahpepijat dan Pemantauan Kompleks

Komunikasi tak segerak boleh menjadi lebih sukar untuk nyahpepijat dan dipantau kerana operasi tidak mengikut aliran linear. Alat dan teknik khusus selalunya diperlukan untuk nyahpepijat dan memantau sistem ini dengan berkesan.

Pengurusan Sumber

Sistem tak segerak selalunya melibatkan sambungan jangka panjang dan pemprosesan latar belakang, yang boleh membawa kepada cabaran pengurusan sumber. Penjagaan mesti diambil untuk mengurus sumber dengan cekap untuk mengelakkan kebocoran memori atau penggunaan CPU yang berlebihan.

Memahami cabaran ini boleh membantu mereka bentuk sistem komunikasi tak segerak yang lebih teguh dan berdaya tahan dalam aplikasi asli awan.

Kata Akhir

Pilihan antara mod komunikasi segerak dan tak segerak bukanlah binari tetapi keputusan strategik berdasarkan keperluan khusus aplikasi.

Komunikasi segerak mudah dilaksanakan dan menyediakan maklum balas segera, menjadikannya sesuai untuk akses data masa nyata, mengatur tugas berkaitan dan mengekalkan integriti transaksi. Walau bagaimanapun, ia juga menghadapi cabaran seperti gandingan temporal, pergantungan ketersediaan dan impak kualiti rangkaian.

Sebaliknya, komunikasi tak segerak membolehkan perkhidmatan memulakan permintaan tanpa menunggu respons segera, dengan itu meningkatkan responsif dan kebolehskalaan sistem. Ia memberikan fleksibiliti dan sesuai untuk senario di mana maklum balas segera tidak diperlukan. Walau bagaimanapun, ia membawa kerumitan sekitar daya tahan, toleransi kesalahan, pengesanan teragih, penyahpepijatan, pemantauan dan pengurusan sumber.

Ringkasnya, mereka bentuk sistem komunikasi yang teguh dan berdaya tahan untuk aplikasi asli awan memerlukan pemahaman yang mendalam tentang corak komunikasi segerak dan tak segerak. Dengan mempertimbangkan dengan teliti kelebihan dan kekurangan setiap corak dan menyelaraskannya dengan keperluan, arkitek boleh mereka bentuk sistem yang mengatur elemen bebas secara berkesan di dalam dan di luar sempadan aplikasi untuk menyampaikan aplikasi asli awan yang berprestasi tinggi, berskala dan boleh dipercayai.

Atas ialah kandungan terperinci . Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dzone.com
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!