Pendahulu perancah layanan mikro lamp-cloud adalah zuihou-admin-cloud. Mulai dari 3.0.0, namanya diubah menjadi lamp-cloud.
Perancah layanan mikro lamp-cloud adalah perancah layanan mikro SaaS berdasarkan SpringCloud (Hoxton.SR10) + SpringBoot (2.3.10.RELEASE). Ia memiliki sistem manajemen latar belakang otorisasi dan otentikasi terpadu, yang mencakup manajemen pengguna, manajemen izin sumber daya, gateway Beberapa modul seperti API, transaksi terdistribusi, dan resume fragmentasi breakpoint file besar mendukung pengembangan paralel sistem multi-bisnis dan dapat digunakan sebagai perancah pengembangan untuk layanan back-end. Kodenya ringkas dan strukturnya jelas, cocok untuk dipelajari dan digunakan langsung dalam proyek. Teknologi inti menggunakan kerangka kerja utama dan middleware seperti Nacos, Fegin, Riadfdson, Zuul, Hystrix, JWT Token, Mybatis, SpringBoot, Redis, dan RiadfdsitMQ.
fungsi perancah layanan mikro lamp-cloud
1. Pendaftaran & penemuan layanan dan pemanggilan
Pendaftaran dan penemuan layanan berdasarkan Nacos, menggunakan Feign untuk mengimplementasikan intermodulasi layanan, dapat mencapai pengalaman pengkodean yang sama seperti memanggil metode lokal saat menggunakan permintaan HTTP untuk panggilan jarak jauh, dan terlebih lagi tidak menganggap bahwa ini adalah permintaan HTTP.
2. Otentikasi layanan:
Gunakan JWT untuk memperkuat verifikasi izin penjadwalan antar layanan dan memastikan keamanan layanan internal.
3. Penyeimbangan beban
Sisanya yang disimpan oleh layanan digunakan untuk kontrol proxy dan gateway. Selain node.js dan nginx yang umum digunakan, zuul dan riadfdson seri Spring Cloud dapat membantu kami melakukan kontrol gateway normal dan penyeimbangan beban. Diantaranya, perluasan dan referensi dari proyek luar negeri didasarkan pada plug-in pembatas arus JWT Zuul, yang membatasi arus.
4. Mekanisme sekering
Karena distribusi layanannya, untuk menghindari “longsoran” panggilan antar layanan, Hystrix digunakan sebagai sekring untuk menghindari “longsoran” panggilan antar layanan.
5. Pemantauan
Gunakan Spring Boot Admin untuk memantau status pengoperasian setiap Layanan independen, gunakan turbin untuk melihat status pengoperasian dan frekuensi panggilan antarmuka secara real-time; gunakan Zipkin untuk melihat rantai panggilan antara setiap layanan, dll.
6. Tautan pemantauan panggilan
Gunakan Zipkin untuk mewujudkan pemantauan kinerja tautan penuh layanan mikro, menampilkan berbagai indikator dari dimensi keseluruhan hingga dimensi lokal, dan menampilkan semua informasi kinerja rantai panggilan secara terpusat di seluruh aplikasi, yang dapat dengan mudah mengukur kinerja keseluruhan dan lokal, serta dengan mudah menemukan sumbernya kesalahan. , yang dapat sangat mempersingkat waktu pemecahan masalah dalam produksi. Dengan itu kita bisa melakukannya
Meminta pelacakan tautan dan lokasi kesalahan cepat: Informasi kesalahan dapat ditemukan dengan cepat melalui rantai panggilan yang dikombinasikan dengan log bisnis. Visualisasi: Setiap tahap membutuhkan waktu dan analisis kinerja dilakukan. Pengoptimalan ketergantungan: ketersediaan setiap tautan panggilan, memilah ketergantungan layanan, dan pengoptimalan. Analisis data, pengoptimalan tautan: jalur perilaku pengguna dapat diperoleh, dan analisis ringkasan diterapkan dalam banyak skenario bisnis.
7. Izin data
Menerapkan izin data sederhana menggunakan interseptor DataScopeInterceptor berdasarkan Mybatis
8. Solusi non-intrusif SaaS (multi-penyewa).
Gunakan pencegat Mybatis untuk mencegat semua SQL dan memodifikasi Skema default untuk mencapai isolasi data multi-penyewa. Dan mendukung kemampuan pluggabilitas.
9. Tembolok tingkat kedua
J2Cache digunakan untuk mengoperasikan cache. Cache tingkat pertama menggunakan memori (Kafein) dan cache tingkat kedua menggunakan Redis. Karena banyaknya pembacaan cache akan menyebabkan jaringan L2 menjadi penghambat seluruh sistem, tujuan L1 adalah mengurangi jumlah pembacaan ke L2. Kerangka kerja caching ini terutama digunakan di lingkungan cluster. Ini juga dapat digunakan pada satu mesin untuk menghindari dampak pada bisnis back-end setelah cache cold start yang disebabkan oleh restart aplikasi.
10. Konversi Kacang Elegan
Gunakan komponen Dozer untuk mengoptimalkan dan mengonversi DTO, DO, PO, dan objek lainnya
11. Verifikasi formulir terpadu di bagian depan dan belakang
Verifikasi formulir yang ketat biasanya memerlukan verifikasi front-end + back-end secara bersamaan. Namun, dalam proyek tradisional, front-end dan front-end hanya dapat diuji masing-masing satu kali. Jika aturannya diubah nanti, front-end dan back-end harus dimodifikasi secara bersamaan. Oleh karena itu, ketergantungan awal zuihou-validator-starter dienkapsulasi berdasarkan hibernate-validator, menyediakan antarmuka umum untuk mendapatkan aturan yang perlu diverifikasi. Kemudian front-end menggunakan aturan yang dikembalikan oleh back-end. Jika aturan berubah di masa depan, hanya back-end yang diperlukan.
12. Mencegah serangan skrip lintas situs (XSS)
Gunakan filter untuk memfilter parameter formulir di semua permintaan
Filter semua parameter tipe aplikasi/json melalui deserializer Json
13. Saat ini login informasi pengguna injector
Injeksi identitas pengguna melalui anotasi
14. API Daring
Karena beberapa fungsi swagger-ui asli tidak cukup ramah, kami mengadopsi swagger-bootstrap-ui sumber terbuka domestik dan membuat stater untuk memfasilitasi pengguna springboot.
15. Pembuat kode
Seperangkat generator kode dikustomisasi berdasarkan Mybatis-plus-generator. Dengan mengonfigurasi anotasi bidang basis data, secara otomatis menghasilkan kelas enumerasi, anotasi kamus data, SaveDTO, UpdateDTO, anotasi aturan validasi formulir, anotasi Swagger, dll.
16. Penjadwal tugas terjadwal
Peningkatan fungsi berdasarkan pekerjaan xxl. (Misalnya: mengirimkan tugas pada waktu tertentu, menggabungkan proyek dengan pelaksana dan penjadwal, berbagai sumber data)
17. Pengunggahan file besar/breakpoint/resume terfragmentasi
Front-end menggunakan webupload.js dan back-end menggunakan NIO untuk mengimplementasikan pengunggahan file besar yang terfragmentasi breakpoint. Setelah memulai layanan Eureka, Zuul, dan File, Anda dapat langsung membuka docs/chunkUploadDemo/demo.html untuk pengujian. Setelah pengujian, memori maksimum tumpukan batas lokal adalah 128M untuk memulai layanan File, dan file besar 4,6G+ dapat berhasil diunggah dalam waktu 5 menit. Waktu layanan resmi akan dipengaruhi oleh bandwidth pengguna dan bandwidth server, dan itu akan terjadi lama banget.
18. Transaksi terdistribusi
Terintegrasi dengan middleware transaksi terdistribusi Alibaba: seata, solusi ini memecahkan masalah transaksi terdistribusi yang dihadapi dalam skenario layanan mikro dengan cara yang efisien dan tidak invasif.
19. Injektor otomatis data terkait lintas tabel, lintas database, dan lintas layanan
Ini digunakan untuk mengatasi masalah gema data terkait atribut lintas tabel, lintas database, data halaman lintas layanan, atau atribut dari satu objek. Ini mendukung injeksi otomatis atribut data statis (kamus data) dan kunci primer dinamis data.
20. Rilis skala abu-abu
Untuk memecahkan masalah seringnya pembaruan layanan online, rollback, iterasi cepat, dan pengembangan kolaboratif dalam perusahaan, proyek ini menggunakan strategi penyeimbangan beban riadfdson yang dimodifikasi untuk mencapai rilis skala abu-abu.
log pembaruan lamp-cloud
v3.5.5
refaktorisasi
lamp-cloud: Sesuaikan urutan eksekusi TraceFilter untuk memfasilitasi filter lain di gateway untuk mencatat informasi log
lamp-cloud: Optimalkan RouterMeta dan dukung kunci kustom front-end
lamp-cloud: Mengoptimalkan masalah perayapan antarmuka perayapan regional yang kacau
lamp-cloud: Mengoptimalkan antarmuka perayapan regional tidak dapat merayapi data untuk negara di bawah kota
lamp-cloud: Menambahkan metode addChildren ke entitas dasar struktur pohon
lamp-cloud: Optimalkan struktur agregasi angkuh untuk mengabaikan layanan soket web
memperbaiki
lamp-util: Ketika parameter header permintaan berisi bahasa Mandarin, panggilan berpura-pura asinkron melaporkan kesalahan
lamp-cloud: Memperbaiki bug dimana struktur pohon tidak dapat memperoleh struktur hierarki penyambungan yang benar.
lamp-web-plus: Memperbaiki bug yang disebabkan oleh ketinggian halaman pohon yang tetap
lamp-web-plus: Memecahkan masalah Dropdown komponen TableAction yang menyebabkan garis pemisah tidak ditampilkan dengan benar karena izin
lamp-web-plus: Memperbaiki masalah ketika data dari halaman daftar ditransfer ke halaman edit dan data diubah secara tidak sengaja.