基於阿里雲的系統框架展望
1) CDN
用於緩存靜態文件等等。七牛和阿里的都還可以。
- 七牛要做的久一點,各種圖片處理的接口要完善一些
- 阿里的CDN要稍微好一點點,但是沒有不安全的訪問方式,訪問稍微沒有那么靈活。圖片處理功能弱一點。
2) 負載均衡
可以自己搭建也可以用阿里雲的負載均衡服務。自己搭建推薦Nginx。
3) 分布式調用框架
目前可選的有zookeeper+dubbo、zookeeper+Motan、zookeeper+dubbox、Edas。
- dubbo, 阿里的服務治理框架,已經不維護了,但很流行,大量的解決方案可以借鑒,推薦
- dubboX, 當當基於dubbo搞的,還在維護可以一用,推薦
- Motan,微博的服務治理框架,2016年5月開源,與同類型的Dubbo相比,Motan 在功能方面並沒有那么全面,也沒有實現特別多的擴展,但Motan是一個小而精的 RPC 框架,它的特點是簡單、易用,是一個輕量級 RPC框架。相對來說,用的人比較少。功能和穩定性有待觀望。對跨語言調用支持較差,主要支持java。
- Spring Cloud 完全基於 Spring Boot,是一個非常新的項目,2016年才 1.0 release。版本提升非常迅速,發展勢頭良好。但是很少見到國內業界有人在生產上成套使用,一般都是只有其中一兩個組件。很年輕的項目,可以關注,前景看好。
- Edas, 阿里雲服務,要收錢,侵入型很強,不推薦
4)MQ
可選的有:ActiveMQ, 阿里雲消息,RabbitMQ。
各有好處,但是考慮到運維的難度,推薦阿里雲消息。
5)Redis
用來做緩存,自建成本有點高,需要Codis, 分片,集群,主從等等,比較麻煩。可自建也可直接用阿里的。
6)數據庫
主要基於讀寫分離和主從復制考慮,目前可以自建和選用阿里的DRDS。
- 自建,不用中間件,直接1寫2只讀, 然后配置讀寫分離的數據源即可。如果並發量大進一步集群可以才用數據庫中間件,比如Mycat。
- 使用使用阿里的DRDS,是一個中間件服務,基於阿里的TDDL。DRDS實例需要與RDS配合使用,兩者都需要單獨購買
7)搜索
--自建采用solr或Elastic Search
Solr適合對已有數據進行搜索,Elastic Search適合實時搜索。Elastic Search通常和Logstash、Kibana組成ELK實時日志分析平台。
8)典型業務場景說明
把業務底層做成SOA模塊,通過分布式調用框架對外提供服務。
單獨做一個小的系統來運行定時任務
熱點數據放緩存,然后通過MQ來更新緩存
日志等數據有必要可以考慮上個MongoDB
--------------------------------------------------------------------
PS: 歡迎關注公眾號"Devin說",會不定期更新Java相關技術知識。
--------------------------------------------------------------------