Norbert adalah contoh yang baik dari sistem produksi yang dapat diskalakan. Secara umum, ini mengintegrasikan Netty, Protocol Buffer dan Zookeeper ke dalam kerangka kerja yang ringan untuk menjalankan layanan berkerumun. Protocol Buffer digunakan untuk menentukan API layanan Anda, Netty menerapkan abstraksi lapisan transport dan Zookeeper pada dasarnya adalah layanan penemuan yang toleran terhadap kesalahan.
Setiap kali instance layanan dimulai, Norbert mendaftarkannya sebagai instance yang tersedia dari jenis layanan tertentu. Dari perspektif implementasi, ini menciptakan dua pohon Zookeeper:
- "/ ServiceName / members" yang mencantumkan semua contoh layanan yang diketahui
- "/ ServiceName / available" yang mencantumkan instance layanan yang saat ini tersedia
Properti paling penting untuk setiap node adalah url yang akan digunakan untuk terhubung ke instance layanan yang sesuai. Ini memungkinkan penyeimbangan beban sisi klien - klien Norbert menemukan daftar url untuk nama layanan tertentu dan mencoba untuk menyambung ke salah satunya adalah beberapa urutan (misalnya round-robin atau acak).