從一個IT菜鳥到一個互聯網老菜鳥,從一個國內電商巨頭到一個創業型公司。技術也由微軟陣營轉型到JAVA陣營。算不上最佳實踐,也是從中也有一些認識及感悟,希望各路兄弟一起探討學習。
以下對當下互聯網一些流行的技術及解決方案所需的框架做一個總結吧,主要都是一些JAVA及開源方面的技術框架組件。
這里廢話一段題外話,個人沒有任何的技術偏見,只是因為時下微軟陣營被邊緣化,至於為啥我覺得不是語言的問題,還是因為openSource社區或者技術版權免費問題吧(微軟最近當然也有很大的動作,還是很看好微軟的^_^)。
應用層相關:
表現層一般還是MVC框架 SpringMVC or Struts2 或許還有Struts 這里LZ 只稍稍改過一點Struts的東西,光配置文件跟SpringMVC 比還是好麻煩的說。
應用層一般還是Mybatis(IBatis)+Spring。
持久層這里會說到關系型及非關系型,關系型;關系型一般還是以MySQL為主導,LZ也用過SQL SERVER,有錢的公司還會用Oracle,當然三者越往后價格越高費心越少。
非關系型:大數據大字段考慮使用MongoDB,Redis等;
緩存:除了富客戶端的本地緩存,當然不得不說還有各種開源緩存中間件,Redis,Memcached還有淘寶的Tair。
異步:說到異步解決方案,肯定會想到異步任務的調度,常規的有Quartz 還有就是taobao Schedule ,Quartz的有點方便快捷但是對分布式支持的不是很好,LZ曾經設法通過官網上的方式及網友們的推薦方案去改寫,但是最終發現需要生產的DB腳本里的Tables有很多外鍵,這種表維護也很麻煩,上線DBA肯定也不建議,這里如果介意單點想用分布式調度的話還是考慮配合用緩存或者用taobao Schedule 比較好,后續LZ也會分享下分布式的Solution。
這里還有一個進階技術解決方案:狀態機。也就是工作流的簡化版本,這個一般可以自行設計,后續LZ考慮分享出當時的一個簡單粗暴的方案。
消息中間件:一個不得不說的神器,就是Active MQ 最成熟最流行廣泛,還有就是淘寶的Rocket MQ(Meta Q前身),這個也很不錯,只是相關文檔少了點,Kafka ,RabbitMQ 這些LZ也只是耳聞,具體沒用過。
RPC:時下最出名最牛的也算是Dubbo了,當然個人感覺一般中小型沒必要哈,Dubbo 的文檔也是最最給力的;還有內部服務器之間的調用可以是Hession ,Restful或者SOAP,因為數據交換的格式不一樣,Hession也是效率高的,Restful是最實用最方便的,SOAP相比前兩者趨於繁瑣累贅。
項目管理:當然不得不說下互聯網項目管理,互聯網的項目就一個字:快! 是的,你不快競爭對手快,文檔都是扯淡的,兄弟們有沒有同感 ~~~,所以怎么樣又快又好,Scrum 敏捷開發也是互聯網里最流行的,在這LZ推薦一個性價比高趣味性高的方案:看板管理,這個也是LZ比較看好的一種。
以上粗略的說了一些泛泛而談的東西框架,希望后續LZ能夠堅持對每一個能夠衍生分享出來。