Apabila menggunakan projek, saya sentiasa menggunakan folder untuk menggunakan projek Baru-baru ini, saya cuba menggunakan penggunaan projek pakej WAR dan menghadapi masalah berikut:
Nyatakan laluan setempat untuk lokasi fail yang dimuat naik, tetapi memandangkan ia bebas daripada projek, anda perlu mengkonfigurasi projek secara berasingan untuk mengaksesnya
Apabila syarikat mempunyai sejumlah besar projek (kira-kira 200 untuk satu pelayan, kira-kira 20 pelayan), setiap projek dikonfigurasikan seperti ini, dan kerja operasi dan penyelenggaraan adalah sangat berat
Hanya satu fail css atau JS telah dilaraskan semasa penyelenggaraan, tetapi ia perlu dibungkus semula dan dikeluarkan
Berbanding dengan kaedah folder sebelum ini, memang menyusahkan saya ingin bertanya kepada pelajar yang berpengalaman:
Apakah senario aplikasi yang anda hadapi menggunakan pakej WAR?
Bagaimana untuk menyelesaikan masalah yang saya hadapi?
Berikut ialah pengalaman operasi dan penyelenggaraan sebenar saya:
Konfigurasi hendaklah bebas daripada projek, supaya pakej perang boleh dibuat sekali sahaja dan digunakan pada persekitaran yang berbeza
Gunakan alat operasi dan penyelenggaraan automatik seperti SaltStack, Ansible atau Jenkins untuk membantu anda melaksanakan operasi kelompok
Jika anda menjangkakan bahawa sumber statik akan berubah dengan kerap, adalah lebih baik untuk memisahkannya daripada projek Java dan menempatkannya ke tapak yang berbeza, atau gunakan nginx untuk lencongan
Adalah disyorkan untuk menggunakan program untuk menyahmampat fail perang (daripada membiarkan Tomcat menyahmampatnya dengan sendirinya), hentikan Tomcat, gunakan ln -s untuk mengarahkan direktori ROOT ke direktori baharu, dan kemudian mulakan Tomcat, supaya Tomcat akan berjalan dengan lebih lancar
Jangan padamkan direktori lama buat masa ini Jika pemasangan salah, gunakan ln -s untuk menukar direktori ROOT kepada yang lama untuk mencapai rollback yang cepat.
Pengalaman praktikal:
Projek yang saya kendalikan semuanya diterbitkan dalam bentuk direktori pada struktur direktori web:
Saya menulis beberapa skrip shell mengikut struktur standard ini untuk mengautomasikan tugas operasi dan penyelenggaraan, termasuk memulakan, menghentikan, memantau, mengemas kini, dll. Ia sebenarnya hanya mengambil masa beberapa hari dan tidak banyak kod, tetapi sekarang saya tidak pernah melakukannya secara manual lagi. Atas urusan operasi dan penyelenggaraan.
Proses asas ialah: penyerahan pembangunan kod-->Pakej kemas kini tambahan eksport SVN-->muat naik ke pelayan-->laksanakan pada pelayan
Jika anda menukar halaman HTML, anda perlu membungkusnya semula Bagaimana jika anda memasukkan fail yang salah? Yang statik boleh diterbitkan secara berasingan, jadi jika saya hanya menukar JAVA, saya perlu membungkusnya semula dan layak?
Tiada bekas yang benar-benar menerbitkan dan menyediakan aplikasi dalam pakej perang Semuanya dinyahmampatkan ke lokasi sementara Pakej perang adalah dalam format mampat Anda mesti membenarkan mana-mana bekas membaca sumber dalam fail dimampatkan. Akan ada isu prestasi (sekurang-kurangnya untuk JSP).
Ini adalah penyelesaian peribadi saya untuk beberapa projek kecil Untuk projek besar, anda mungkin memerlukan rantai alat proses penuh, iaitu penyepaduan berterusan atau sesuatu.