Buat MediaService benar pada lebih dari satu pod, dan jalankan dua

FeatureMediaService
Dikirim
4 September 2026 pukul 20.20 UTC
Penulis
Kamo
Commit
6ef1e59

MediaService hanya pernah menjalankan satu replika, jadi menyebarkan itu adalah total outage obrolan dan OOM adalah sama. Ini tidak bisa berjalan dua, untuk alasan yang semua dalam kode: 1. enableSimpleBroker berarti konvertAndSend hanya mencapai WebSockets terhubung ke pod membuat panggilan. 13 pengendali relay sudah menangani ini dengan benar dengan berlangganan ke NAS dengan operator polos (tidak ada grup antrian, jadi setiap pod menerima setiap pesan) dan terbitkan kembali secara lokal. 13 situs panggilan lainnya tidak - indikator mengetik, kehadiran, lencana tidak terbaca, hibah balasan, Tawaran WebRTC / jawaban / ICE, pemberitahuan percakapan tidak masuk - dan masing-masing akan disampaikan untuk kira-kira setengah penonton yang dimaksudkan. StompFanout menggeneralisasi pola yang relay telah digunakan: menerbitkan {tujuan, muatan} di satu inti subjek NATS, setiap pod relay ke broker sendiri. Inti NATS, tidak JetStream, karena ini adalah hidup - peristiwa saat dengan tidak nilai dimainkan ulang dan tidak ada arus meliputi subjek. Karena inti NATS juga memberikan kepada penerbit, mengirim () TIDAK menulis secara lokal - yang akan memberikan dua kali di sini. Dengan NAS bawah itu jatuh kembali ke pengiriman lokal, yang adalah apa yang Platform lakukan sebelumnya. 2. / Konversation Consummer adalah hal yang bisa dimaafkan. Pengelola Berlangganan ChatSesionName bernama JetStream tahan lama setelah sesi chat GUID, dan seorang konsumen push tahan lama mengakui persis satu pelanggan. Kapsul kedua ditolak [SUB-90012] dan setiap anggota yang soket nya mendarat tidak menerima apa-apa - tidak ada pesan, tidak ada penerimaan membaca, tidak ada anggota ditambahkan kejadian, tidak ada kesalahan. Sekarang sebuah konsumen fana: tidak ada nama untuk bertabrakan, satu per pod, dituai oleh server. Pengujian ulang ini menghilangkan menemukan nama baru tahan lama pada tabrakan. Berhasil, dan bocor konsumen permanen-sisi per tabrakan bahwa tidak ada yang pernah dihapus. 3. 5 nama FIXED-DURABLES, membutuhkan perlakuan berlawanan tergantung pada pekerjaan. Konversi dan VOIP StoMP relay pergi melalui JetStream bukan pusat operator, sehingga mereka memiliki sama tidak jelas bug - sekarang fana, karena setiap pod harus menerima. Pemberitahuan surel, sosial inbound konsumen dan konsumen konversi pemasaran harus berjalan persis ONCE, sehingga mereka menjaga mereka tahan lama dan bergabung dengan kelompok pengiriman, yang juga berarti yang selamat mengambil pekerjaan ketika pod mati. Sesi sticky pada rute media diperlukan, bukan opsional: klien-klien StoMP ini menggunakan SockJS, yang xhr-streaming / xhr-polling fallback adalah beberapa permintaan HTTP berdiri untuk satu sambungan terhadap keadaan sesi yang hidup dalam satu memori pod. Round- robin istirahat itu. Lihat Evenssroute.yaml. replika 1 - > 2. 367 tes lulus.

Semua perubahan

Seperti apa yang Anda lihat pengiriman?

Semua pembaruan ini secara otomatis mendarat di ruang kerja Anda. Mulai bebas dan menontonnya tumbuh minggu demi minggu.

Mulai Bebas SelamanyaTampilkan Harga