1. Bagaimana mempertahankan sesi
Saat ini, untuk membuat web beradaptasi dengan akses skala besar, perlu untuk menerapkan penerapan klaster aplikasi. Solusi paling efektif untuk cluster adalah load balancing, dan untuk mencapai load balancing, setiap permintaan pengguna dapat dialokasikan ke server yang tidak tetap. Dengan cara ini, pertama-tama kita harus menyelesaikan penyatuan sesi untuk memastikan bahwa ke server mana pun permintaan pengguna diteruskan, Untuk memastikan penggunaan normal pengguna, perlu untuk menerapkan mekanisme berbagi sesi.
Ada beberapa solusi untuk mencapai penyatuan sesi di bawah sistem cluster:
1. Minta lokasi yang tepat: sessionsticky, misalnya, strategi hash berdasarkan ip akses, yaitu, permintaan pengguna saat ini terkonsentrasi di satu server, sehingga satu server menyimpan informasi login sesi pengguna. Jika turun, ini setara dengan satu server. Klik Deploy, itu akan hilang dan sesi tidak akan disalin.
2. Replikasi dan berbagi sesi: replikasi sesi, seperti sesi berbagi milik tomcat, terutama mengacu pada sinkronisasi sesi antara beberapa server aplikasi dalam lingkungan cluster untuk menjaga sesi tetap konsisten dan transparan ke dunia luar. Jika salah satu server gagal, sesuai dengan prinsip load balancing, penjadwal akan melintasi untuk menemukan node yang tersedia dan mendistribusikan permintaan. Karena sesi disinkronkan, dapat memastikan bahwa informasi sesi pengguna tidak akan hilang dan sesi akan direplikasi.
Kekurangan dari program ini:
Ini harus dilakukan antara jenis middleware yang sama (seperti antara tomcat-tomcat).
Kehilangan kinerja yang disebabkan replikasi sesi akan meningkat dengan cepat. Terutama ketika objek besar disimpan dalam sesi dan objek berubah dengan cepat, penurunan kinerja akan lebih signifikan dan akan menghabiskan kinerja sistem. Fitur ini membatasi perluasan horizontal aplikasi web.
Konten sesi disinkronkan ke anggota melalui siaran, yang akan menyebabkan kemacetan lalu lintas jaringan, bahkan jika itu adalah kemacetan intranet.
Tidak bekerja dengan baik di bawah konkurensi besar
3. Berbagi sesi berdasarkan cache DB cache
Berbagi sesi berdasarkan cache memcache / redis
Bahkan jika cacheDB digunakan untuk mengakses informasi sesi, server aplikasi menerima permintaan baru dan menyimpan informasi sesi dalam cache DB. Ketika server aplikasi gagal, penjadwal akan melintasi untuk menemukan node yang tersedia dan mendistribusikan permintaan. Ketika server aplikasi menemukan bahwa sesi tersebut tidak ada di memori lokal , Lalu pergi ke cache DB untuk menemukan, jika ditemukan, salin ke mesin lokal, sehingga berbagi sesi dan ketersediaan tinggi terwujud.
2. Konfigurasi ini didasarkan pada lingkungan tomcat7. Melalui replikasi sesi yang disertakan dengan cluster tomcat, informasi sesi akan secara otomatis disalin ke setiap node.
1. Lingkungan kasus:
Perangkat lunak utama dari alamat IP sistem operasi host
Nginxcentos7.2
192.168.10.19/24Nginx1.6
MySQLcentos7.2192.168.10.22 / 24MySQL5.6.4
tomcat-1centos7.2
192.168.10.20/24jdk-7u65-linux-x64.g
z
apache-tomcat-7.0.54.tar.gz
tomcat-2centos7.2
192.168.10.24/24
Topologi eksperimental:
2. Instal JDK pada node tomcat-1 dan tomcat-2
JDK harus diinstal sebelum menginstal tomcat. Nama lengkap JDK adalah java development kit, yang merupakan kit pengembangan perangkat lunak bahasa java yang disediakan oleh sun company secara gratis. Berisi java virtual machine (JVM). Program sumber java yang telah dikompilasi dapat dibentuk setelah kompilasi Bytecode Java, selama JDK diinstal, JVM dapat digunakan untuk menafsirkan file bytecode ini, sehingga memastikan sifat lintas platform java.
Instal JDK, konfigurasikan lingkungan java:
Buka zip jdk-7u65-linux-x64.gz
Pindahkan direktori jdk1.7.0_65 yang telah didekompresi ke / usr / local / dan ubah namanya menjadi java
Tambahkan konten berikut di file / etc / profile:
Jalankan file profil melalui perintah sumber untuk membuatnya efektif.
Jalankan perintah java -version pada node tomcat-1 dan tomcat-2 untuk memeriksa apakah versi java konsisten dengan penginstalan sebelumnya.
Sejauh ini, lingkungan java telah dikonfigurasi
3. Instal dan konfigurasi tomcat di node tomcat-1 dan tomcat-2
Buka zip paket apache-tomcat-7.0.54.tar.gz
Pindahkan folder yang didekompresi ke / usr / local / dan ganti namanya menjadi tomcat7
Konfigurasikan variabel lingkungan kucing jantan
Isi dari file / etc / profile adalah sebagai berikut:
Jalankan file profil melalui perintah sumber untuk membuatnya efektif.
Mulai tomcat
Tomcat berjalan pada port 8080 secara default, jalankan perintah netstat untuk melihat informasi yang dipantau pada port 8080
Buka browser untuk mengakses tomcat-1 dan tomcat-2 masing-masing
Jika Anda ingin mematikan tomcat, jalankan perintah /usr/local/tomcat7/bin/shutdown.sh
Nah, semua orang dapat melihat bahwa kunjungan itu berhasil. Jelaskan bahwa instalasi tomcat kita sudah selesai, mari kita konfigurasikan
4. Ubah file konfigurasi
# vim /usr/local/tomcat7/conf/server.xml
Setel host default dan tingkatkan jvmRoute
Tentukan host virtual, arahkan jalur file situs web ke / web / webapp1, dan tambahkan bagian konteks ke bagian host
< Konteks docBase = "/ web / webapp1" path = "" reloadable = "true" / >
Tingkatkan direktori dokumen dan uji file
Isi index.jsp adalah sebagai berikut:
Hentikan tomcat berjalan, periksa file konfigurasi dan mulai tomcat
Konfigurasi node Tomcat-2 pada dasarnya mirip dengan node tomcat-1, hanya saja jvmRoute-nya berbeda. Selain itu, untuk membedakan node mana yang memberikan akses, judul halaman pengujian juga berbeda. Konfigurasi lainnya sama. Proses sedikit
Uji kunjungan lagi
Anda dapat melihat bahwa sesi sesi berbeda
Oke, di sini kita telah menyelesaikan semua persiapan, mari kita konfigurasikan load balancing tomcat, dan wujudkan retensi sesi melalui replikasi sesi.
5. Konfigurasikan cluster berbagi sesi, dan selesaikan operasi berikut di masing-masing tomcat-1 dan tomcat-2.
Konfigurasikan file server.xml
Di Server.xml, temukan komentarnya < Gugus/ > Node, tambahkan konten berikut di bawah ini:
Catatan: Garis merah pada gambar di atas perlu menambahkan "/"
Konten di atas dapat merujuk ke metode berikut untuk menemukan dan menyalin dan menempel:
Ubah file web.xml aplikasi dan tambahkan tag < dapat didistribusikan / > ,Sebagai berikut:
tambahkan tag < dapat didistribusikan / >
Tambahkan langsung ke < /aplikasi website > Itu mungkin sebelum ini ditambahkan ke replikasi sesi kucing jantan. Langkah ini diperlukan untuk membangun cluster kucing jantan, jika tidak, sesi pengguna tidak dapat digunakan secara normal.
Catatan: Untuk konten di atas, lihat cara-cara pengelompokan / replikasi sesi
Catatan: host tomcat harus menunjuk ke gateway yang benar, jika tidak, tomcat akan gagal memulai
Mulai ulang layanan kucing jantan dan periksa status mendengarkan port.
Konfigurasi node Tomcat-2 mirip dengan tomcat-1, hanya saja alamatnya harus ditulis sebagai ip of tomcat-2.
Lihat log kucing jantan: /usr/local/tomcat7/logs/catalina.yyyy-mm-dd.log
6, konfigurasi server nginx
Gunakan nginx untuk mencapai load balancing kucing jantan
Instal paket terkait: #yum y installpcre-develzlib-devel
Buka zip dan instal nginx
Modifikasi file nginx.conf, isinya sebagai berikut:
Mulai layanan nginx
Buat aturan firewall
7. Mulailah tes di bawah ini
Gunakan browser pada klien untuk mengakses alamat nginx
segarkan halaman
Seperti yang Anda lihat dari gambar, tidak peduli bagaimana Anda menyegarkan SessionID, itu tidak akan berubah, yang menunjukkan bahwa konfigurasi cluster DeltaManager Tomcat kami telah selesai dan berbagi sesi antara beberapa host telah tercapai.
8. Tomcat terhubung ke database mysql
192.168.10.22 sebagai server database mysql
Konfigurasi mysql
Masukkan beberapa data
Download mysql-connector-java-5.1.22-bin.jar dan salin ke direktori $ CATALINA_HOME / lib
konfigurasi konteks
konfigurasikan sumber data JNDI di tomcat dengan menambahkan deklarasi untuk resource Anda ke konteks Anda
Simpan perubahan dan keluar
konfigurasi web.xml
Simpan perubahan dan keluar, restart layanan kucing jantan
Kode uji
Sekarang buat halaman test.jsp sederhana, isinya sebagai berikut:
Catatan: Firewall membuka port 3306
Uji kunjungan
Melihat hasil di atas menunjukkan bahwa kunjungan tersebut berhasil
Catatan: Konfigurasi di atas dapat merujuk ke dokumen tomcat
Cetak ulang alamat file:
Penulis: sebuah lilin
- "Ma Ge is a City" dari Li Shaohong dijadwalkan pada 17 Mei! Yan Geling "menyatakan" Bai Baihe sebagai akting "jenius"
- Pengenalan mendadak: Dialog dan interaksi membantu perjalanan di masa depan dan membuka babak baru dalam bisnis "di sekitar pengguna"
- Korea Selatan menjadi tuan rumah liga wanita dan syarat partisipasinya sangat santai! Netizen: Dimana Liga Wanita China?
- Bisakah budaya Jepang dan Amerika bertabrakan seperti ini? ! Seberapa khusus interior toko Visvim di New York?
- "Anti-Corruption Storm 4" memecahkan 400 juta box office dan duduk di panggung yang sama, memenjarakan pameran latar anti-korupsi yang menyamar, penggemar klasik Hong Kong