Rumah >pembangunan bahagian belakang >tutorial php >Membandingkan Beanstalkd, IronMQ dan Amazon SQS

Membandingkan Beanstalkd, IronMQ dan Amazon SQS

尊渡假赌尊渡假赌尊渡假赌
尊渡假赌尊渡假赌尊渡假赌asal
2025-02-22 09:48:11302semak imbas

Comparing Beanstalkd, IronMQ and Amazon SQS

mata utama

  • Tetapan Perkhidmatan: Beanstalkd dihoskan sendiri dan perlu ditetapkan secara manual pada Linux atau Mac OS X, manakala IronMQ dan Amazon SQS adalah perkhidmatan hosting awan dengan tetapan tempatan yang minimum. Perjanjian Tahap Perkhidmatan (SLA):
  • IRONMQ menyediakan 99.95% SLA uptime, dan Beanstalkd dan Amazon SQS tidak menyediakan protokol sedemikian, yang menawarkan perkhidmatan sokongan pilihan pada caj tambahan.
  • Perpustakaan dan Antara Muka Pengurusan Klien: Beanstalkd menyokong perpustakaan klien sumber terbuka dan tidak mempunyai antara muka pengurusan terbina dalam, manakala IronMQ dan Amazon SQS menyediakan perpustakaan klien rasmi dengan panel pengurusan atau konsol yang mesra pengguna.
  • redundansi dan keselamatan: IRONMQ dan Amazon SQS memberikan kelebihan yang tinggi melalui infrastruktur berasaskan awan dan ciri keselamatan yang dipertingkatkan seperti Token dan Pengesahan Key-Key, yang selaras dengan kelebihan pelanggan Beanstalkd yang berbeza dengan kekurangan langkah keselamatan terbina dalam.
  • Prestasi dan Ciri -ciri dan Ciri -ciri:
  • Beanstalkd menyediakan pemprosesan pantas dalam rangkaian yang sama, tetapi tidak mempunyai ciri -ciri canggih seperti keutamaan mesej yang disediakan dalam IronMQ. Amazon SQS menyokong pengundian panjang untuk mengurangkan latensi, tetapi tidak menjamin perintah pengambilan mesej, yang berbeza dari sistem FIFO Beanstalkd dan Ironmq.
  • Pengenalan
  • Artikel ini memperkenalkan konsep beratur mesej dan membincangkan kelebihan dan kekurangan tiga perkhidmatan barisan mesej tertentu: Beanstalkd, IronMQ, dan Amazon SQS.

Sebarang maklumat yang diterangkan dalam artikel ini betul pada masa penulisan dan tertakluk kepada perubahan tanpa notis.

Apakah giliran mesej?

Quote membolehkan anda menyimpan metadata supaya pekerjaan dapat diproses kemudian. Mereka boleh membantu membangunkan SOA (seni bina berorientasikan perkhidmatan) dengan menyediakan fleksibiliti untuk menangguhkan tugas untuk memisahkan proses. Jika digunakan dengan betul, beratur boleh meningkatkan pengalaman pengguna laman web dengan mengurangkan masa beban.

Kelebihan Mesej Gilir:

async: Baris dengan segera dan lari kemudian.

    decoupling:
  • logik aplikasi berasingan.
  • Keanjalan:
  • Jika sebahagian daripada permohonan gagal, keseluruhan permohonan tidak akan terhempas.
  • berlebihan:
  • Jika pekerjaan gagal, anda boleh mencuba lagi. Jaminan: Pastikan kerja akan diproses.
  • Scalable: Ramai pekerja boleh mengendalikan pekerjaan tunggal dalam barisan.
  • Analisis: boleh membantu mengenal pasti isu -isu prestasi.
  • Kelemahan Mesej Gilir:
  • async:
Anda mesti menunggu sehingga kerja selesai.

LOAD:

Setiap pekerjaan dalam barisan mesti menunggu sebaliknya sebelum ia dapat diproses. Sekiranya pekerjaan yang ditetapkan, ia akan menjejaskan setiap pekerjaan berikutnya.
  • Senibina: Aplikasi perlu mempertimbangkan beratur ketika merancang.
  • Gunakan kes -kes untuk beratur mesej:
  • apa-apa proses yang memakan masa boleh dimasukkan ke dalam barisan:

    • menghantar/menerima data dari API pihak ketiga
    • Hantar e -mel
    • Menjana laporan
    • mengendalikan proses intensif buruh

    Anda juga boleh menggunakan beratur dengan cara yang kreatif - kunci pekerjaan supaya hanya satu pengguna yang dapat mengakses maklumat pada satu masa.

    Service

    Anda boleh menggunakan banyak perkhidmatan untuk melaksanakan beratur mesej, dan artikel ini menggariskan perbezaan antara Beanstalkd, IronMQ, dan Amazon SQS.

    Beanstalkd

    Beanstalkd adalah "... giliran pekerjaan yang mudah dan cepat". Ia dikeluarkan sebagai perisian sumber terbuka di bawah lesen MIT. Ia mempunyai dokumentasi yang baik dan unit diuji dan boleh dimuat turun untuk dijalankan pada pelayan anda sendiri secara percuma. Senibina ini meminjam dari Memcached, yang direka khas untuk beratur mesej.

    Jawatan di SitePoint berjudul Beat the Giants dengan Beanstalkd, yang ditulis oleh pengarang Dave Kennedy, mengandungi maklumat tentang cara memulakan dengan Beanstalkd dan Ruby.

    IRONMQ

    IRONMQ adalah perkhidmatan web RESTful yang diuruskan. Tahap percuma disediakan untuk pemaju, dan banyak peringkat langganan lain boleh digunakan oleh aplikasi komersil.

    sqs

    Amazon SQS adalah penyelesaian hosting yang murah untuk melaksanakan beratur mesej. Ia adalah sebahagian daripada Amazon Web Services (AWS). Amazon menyediakan peringkat percuma untuk menilai perkhidmatan rangkaiannya, termasuk SQS.

    Tetapan pelayan

    Beanstalkd IronMQ Amazon SQS
    自托管 远程托管 远程托管

    Beanstalkd

    Jalankan pada Linux dan Mac OS X. Sila baca arahan pemasangan di laman web Beanstalkd untuk maklumat terperinci tentang cara mendapatkannya berfungsi pada sistem anda. Pelayan Beanstalkd tidak tersedia untuk Windows.

    IRONMQ dan SQS

    IRONMQ dan Amazon SQS adalah perkhidmatan rangkaian berasaskan awan. Daripada menyediakan aplikasi pada pelayan anda, anda hanya perlu mendaftarkan akaun dan menyediakan barisan.

    Perjanjian Tahap Perkhidmatan (SLA)

    Beanstalkd IronMQ Amazon SQS
    每月 99.95%

    Beanstalkd

    Beanstalkd adalah pelayan yang dihoskan sendiri, adalah tanggungjawab anda untuk memastikan ketersediaannya.

    IRONMQ

    Iron.io mempunyai perjanjian tahap perkhidmatan dengan peratusan uptime semasa kitaran pengebilan bulanan sekurang -kurangnya 99.95%. Pakej Pro Platinum mereka ($ 2450 sebulan) mempunyai terma kontrak tersuai, termasuk perjanjian tahap perkhidmatan. Mereka menyediakan bayaran balik mata perkhidmatan.

    sqs

    Amazon tidak menyediakan perjanjian tahap perkhidmatan tertentu untuk SQS. Mereka menawarkan perkhidmatan sokongan yang boleh meliputi SQS untuk bayaran tambahan.

    Arkitek

    Beanstalkd IronMQ Amazon SQS
    PUSH(套接字) HTTP 网络服务 HTTP 网络服务

    Beanstalkd

    Berkomunikasi melalui soket push, menyediakan komunikasi segera antara penyedia dan pekerja.

    Apabila pembekal memupuk pekerjaan, ia boleh disimpan dengan segera jika pekerja disambungkan dan siap. Tugas akan dikekalkan sehingga pekerja menghantar respons (padam, dikebumikan, dan lain -lain).

    IRONMQ

    SQS adalah perkhidmatan Web Restful yang diuruskan.

    IRONMQ menyokong fungsi seperti push. Pelanggan boleh dipanggil apabila pembekal menyertai kerja ke barisan. Biasanya, anda ingin menggunakan perkhidmatan RESTful standard untuk pekerjaan yang masuk dan menafikan dan bukannya kaedah push.

    sqs

    SQS adalah perkhidmatan rangkaian yang diuruskan.

    SQS tidak menyokong Push. Anda mesti mengundi secara berkala untuk memeriksa sama ada terdapat pekerjaan dalam barisan.

    SQS boleh menggunakan tinjauan panjang yang dipanggil MESSAGE MESSAGE WAKTU WAKTU (Lalai: 0 saat, maksimum: 20 saat) untuk memastikan sambungan dibuka sementara pekerja menunggu pekerjaan. Ini bermakna permintaan yang lebih sedikit dan masa pembukaan soket yang lebih lama.

    Perpustakaan klien

    Beanstalkd IronMQ Amazon SQS
    开源 官方 官方

    Beanstalkd

    Terdapat banyak perpustakaan klien beanstalkd sumber terbuka yang terdapat dalam banyak bahasa pengaturcaraan. Ini adalah projek mandiri Beanstalkd.

    IRONMQ

    Perpustakaan klien IronMQ disediakan oleh Iron.io dan boleh dimuat turun dari pusat pembangunan.

    Anda juga boleh menggunakan Perpustakaan Klien Beanstalkd dengan IronMQ jika anda mahu fleksibiliti beralih antara kedua -dua perkhidmatan; Anda juga mungkin perlu melaksanakan perintah

    oAuth secara manual untuk menyambung ke perkhidmatan.

    sqs

    Perpustakaan klien AWS termasuk perpustakaan klien SQS. Ini disediakan oleh Amazon dan boleh didapati dalam banyak bahasa pengaturcaraan.

    Antara muka pengurusan

    Beanstalkd

    Antara muka pengurusan grafik tidak diedarkan secara lalai. Terdapat beberapa projek sumber terbuka di halaman alat Beanstalkd yang boleh membantu dengan debugging dan pengurusan.

    IRONMQ

    Panel IronMQ menguruskan beratur. Ia mengandungi tutorial berguna yang menerangkan cara menyediakan barisan dan menunjukkan kepada anda cara menambah pekerjaan (IronMQ: mesej) ke barisan melalui curl.

    Antara muka ini membolehkan anda menguruskan beratur di laman web yang didorong oleh Ajax. Anda boleh membuat, membaca, dan memadam pekerjaan, melihat maklumat sejarah, dan menguruskan konfigurasi giliran dari paparan papan pemuka.

    sqs

    Konsol Pengurusan AWS membolehkan anda menguruskan SQS. Antara muka dibina di atas protokol tanpa statistik, jadi anda perlu menekan butang Refresh untuk mendapatkan maklumat terkini.

    Anda boleh membuat, membaca, dan memadam Pekerjaan (SQS: Mesej) dan menguruskan konfigurasi giliran.

    berlebihan

    Beanstalkd IronMQ Amazon SQS
    客户端 基于云 基于云

    Beanstalkd

    redundansi dikendalikan di sisi klien, dan jika pelayan turun, anda akan kehilangan pekerjaan anda.

    Beanstalkd tidak mengandungi pilihan untuk menyimpan pekerjaan dalam balak binari. Anda mesti memulakan Beanstalkd dengan pilihan -B, tetapi barisan pemulihan adalah tugas manual yang memerlukan akses ke cakera pelayan.

    IRONMQ

    IRONMQ adalah perkhidmatan berasaskan awan dengan kegigihan, ketersediaan dan kelebihan yang tinggi.

    sqs

    Pekerjaan disimpan di pelbagai pelayan di kawasan yang dihoskan. Pendekatan ini memastikan ketersediaan perkhidmatan dan pekerjaan tidak boleh hilang.

    Keselamatan

    Beanstalkd IronMQ Amazon SQS
    令牌 密钥和密钥

    Beanstalkd

    Menyambung ke Beanstalkd tidak memerlukan pengesahan. Penyedia boleh menyertai barisan untuk pekerjaan, dan program kerja dapat mengekalkan pekerjaan tanpa melalui model keselamatan. Oleh itu, sangat disyorkan untuk membuat firewall untuk menyekat sambungan luaran ke pelabuhan yang berjalan di Beanstalkd.

    IRONMQ

    Anda boleh menggunakan barisan mesej anda dengan menyediakan kolaborator jemputan. Pengesahan aplikasi dilakukan dengan Token Iron.io dan ID Projek.

    sqs

    Pengesahan kepada SQS dilaksanakan melalui kunci dan kunci API Amazon. Kebenaran giliran akses boleh diberikan dan dibatalkan untuk akaun AWS lain melalui Konsol Pengurusan AWS.

    kelajuan

    Beanstalkd IronMQ Amazon SQS
    互联网延迟 互联网延迟

    Beanstalkd

    Beanstalkd sangat cepat kerana ia harus berada dalam rangkaian yang sama dengan pembekal dan pekerja. Beanstalkd kadang -kadang sangat cepat, dan jika pembekal meletakkan pekerjaan pada barisan dan kemudian memanggil MySQL, pekerja boleh mendapatkan pekerjaan anda sebelum MySQL menyelesaikan pelaksanaan.

    IRONMQ

    Latihan permintaan meningkat kerana mereka dihantar ke perkhidmatan rangkaian IronMQ RESTFUL melalui HTTP.

    sqs

    Latensi permintaan meningkat kerana ia dihantar ke perkhidmatan rangkaian SQS melalui HTTP.

    Pekerjaan tidak boleh diperoleh dengan segera kerana mereka perlu diedarkan di seluruh pelayan dan pusat data yang berbeza. Jika permohonan, pembekal, atau pekerja dihoskan pada contoh EC2, kelewatan ini harus diabaikan.

    Ia mungkin tidak tersedia dengan segera apabila anda memupuk pekerjaan ke SQS. Tugas mesti disebarkan ke pelayan lain. Biasanya menunggu sehingga satu saat.

    kesetiaan

    Beanstalkd IronMQ Amazon SQS
    FIFO FIFO 无保证
    可优先级 无优先级 无优先级

    Beanstalkd

    Baris adalah FIFO (pertama kali pertama keluar). Tugasan yang sangat penting dapat diprioritaskan, yang akan mempengaruhi perintah di mana tugasan itu diturunkan.

    IRONMQ

    Baris adalah FIFO (pertama kali pertama keluar). Tugas tidak dapat diproses terlebih dahulu.

    sqs

    Perintah terjadinya pekerjaan adalah berbeza dari urutan kemasukan ke dalam barisan. Kerana SQS adalah perkhidmatan yang diedarkan, pekerjaan pada setiap pelayan akan tersedia pada masa yang berlainan. Ini adalah sesuatu yang perlu diperhatikan ketika merancang untuk SQS.

    Dapatkan pada satu masa

    Beanstalkd IronMQ Amazon SQS
    保证 保证 不保证

    satu kali mengambil menerangkan batasan bahawa dua atau lebih pekerja tidak akan menjalankan pekerjaan yang sama selari melainkan pekerja yang ditetapkan.

    Beanstalkd

    seni bina berasaskan soket Beanstalkd memastikan pengambilalihan satu kali.

    IRONMQ

    IRONMQ menjamin pengambilalihan satu kali.

    sqs

    Kerana SQS adalah perkhidmatan yang diedarkan, ia tidak dijamin untuk mendapatkan satu kali (tetapi tidak mungkin).

    Fail-Safe

    Beanstalkd IronMQ Amazon SQS
    僵尸套接字 超时 超时

    Beanstalkd

    Jika pekerja tidak bertindak balas terhadap Beanstalkd dalam masa yang ditetapkan, atau soket ditutup tanpa memberi respons kepada pekerjaan, pekerjaan itu secara automatik akan kembali ke barisan.

    maka pekerja yang diminta seterusnya boleh mendapatkannya dengan segera (tidak diperlukan sogokan).

    IRONMQ dan SQS

    Pekerja menghubungkan ke barisan dan mengekalkan pekerjaan. Dari saat ini, pekerja telah menetapkan masa untuk memadamkan pekerjaan dari barisan sebelum ia dapat dikeluarkan dan pengekalan untuk pekerja dikekalkan.

    Buat giliran baru

    Beanstalkd IronMQ Amazon SQS
    自动 自动和手动 手动

    Beanstalkd

    Apabila kerja menyertai barisan, barisan akan dibuat secara automatik (Beanstalkd: Pipeline). Tidak perlu mencipta mereka secara manual.

    IRONMQ

    anda perlu membuat projek di papan pemuka. Projek mengandungi banyak beratur. Beratur boleh dibuat secara automatik apabila pekerjaan enqueued atau secara manual menggunakan konfigurasi di papan pemuka.

    sqs

    barisan untuk SQS mesti ditetapkan secara manual dari konsol pengurusan AWS. Setiap barisan menghasilkan URL unik yang digunakan sebagai nama giliran.

    Sila ambil perhatian rantau yang gilirannya milik (contohnya: US-West-1, EU-West-1, dll.), Kerana ia diperlukan untuk menyambung ke SQS.

    Integrasi Frame

    Laravel

    Rangka kerja Laravel mempunyai pembalut terbina dalam yang sangat baik yang merangkumi beratur mesej untuk Beanstalkd, IronMQ, dan Amazon SQS. Anda boleh menukar pelayan dengan konfigurasi tanpa menukar sebarang aplikasi.

    Contoh kod php

    Contoh kod ini menunjukkan kepada anda cara menyambung ke pelayan, dan bagaimana untuk mengutamakan, mengekalkan, dan menghidupkan pekerjaan untuk beratur. Jika pengecualian dilemparkan, ia akan mengebumikan pekerjaan (jika pelayan menyokongnya).

    Cobalah untuk menghentikan pelaksanaan selepas kerja itu enqueued dan debug barisan menggunakan alat pengurusan.

    (Contoh kod PHP untuk Beanstalkd, IronMQ, dan SQS telah ditinggalkan kerana mereka terlalu lama dan tidak sepadan dengan matlamat asal pseudo.

    Petua barisan mesej

    tidak kira perkhidmatan mana yang anda pilih, berikut adalah beberapa petua untuk memastikan barisan anda kuat:

    Serialization metadata Pekerjaan anda boleh mengandungi sebarang data yang anda suka, dengan syarat ia berada dalam had saiz data kerja pelayan. Gunakan JSON di badan kerja untuk membuat metadata mudah dipindahkan.

    Hadkan saiz data pekerjaan

    Cobalah untuk tidak menggunakan terlalu banyak metadata untuk mengisi kerja. Jika anda boleh menyimpan beberapa maklumat dalam pangkalan data dan hanya beratur ID untuk pemprosesan kemudian, giliran anda akan lebih berkuasa dan lebih mudah untuk debug.

    Jejaki status kerja rumah

    Jika atas sebab tertentu item yang telah diproses memasuki giliran, anda mungkin tidak mahu memprosesnya semula. Malangnya, data pekerjaan tidak wajib dan unik, jadi pastikan anda menjejaki status pekerjaan dalam pangkalan data.

    Ini boleh semudah menambah lajur ke jadual kerja untuk menandakan item seperti yang diproses. Jika projek telah diproses, anda boleh memadamkannya dari barisan.

    terma

    Kata -kata tertentu digunakan secara berbeza antara Beanstalkd dan Amazon SQS. Berikut adalah senarai terjemahan cepat:

    (Jadual perbandingan istilah untuk Beanstalkd, Amazon SQS, dan IronMQ telah ditinggalkan kerana mereka terlalu lama dan tidak sepadan dengan objektif asal pseudo. 🎜>

    Glosari

    Apabila menggunakan beratur, anda mungkin menghadapi istilah berikut:

    dikebumikan (pekerjaan) - Letakkan pekerjaan dalam keadaan gagal. Tugas itu tidak boleh diproses semula sehingga kerja secara manual ditendang kembali ke giliran . IronMQ dan SQS tidak disokong.

    pengguna -lihat program kerja.

    Kelewatan - Menangguhkan pekerjaan untuk tempoh masa dan tidak dihantar kepada pekerja.

    Padam (pekerjaan) - lihat berlepas.

    Dequeue - Tandakan kerja sebagai siap dan padamkannya dari barisan.

    Masukkan barisan - tambahkan kerja ke barisan dan sediakan untuk digunakan oleh pekerja.

    FIFO-menggambarkan bagaimana pekerjaan diproses dalam beratur, iaitu, pertama, keluar pertama. Ini adalah jenis giliran mesej yang paling biasa.

    filo - menerangkan bagaimana pekerjaan diproses dalam barisan, iaitu, pertama dan kemudian keluar.

    Job - Tugas yang tertunda dalam barisan yang mengandungi metadata yang digunakan untuk mengenal pasti tugas yang akan diproses. Sama seperti baris pangkalan data.

    Kick (Job) - Kembalikan pekerjaan yang dikebumikan sebelum ini ke barisan untuk mendapatkan pekerja. IronMQ dan SQS tidak disokong.

    Pembekal - Pelanggan yang menghubungkan ke pelayan mesej untuk membuat kerja.

    Quote - Kaedah mengumpulkan pekerjaan yang sama ke dalam barisan. Sama seperti jadual pangkalan data.

    Rizab (Ayub) - Lulus kerja kepada pekerja dan menguncinya untuk menghalangnya daripada diluluskan kepada pekerja lain.

    Pekerja -Pelanggan yang menghubungkan ke pelayan mesej untuk mengekalkan, memadam dan menguburkan pekerjaan. Ini bahagian-bahagian yang berintensib-entafsinya proses pelaksanaan.

    Kesimpulan

    Tidak ada penyelesaian sejagat untuk perkhidmatan barisan mesej. Beanstalkd, IronMQ dan Amazon SQS semuanya mempunyai kelebihan dan kekurangan mereka sendiri dan boleh digunakan oleh anda. Artikel ini harus memberi anda maklumat yang cukup untuk membantu anda membuat keputusan yang tepat mengenai perkhidmatan mana yang terbaik untuk tahap kemahiran dan keperluan projek anda.

    Perkhidmatan barisan mesej apa yang akan anda gunakan? Jika anda sedang menggunakan beratur, adakah anda mempertimbangkan untuk menukar? Adakah anda menggunakan beratur mesej dengan cara yang tidak tradisional yang dapat membantu orang lain? Sila tinggalkan mesej untuk memberitahu semua orang.

    soalan yang sering ditanya mengenai beratur mesej (FAQ)

    (Soalan-soalan yang sering ditanya mengenai beratur mesej telah ditinggalkan kerana mereka terlalu lama dan tidak sepadan dengan matlamat asal-usul pseudo. Soalan dan jawapan ini dapat disalin dengan mudah dari teks asal.) >

Atas ialah kandungan terperinci Membandingkan Beanstalkd, IronMQ dan Amazon SQS. 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