在軟件開發(fā)行業(yè)撲騰了快三年了,多少積累或者了解了一些技術(shù),整理總結(jié)一下,與諸位共享,歡迎各位補(bǔ)充,評(píng)論!
數(shù)據(jù)層
數(shù)據(jù)層主要作用是存儲(chǔ)數(shù)據(jù),大概分為兩類,一類是關(guān)系型數(shù)據(jù)庫,一類是非關(guān)系型數(shù)據(jù)庫;
【關(guān)系型數(shù)據(jù)庫】mysql & oracle & sqlserver
mysql數(shù)據(jù)庫目前在互聯(lián)網(wǎng)行業(yè)中應(yīng)用最多,主要原因是免費(fèi),生態(tài)圈好,用的人多,資料多,遇見問題能夠在網(wǎng)上找到很多資料。
mysql的局限性在于存儲(chǔ)的數(shù)據(jù)量相對(duì)較?。ㄅcoracle相比),當(dāng)表中記錄到千萬級(jí)別時(shí),性能下降很快,不過在高手如林的IT行業(yè),很多牛人研發(fā)出了相應(yīng)問題的解決方案,如分表、分庫,同時(shí)有很多與之相關(guān)的高可用方案,如mycat、Haprox、MHA;
oracle數(shù)據(jù)庫,目前應(yīng)用也比較多,但由于收費(fèi)的原因,失去了很多用戶,當(dāng)然在數(shù)據(jù)量不大的情況下,也不會(huì)有人找你收費(fèi),當(dāng)向你收費(fèi)的時(shí)候,恭喜你,相信業(yè)務(wù)已經(jīng)達(dá)到一定規(guī)模了。
SqlServer數(shù)據(jù)庫,在互聯(lián)網(wǎng)行業(yè)應(yīng)用較少,一些傳統(tǒng)行業(yè)應(yīng)用較多,關(guān)于對(duì)SqlServer的了解 還是停留在大學(xué)的時(shí)候水平,不多介紹,不過在傳統(tǒng)行業(yè)如:數(shù)字礦山,地理信息系統(tǒng),CAD輔助制圖等還有一定應(yīng)用。
【非關(guān)系型數(shù)據(jù)庫(NoSQL數(shù)據(jù)庫)】memcache & redis & mongoDb & Hbase
非關(guān)系型數(shù)據(jù)庫的有點(diǎn)在于數(shù)據(jù)結(jié)構(gòu)靈活,使用方便。但功能相對(duì)于關(guān)系型數(shù)據(jù)庫較為簡(jiǎn)單,尤其在事務(wù)管理,一致性保證,鎖等方面。
memcache是一種高性能,分布式內(nèi)存對(duì)象緩存系統(tǒng)。優(yōu)點(diǎn)在于高性能以及分布式的實(shí)現(xiàn)及其方便,但在數(shù)據(jù)結(jié)構(gòu)上較為單一,并且不能持久化。關(guān)于memcache的使用 會(huì)在以后的文章中做詳細(xì)介紹。
redis 一種比較典型的NoSQL數(shù)據(jù)庫,具備豐富的數(shù)據(jù)類型與高效的存取速度,基于redis可以實(shí)現(xiàn)分布式消息隊(duì)列,分布式鎖等諸多功能。redis不僅可以做緩存,而且具備持久化功能,即便機(jī)器宕機(jī)后,數(shù)據(jù)也不會(huì)丟失。
mongoDb一種很高效的數(shù)據(jù)庫,一般用來存儲(chǔ)數(shù)據(jù)量較大的非結(jié)構(gòu)化數(shù)據(jù),如博客、文檔、網(wǎng)頁等。存取速度優(yōu)于mysql,但在事務(wù)性和鎖等方面特性較弱。目前很火的一種數(shù)據(jù)庫。
Hbase 一種大數(shù)據(jù)領(lǐng)域的數(shù)據(jù)庫,了解不多。歡迎各位補(bǔ)充其特性... ...
消息中間價(jià)
kafka & Active Messenger
消息中間件一般用于各個(gè)模塊、系統(tǒng)之間的異步通信,降低各個(gè)模塊之間的耦合性。詳細(xì)介紹后續(xù)總結(jié)... ...
分布式技術(shù)
LVS+Keepalive & nginx & zookeeper
LVS的全稱是linux virsual server,keepalive用于檢測(cè)各個(gè)機(jī)器是否存活。這種分布式比較簡(jiǎn)單,不需要太多的開發(fā)工作,局限性在于一般只能用于無狀態(tài)服務(wù)中。
nginx一種很常用的反向代理服務(wù)器,具有豐富的負(fù)載均衡策略,簡(jiǎn)單易用。
zookeeper 分布式服務(wù)的管理者,在hadoop、kafka、分布式框架中幾乎都有所應(yīng)用。
RPC框架
thrift & dubbo
分布式通信框架主要是使服務(wù)的遠(yuǎn)程調(diào)用跟調(diào)用本地化方法一樣簡(jiǎn)單。
thrift支持跨語言調(diào)用,定義了IDL語言,支持多種通信方式。使用方便,幾乎是所有RPC框架中通信效率最高的。
dubbo是阿里開發(fā)的一套分布式RPC框架,官方文檔不錯(cuò),建議大家閱讀,雖然目前阿里有拋棄的趨勢(shì),但仍有很多企業(yè)在用,學(xué)其精髓還是很值得的。
常用框架
spring & struts & hibernate & mybatis
spring 一個(gè)龐大的框架家族,幾乎無人不知;目前比較火的 springBoot springcloud
struts 一個(gè)完善的MVC框架,逐漸有被SpringMVC取代的意思
hibernate 一個(gè)完全面向?qū)ο蟮腛RM框架,個(gè)人認(rèn)為并不靈活
mybatis 一個(gè)半自動(dòng)化的ORM框架
高性能通信
NIO & netty
常用庫
guava & fastJson & druid
guava 谷歌的一個(gè)開源庫,功能相當(dāng)強(qiáng)大,包含基礎(chǔ)的字符串處理,常用容器集合的擴(kuò)展,緩存,多線程通信等,java開發(fā)的利器。
fastJson 阿里開源的JSON處理庫,功能豐富,易用。
druid 阿里開源的數(shù)據(jù)庫連接池,性能由于其他數(shù)據(jù)庫連接池
未完待續(xù)... ...
也歡迎各位補(bǔ)充,評(píng)論。
聯(lián)系客服