2020全新Java面試題——Spring Boot/Spring Cloud(二)
Jul 01, 2020 pm 04:22 PM一、jpa 和 hibernate 有什么區(qū)別?
(推薦學(xué)習(xí):java面試題)
JPA Java Persistence API,是Java EE 5的標(biāo)準(zhǔn)ORM接口,也是ejb3規(guī)范的一部分。
Hibernate,當(dāng)今很流行的ORM框架,是JPA的一個(gè)實(shí)現(xiàn),但是其功能是JPA的超集。
JPA和Hibernate之間的關(guān)系,可以簡(jiǎn)單的理解為JPA是標(biāo)準(zhǔn)接口,Hibernate是實(shí)現(xiàn)。那么Hibernate是如何實(shí)現(xiàn)與JPA的這種關(guān)系的呢。Hibernate主要是通過(guò)三個(gè)組件來(lái)實(shí)現(xiàn)的,及hibernate-annotation、hibernate-entitymanager和hibernate-core。
hibernate-annotation是Hibernate支持annotation方式配置的基礎(chǔ),它包括了標(biāo)準(zhǔn)的JPA annotation以及Hibernate自身特殊功能的annotation。
hibernate-core是Hibernate的核心實(shí)現(xiàn),提供了Hibernate所有的核心功能。
hibernate-entitymanager實(shí)現(xiàn)了標(biāo)準(zhǔn)的JPA,可以把它看成hibernate-core和JPA之間的適配器,它并不直接提供ORM的功能,而是對(duì)hibernate-core進(jìn)行封裝,使得Hibernate符合JPA的規(guī)范。
二、什么是 spring cloud?
從字面理解,Spring Cloud 就是致力于分布式系統(tǒng)、云服務(wù)的框架。
Spring Cloud 是整個(gè) Spring 家族中新的成員,是最近云服務(wù)火爆的必然產(chǎn)物。
Spring Cloud 為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具,例如:
配置管理
服務(wù)注冊(cè)與發(fā)現(xiàn)
斷路器
智能路由
服務(wù)間調(diào)用
負(fù)載均衡
微代理
控制總線(xiàn)
一次性令牌
全局鎖
領(lǐng)導(dǎo)選舉
分布式會(huì)話(huà)
集群狀態(tài)
分布式消息
……
使用 Spring Cloud 開(kāi)發(fā)人員可以開(kāi)箱即用的實(shí)現(xiàn)這些模式的服務(wù)和應(yīng)用程序。這些服務(wù)可以任何環(huán)境下運(yùn)行,包括分布式環(huán)境,也包括開(kāi)發(fā)人員自己的筆記本電腦以及各種托管平臺(tái)。
三、spring cloud 斷路器的作用是什么?
在Spring Cloud中使用了Hystrix 來(lái)實(shí)現(xiàn)斷路器的功能,斷路器可以防止一個(gè)應(yīng)用程序多次試圖執(zhí)行一個(gè)操作,即很可能失敗,允許它繼續(xù)而不等待故障恢復(fù)或者浪費(fèi) CPU 周期,而它確定該故障是持久的。
斷路器模式也使應(yīng)用程序能夠檢測(cè)故障是否已經(jīng)解決,如果問(wèn)題似乎已經(jīng)得到糾正,應(yīng)用程序可以嘗試調(diào)用操作。
斷路器增加了穩(wěn)定性和靈活性,以一個(gè)系統(tǒng),提供穩(wěn)定性,而系統(tǒng)從故障中恢復(fù),并盡量減少此故障的對(duì)性能的影響。它可以幫助快速地拒絕對(duì)一個(gè)操作,即很可能失敗,而不是等待操作超時(shí)(或者不返回)的請(qǐng)求,以保持系統(tǒng)的響應(yīng)時(shí)間。
如果斷路器提高每次改變狀態(tài)的時(shí)間的事件,該信息可以被用來(lái)監(jiān)測(cè)由斷路器保護(hù)系統(tǒng)的部件的健康狀況,或以提醒管理員當(dāng)斷路器跳閘,以在打開(kāi)狀態(tài)。
四、spring cloud 的核心組件有哪些?
1、服務(wù)發(fā)現(xiàn)——Netflix Eureka
一個(gè)RESTful服務(wù),用來(lái)定位運(yùn)行在AWS地區(qū)(Region)中的中間層服務(wù)。由兩個(gè)組件組成:Eureka服務(wù)器和Eureka客戶(hù)端。Eureka服務(wù)器用作服務(wù)注冊(cè)服務(wù)器。
Eureka客戶(hù)端是一個(gè)java客戶(hù)端,用來(lái)簡(jiǎn)化與服務(wù)器的交互、作為輪詢(xún)負(fù)載均衡器,并提供服務(wù)的故障切換支持。Netflix在其生產(chǎn)環(huán)境中使用的是另外的客戶(hù)端,它提供基于流量、資源利用率以及出錯(cuò)狀態(tài)的加權(quán)負(fù)載均衡。
2、客服端負(fù)載均衡——Netflix Ribbon
Ribbon,主要提供客戶(hù)側(cè)的軟件負(fù)載均衡算法。Ribbon客戶(hù)端組件提供一系列完善的配置選項(xiàng),比如連接超時(shí)、重試、重試算法等。Ribbon內(nèi)置可插拔、可定制的負(fù)載均衡組件。
3、斷路器——Netflix Hystrix
斷路器可以防止一個(gè)應(yīng)用程序多次試圖執(zhí)行一個(gè)操作,即很可能失敗,允許它繼續(xù)而不等待故障恢復(fù)或者浪費(fèi) CPU 周期,而它確定該故障是持久的。斷路器模式也使應(yīng)用程序能夠檢測(cè)故障是否已經(jīng)解決。如果問(wèn)題似乎已經(jīng)得到糾正,應(yīng)用程序可以嘗試調(diào)用操作。
4、服務(wù)網(wǎng)關(guān)——Netflix Zuul
類(lèi)似nginx,反向代理的功能,不過(guò)netflix自己增加了一些配合其他組件的特性。
5、分布式配置——Spring Cloud Config
這個(gè)還是靜態(tài)的,得配合Spring Cloud Bus實(shí)現(xiàn)動(dòng)態(tài)的配置更新。
Atas ialah kandungan terperinci 2020全新Java面試題——Spring Boot/Spring Cloud(二). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Untuk mengendalikan transaksi JDBC dengan betul, anda mesti terlebih dahulu mematikan mod komit automatik, kemudian melakukan pelbagai operasi, dan akhirnya melakukan atau mengembalikan semula hasilnya; 1. Panggil Conn.SetAutOcommit (palsu) untuk memulakan transaksi; 2. Melaksanakan pelbagai operasi SQL, seperti memasukkan dan mengemaskini; 3. Panggil Conn.Commit () jika semua operasi berjaya, dan hubungi conn.rollback () jika pengecualian berlaku untuk memastikan konsistensi data; Pada masa yang sama, cuba-dengan-sumber harus digunakan untuk menguruskan sumber, mengendalikan pengecualian dengan betul dan menutup sambungan untuk mengelakkan kebocoran sambungan; Di samping itu, adalah disyorkan untuk menggunakan kolam sambungan dan menetapkan mata simpan untuk mencapai rollback separa, dan menyimpan urus niaga sesingkat mungkin untuk meningkatkan prestasi.

Gunakan kelas dalam pakej Java.Time untuk menggantikan kelas lama dan kelas kalendar; 2. Dapatkan tarikh dan masa semasa melalui LocalDate, LocalDateTime dan Tempatan Tempatan; 3. Buat tarikh dan masa tertentu menggunakan kaedah (); 4. Gunakan kaedah tambah/tolak untuk meningkatkan dan mengurangkan masa; 5. Gunakan zoneddatetime dan zonid untuk memproses zon waktu; 6. Format dan parse date string melalui DateTimeFormatter; 7. Gunakan segera untuk bersesuaian dengan jenis tarikh lama apabila perlu; pemprosesan tarikh di java moden harus memberi keutamaan untuk menggunakan java.timeapi, yang memberikan jelas, tidak berubah dan linear

Pra-formancetartuptimemoryusage, quarkusandmicronautleadduetocompile-timeprocessingandgraalvsupport, withquarkusoftenperforminglightbetterine serverless scenarios.tyvelopecosyste,

Koleksi Sampah Java (GC) adalah mekanisme yang secara automatik menguruskan ingatan, yang mengurangkan risiko kebocoran ingatan dengan menuntut semula objek yang tidak dapat dicapai. 1.GC menghakimi kebolehcapaian objek dari objek akar (seperti pembolehubah stack, benang aktif, medan statik, dan lain -lain), dan objek yang tidak dapat dicapai ditandakan sebagai sampah. 2. Berdasarkan algoritma penandaan tanda, tandakan semua objek yang dapat dicapai dan objek yang tidak ditandai. 3. Mengamalkan strategi pengumpulan generasi: Generasi Baru (Eden, S0, S1) sering melaksanakan MinorGC; Orang tua melakukan kurang tetapi mengambil masa lebih lama untuk melakukan MajorGC; Metaspace Stores Metadata kelas. 4. JVM menyediakan pelbagai peranti GC: SerialGC sesuai untuk aplikasi kecil; ParallelGC meningkatkan throughput; CMS mengurangkan

HTTP Log Middleware di GO boleh merakam kaedah permintaan, laluan, IP klien dan memakan masa. 1. Gunakan http.handlerfunc untuk membungkus pemproses, 2. Rekod waktu mula dan masa akhir sebelum dan selepas memanggil next.servehttp, 3. Dapatkan IP pelanggan sebenar melalui r.remoteaddr dan X-forward-for headers, 4. Gunakan log.printf untuk mengeluarkan log permintaan, 5. Kod sampel lengkap telah disahkan untuk dijalankan dan sesuai untuk memulakan projek kecil dan sederhana. Cadangan lanjutan termasuk menangkap kod status, menyokong log JSON dan meminta penjejakan ID.

Memilih jenis htmlinput yang betul dapat meningkatkan ketepatan data, meningkatkan pengalaman pengguna, dan meningkatkan kebolehgunaan. 1. Pilih jenis input yang sepadan mengikut jenis data, seperti teks, e -mel, tel, nombor dan tarikh, yang secara automatik boleh menyemak dan menyesuaikan diri dengan papan kekunci; 2. Gunakan HTML5 untuk menambah jenis baru seperti URL, Warna, Julat dan Carian, yang dapat memberikan kaedah interaksi yang lebih intuitif; 3. Gunakan pemegang tempat dan sifat -sifat yang diperlukan untuk meningkatkan kecekapan dan ketepatan pengisian bentuk, tetapi harus diperhatikan bahawa pemegang tempat tidak dapat menggantikan label.

GradleisthebetterChoiceFormostNewProjectSduetoitSsuperiorflexibility, Prestasi, danModernToolingSupport.1.Gradle'sGroovy/KOT lindslismoreconciseandexpressivethanmaven'sverbosexml.2.GradleOutPerformsMaveninBuildSpeedWithIncrementalcompilation, BuildCac

Defer digunakan untuk melaksanakan operasi tertentu sebelum fungsi pulangan, seperti sumber pembersihan; Parameter dinilai dengan serta-merta apabila menangguhkan, dan fungsi-fungsi dilaksanakan mengikut urutan terakhir (LIFO); 1. Pelbagai penahanan dilaksanakan dalam urutan terbalik pengisytiharan; 2. Biasanya digunakan untuk pembersihan yang selamat seperti penutupan fail; 3. Nilai pulangan yang dinamakan boleh diubah suai; 4. Ia akan dilaksanakan walaupun panik berlaku, sesuai untuk pemulihan; 5. Elakkan penyalahgunaan menangguhkan gelung untuk mengelakkan kebocoran sumber; Penggunaan yang betul boleh meningkatkan keselamatan kod dan kebolehbacaan.
