Java分佈式

資源鏈接:


Java分佈式架構的演變及解決方案
http://www.cnblogs.com/malcome/articles/5909632.html

分佈式
1、單機裸跑:
LAMP = [Linux + Apache + MySQL + PHP]
2、分開部署:
應用程序、數據庫、文件 分別部署在獨立的服務器上
3、數據緩存:
二八定律(80%的業務訪問集中在20%的數據上),從而引入緩存
緩存:本地緩存(速度快、爭用應用程序內存)
     遠程緩存(速度慢、獨立服務)
4、應用服務器集羣:
多臺服務器通過負載均衡同時向外提供服務,解決單服務器處理能力和存儲空間上限問題
5、數據庫讀寫分離:
6、反向代理和CDN加速(基於緩存)
7、使用NoSQL和搜索引擎
8、業務插分
按照業務進行插分改造,應用服務器按照業務區分進行分別部署
9、分佈式服務

Java分佈式應用技術基礎:
1、消息隊列框架
2、服務框架架構
3、服務總線架構


Dubbo
分佈式服務框架,致力於提供高性能和透明化的RPC遠程服務調用方案,以及SOA服務治理方案。簡單的說,dubbo就是個服務框架,如果沒有分佈式的需求,其實是不需要用的,只有在分佈式的時候,纔有dubbo這樣的分佈式服務框架的需求,並且本質上是個服務調用的東東,說白了就是個遠程服務調用的分佈式框架(告別Web Service模式中的WSdl,以服務者與消費者的方式在dubbo上註冊)

核心部分:
1、遠程通訊:
提供對多種基於長連接的NIO框架抽象封裝,包括多種線程模型、序列化、以及“請求-響應”模式的信息交換方式。
2、集羣容錯:
提供基於接口方法的透明遠程過程調用,包括多協議支持,以及軟負載均衡,失敗容錯,地址路由,動態配置等集羣支持
3、自動發現:
基於註冊中心目錄服務,使服務消費方能動態查找服務提供方,使地址透明,使服務提供方可以平滑或減少機器。
安全機制:
Dubbo通過Token令牌防止用戶繞過註冊中心直連,然後在註冊中心上管理授權。Dubbo還提供服務黑白名單,來控制服務所允許的調用方。 
引入方式:
Dubbo採用全Spring配置方式,透明化接入應用,對應用沒有任何API侵入,只需要用Spring加載Dubbo的配置即可,Dubbo基於Spring的Schema擴展進行加載



HSF  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
非開源
需要JBoss容器

Zookeeper
https://www.ibm.com/developerworks/cn/opensource/os-cn-zookeeper/




5個強大的Java分佈式緩存框架
http://developer.51cto.com/art/201411/457423.htm


1、Ehcache – Java分佈式緩存框架
Ehcache是一個Java實現的開源分佈式緩存框架,EhCache 可以有效地減輕數據庫的負載,可以讓數據保存在不同服務器的內存中,在需要數據的時候可以快速存取。同時EhCache 擴展非常簡單,官方提供的Cache配置方式有好幾種。你可以通過聲明配置、在xml中配置、在程序裏配置或者調用構造方法時傳入不同的參數。


官方網站:http://ehcache.org/
使用教程:http://www.codeceo.com/article/java-ehcache.html



2、Cacheonix – 高性能Java分佈式緩存系統
Cacheonix同樣也是一個基於Java的分佈式集羣緩存系統,它同樣可以幫助你實現分佈式緩存的部署。


官方網站:http://www.cacheonix.com/
使用教程:http://www.codeceo.com/article/java-cacheonix.html

3、ASimpleCache – 輕量級Android緩存框架
ASimpleCache是一款基於Android的輕量級緩存框架,它只有一個Java文件,ASimpleCache基本可以緩存常用的Android對象,包括普通字符串、JSON對象、經過序列化的Java對象、字節數組等。


官方網站:https://github.com/yangfuhai/ASimpleCache
使用教程:http://www.codeceo.com/article/asimplecache-android-cache.html

4、JBoss Cache – 基於事物的Java緩存框架
JBoss Cache是一款基於Java的事務處理緩存系統, 它的目標是構建一個以Java框架爲基礎的集羣解決方案,可以是服務器應用,也可以是Java SE應用。


官方網站:http://jbosscache.jboss.org/
使用教程:http://www.codeceo.com/article/jboss-cache-java.html

5、Voldemort – 基於鍵-值(key-value)的緩存框架
Voldemort是一款基於Java開發的分佈式鍵-值緩存系統,像JBoss Cache一樣,Voldemort同樣支持多臺服務器之間的緩存同步,以增強系統的可靠性和讀取性能。


官方網站:http://www.project-voldemort.com/voldemort/
使用教程:http://www.codeceo.com/article/voldemort-java-key-value-catch.html



WSDL : Web Services Description Language
NIO : Non-blocking IO
HSF 
Zookeeper 
Hadoop


負載均衡:
1、硬件負載均衡(F5 昂貴)
2、軟件負載均衡(LVS、Nginx)
CDN加速:


分佈式和集羣的區別:
一句話:分佈式是並聯工作,集羣是串聯工作
分佈式:一個業務拆分多個子業務,部署在不同的服務器
集羣:同一個業務,部署在多個服務器
集羣是個物理形態,分佈式是個工作方式











使用Node編寫一個分佈式服務調用框架
使用Node做一個靜態化網頁
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章