不知道爲何,我對鏈接池技術一直情有獨鍾,當年接觸到的第一個鏈接池是c3p0,也正是從那是開始,我纔有所謂「性能」、「效率」這些概念。「池」,是經典的以空間換時間的方式,提高程序效率的概念。「池」的應用很是普遍,不光有數據庫鏈接池,還有線程池,緩存池等等。這項技術發展到如今已經很是穩定,普通公司的項目只要使用鏈接池,通常就沒什麼問題。隨着時代的發展,鏈接池的功能也在不斷擴充,阿里的Druid就提供了sql監控的功能。因此如今看鏈接池是相關內容,就不能僅是爲了實現功能(原本功能就很少),而是要深刻的理解原理,並可以本身動手實踐,開發出高效穩定的服務組件。
- 持久層的中間件
- ottor
- yugong
- Cobar
- Sharding - JDBC
- myCat
Java持久層中間件一般分爲兩類,一類是分庫分表,一類是數據遷移。前者是在融合了JDBC和數據庫鏈接池的基礎上,實現的面向數據庫的高級功能。當系統的數據量上升到必定級別以後,分庫分表是必然的選擇,使用中間件,就能夠和應用分離,作到靈活的控制。然後者則是對Java I/O、併發技術的高級應用。一道經典的面試題是給你一個上GB的文件,問你如何快速的找到其中出現頻率最高的一組詞彙,或者問你如何快速的統計出一份報表。等你深刻掌握了第二類框架的運行原理以後,這些都不是問題。
- ORM框架
- hibernate
- myBatis
- Jfinal
- nutz
SSH(Spring + Struts2 + Hibernate3)最火的時候,我剛剛工做,後來有人說hibernate不行了,你們都在用myBatis,因而緊跟着又有了SSM(myBatis)。再後來,「雲」、「微服務」成爲當前最煊赫一時的概念,傳統的ORM框架也漸漸沒有了往日的熱度,你們都轉頭去搞本身的輕量級的ORM和MVC框架,國內比較著名的有Jfinal和nutz。ORM,實體映射成了老舊的代名詞.......可是,我不這麼認爲。如今打開
hibernate的官網,發現它保持的生命力,就在6月底,還發布了其最新的5.2.1版本。一個框架的成功都是有緣由的,其中確定有很是多值得學習的地方。只有你足夠了解它的時候,你才能準確的判斷,本身究竟需不須要它。
- Spring
- Spring JDBC
- Spring JPA
- Spring DATA
其實看上文也知道,各類框架變來變去,可是Spring的核心統治地方,一直屹立不倒。能作到這點是一件很是了不得的事情,這和Spring一直堅持高效,堅持給程序員各式各樣的「糖果」有關係。漸漸的,在應用端,Spring已經有了一統天下的姿式。上面僅列舉了Spring在Java持久層的工做,除此以外,還有不少內容,就不在這裏一一列舉了。
- 緩存
- Ehcache
- memcached
- J2Cache
緩存和非關係型數據庫很像,都是提供數據的冗餘保存,從而提高性能,並且均可以分佈式的部署,達到高可用。二者有區別的地方,可能就在對數據結構和存儲方式的差別。