TL; DR
Apa langkah-langkah untuk mengkonfigurasi layanan HA-JNDI dengan pengaturan HornetQ? Saya percaya dokumentasinya sedikit tersebar. Saya telah membaca dokumen di sini tetapi tampaknya tidak menggambarkan secara rinci.
Versi yang lebih panjang:
Jadi kami memiliki setup HornetQ JMS bersama dengan JNDI. Kami telah mengatakan 5 server, yang menjalankan instance master HornetQ JMS dengan layanan JNDI di masing-masing. Pada masing-masing dari 5 server ini, kami juga memiliki budak yang menjalankan beberapa master HornetQ lainnya.
Menggambarkan:
Server A - HornetQa_master, JNDI, HornetQb_slave
Server B - HornetQb_master, JNDI, HornetQc_slave
Server C - HornetQc_master, JNDI, HornetQd_slave
Server D - HornetQd_master, JNDI, HornetQe_slave
Server E - HornetQe_master, JNDI, HornetQa_slave
Masing-masing server HornetQ ini berfungsi sebagai middleware untuk berbagai kebutuhan backend kami, sehingga itu berarti 5 server, 5 instance master HornetQ, 5 instance slave HornetQ, dan 5 server JNDI. Masalahnya, bagaimanapun, dengan pengaturan ini adalah bahwa jika host server (bukan hanya prosesnya, host itu sendiri), katakanlah A turun, idealnya layanan harus mundur ke HornetQ yang berjalan di server E yang menampung budak HornetQ A. Namun, untuk melanjutkan sebagai master HornetQ, HornetQa_slave perlu berbicara dengan proses JNDI yang berjalan di server A (saya berasumsi untuk mereplikasi pesan). Karena host A itu sendiri turun, HornetQa_slave berjalan pada E tidak memiliki cara untuk berbicara dengan JNDI pada A, dan dengan demikian, tidak dapat dilanjutkan sebagai proses master.
Seandainya layanan JNDI sangat tersedia, proses HornetQ budak dapat dilanjutkan sebagai master seperti yang diharapkan. Adakah yang bisa dengan baik menunjuk ke dokumen atau mengilustrasikan dalam langkah-langkah sederhana bagaimana kita dapat mengubah pengaturan yang ada menjadi HA-JNDI? Untuk apa nilainya, saya telah membaca banyak sumber , tetapi tampaknya tidak menggambarkan secara lebih rinci tentang bagaimana cara melanjutkan konfigurasi HA-JNDI. Harap beri tahu saya jika Anda memerlukan info lebih lanjut tentang pengaturan kami saat ini.
Jawaban:
Dengan arsitektur yang dijelaskan, sepertinya sulit bagi saya, karena memang Anda perlu mengkonfigurasi ulang budak sebagai master dan kemudian Anda akan mengalami pemadaman tertentu.
Anda dapat mereferensikan master bukan dengan nama host tetapi menggunakan alamat IP virtual , sehingga jika masternya down, Anda dapat mengkonfigurasi ulang salah satu slave sebagai master, dan memulai ip virtual sehingga Anda tidak perlu mengkonfigurasi ulang sisanya. para budak. (Untuk menjaga HA bahkan ketika master sedang down, Anda ingin memiliki 2 budak, sehingga Anda dapat me-restart salah satu dari mereka sebagai master dan masih satu akan berjalan).
Cara lain untuk mencapai hasil yang sama adalah dengan nama host DNS khusus untuk master yang dapat Anda konfigurasi ulang untuk menunjuk ke IP yang berbeda jika satu host turun. Karena DNS di-cache, entri ini sebaiknya ada di file 'host'.
Jika 3 host per HA-domain terlalu banyak perangkat keras, Anda dapat melakukannya dengan lebih mudah dengan server virtual tanpa perlu membeli lebih banyak perangkat keras.
sumber