Sekelompok file baru dengan nama file unik secara teratur "muncul" 1 pada satu server. (Seperti ratusan GB data baru setiap hari, solusinya harus dapat diukur hingga terabyte. Setiap file berukuran beberapa megabita, hingga beberapa puluh megabita.)
Ada beberapa mesin yang memproses file-file itu. (Puluhan, solusi harus scalable hingga ratusan.) Harus dimungkinkan untuk dengan mudah menambah dan menghapus mesin baru.
Ada server penyimpanan file cadangan tempat setiap file yang masuk harus disalin untuk penyimpanan arsip. Data tidak boleh hilang, semua file yang masuk harus dikirim pada server penyimpanan cadangan.
Setiap myst file yang masuk dikirim ke satu mesin untuk diproses, dan harus disalin ke server penyimpanan cadangan.
Server penerima tidak perlu menyimpan file setelah mengirimnya dalam perjalanan.
Mohon saran solusi yang kuat untuk mendistribusikan file dengan cara, dijelaskan di atas. Solusi tidak boleh berbasis Java. Solusi unix-way lebih disukai.
Server berbasis Ubuntu, berlokasi di pusat data yang sama. Semua hal lain dapat disesuaikan untuk kebutuhan solusi.
1 Perhatikan bahwa saya sengaja menghilangkan informasi tentang cara file diangkut ke sistem file. Alasannya adalah bahwa file-file tersebut sedang dikirim oleh pihak ketiga oleh beberapa warisan yang berbeda berarti saat ini (anehnya, melalui scp, dan melalui ØMQ). Tampaknya lebih mudah untuk memotong antarmuka lintas-cluster di tingkat sistem file, tetapi jika satu atau solusi lain benar-benar akan memerlukan beberapa transportasi khusus - transportasi warisan dapat ditingkatkan ke yang itu.
Jawaban:
Ini adalah salah satu solusi untuk apa yang Anda cari. Tidak ada java yang terlibat dalam pembuatan sistem ini, hanya bit Open Source yang tersedia. Model yang disajikan di sini dapat bekerja dengan teknologi lain selain yang saya gunakan sebagai contoh.
Pengaturan ini harus dapat mencerna file dengan kecepatan ekstrim yang diberikan server yang cukup. Mendapatkan kecepatan konsumsi agregat 10GbE harus bisa dilakukan jika Anda cukup besar. Tentu saja, memproses data sebanyak itu dengan cepat akan membutuhkan lebih banyak server di kelas mesin pemroses Anda. Pengaturan ini harus ditingkatkan hingga seribu node, dan mungkin lebih dari itu (meskipun seberapa jauh tergantung pada apa, tepatnya, yang Anda lakukan dengan semua ini).
Tantangan teknik yang mendalam akan berada dalam proses manajemen alur kerja yang tersembunyi di dalam proses AMQP. Itu semua perangkat lunak, dan mungkin dibuat khusus untuk tuntutan sistem Anda. Tetapi harus diisi dengan data!
sumber
Mengingat Anda telah mengklarifikasi bahwa file akan tiba melalui scp, saya tidak melihat alasan untuk server front-end ada sama sekali, karena mekanisme transport adalah sesuatu yang dapat diarahkan pada layer 3.
Saya akan menempatkan direktur LVS (pasangan) di depan, dengan kumpulan server pemrosesan di belakang dan kebijakan pengalihan round-robin. Itu membuatnya sangat mudah untuk menambah dan mengurangi server ke / dari kolam, itu meningkatkan keandalan karena tidak ada server front-end untuk jatuh, dan itu berarti kita tidak harus menjawab pertanyaan tarikan / dorong tentang mendapatkan file dari front-end ke server pemrosesan karena tidak ada front-end.
Setiap server kumpulan harus melakukan dua hal ketika menerima file - pertama, salin ke penyimpanan arsip, kemudian proses file dan kirimkan dalam perjalanan.
sumber