紅帽的 PaaS 平臺 OpenShift 支持 Java EE 6
紅帽公司剛對其旗下的 PaaS (Platform-as-a-Service) 平臺—— OpenShift 做了改進,增加對 Java EE 6 的支持。這使得 OpenShift 成為第一個支持 Jaav EE 6 的 PaaS 解決方案平臺。該免費平臺使用了最近剛發布的 JBoss 應用服務器 7 版本,用于幫助開發者更簡單的在云端構建和發布 Java 的應用程序。
OpenShift 平臺支持很多編程語言、框架和數據庫,包括:Ruby, Python, Perl, PHP, Java EE, Spring, MySQL, SQLite, MongoDB, Membase and Memcache. OpenShift 目前尚未開源,但紅帽子稱將來會這么做。
MongoDB是一個介于關系數據庫和非關系數據庫之間的產品,是非關系數據庫當中功能最豐富,最像關系數據庫的。他支持的數據結構非常松散,是類似json的bjson格式,因此可以存儲比較復雜的數據類型。 Mongo最大的特點是他支持的查詢語言非常強大,其語法有點類似于面向對象的查詢語言,幾乎可以實現類似關系數據庫單表查詢的絕大部分功能,而且還支持對數據建立索引。
它的特點是高性能、易部署、易使用,存儲數據非常方便。主要功能特性有:
- 面向集合存儲,易存儲對象類型的數據。
- 模式自由。
- 支持動態查詢。
- 支持完全索引,包含內部對象。
- 支持查詢。
- 支持復制和故障恢復。
- 使用高效的二進制數據存儲,包括大型對象(如視頻等)。
- 自動處理碎片,以支持云計算層次的擴展性
- 支持RUBY,PYTHON,JAVA,C++,PHP等多種語言。
- 文件存儲格式為BSON(一種JSON的擴展)
- 可通過網絡訪問
所謂“面向集合”(Collenction-Orented),意思是數據被分組存儲在數據集中,被稱為一個集合(Collenction)。每個 集合在數據庫中都有一個唯一的標識名,并且可以包含無限數目的文檔。集合的概念類似關系型數據庫(RDBMS)里的表(table),不同的是它不需要定 義任何模式(schema)。
模式自由(schema-free),意味著對于存儲在mongodb數據庫中的文件,我們不需要知道它的任何結構定義。如果需要的話,你完全可以把不同結構的文件存儲在同一個數據庫里。
存儲在集合中的文檔,被存儲為鍵-值對的形式。鍵用于唯一標識一個文檔,為字符串類型,而值則可以是各中復雜的文件類型。我們稱這種存儲形式為BSON(Binary Serialized dOcument Format)。
MongoDB服務端可運行在Linux、Windows或OS X平臺,支持32位和64位應用,默認端口為27017。推薦運行在64位平臺,因為MongoDB
在32位模式運行時支持的最大文件尺寸為2GB。
MongoDB把數據存儲在文件中(默認路徑為:/data/db),為提高效率使用內存映射文件進行管理。
Membase 是 NoSQL 家族的一個新的重量級的成員。
Membase是開源項目,源代碼采用了Apache2.0的使用許可。該項目托管在GitHub.Source tarballs上,目前可以 下載beta版本的Linux二進制包。該產品主要是由North Scale的memcached核心團隊成員開發完成,其中還包括Zynga和NHN這兩個主要貢獻者的工程師,這兩個組織都是很大的在線游戲和社區網絡空間的供應商。
Membase容易安裝、操作,可以從單節點方便的擴展到集群,而且為memcached(有線協議的兼容性)實現了即插即用功能,在應用方面為開 發者和經營者提供了一個比較低的門檻。做為緩存解決方案,Memcached已經在不同類型的領域(特別是大容量的Web應用)有了廣泛的使用,其中 Memcached的部分基礎代碼被直接應用到了Membase服務器的前端。
通過兼容多種編程語言和框架,Membase具備了很好的復用性。在安裝和配置方面,Membase提供了有效的圖形化界面和編程接口,包括可配置 的告警信息。
Membase的目標是提供對外的線性擴展能力,包括為了增加集群容量,可以針對統一的節點進行復制。 另外,對存儲的數據進行再分配仍然是必要的。
這方面的一個有趣的特性是NoSQL解決方案所承諾的可預測的性能,類準確性的延遲和吞吐量。通過如下方式可以獲得上面提到的特性:
- 自動將在線數據遷移到低延遲的存儲介質的技術(內存,固態硬盤,磁盤)
- 可選的寫操作一一異步,同步(基于復制,持久化)
- 反向通道再平衡[未來考慮支持]
- 多線程低鎖爭用
- 盡可能使用異步處理
- 自動實現重復數據刪除
- 動態再平衡現有集群
- 通過把數據復制到多個集群單元和支持快速失敗轉移來提供系統的高可用性。
memcached是一套分布式的快取系統,當初是Danga Interactive為了LiveJournal所發展的,但目前被許多軟件(如MediaWiki)所使用。這是一套開放源代碼軟件,以BSD license授權釋出。
memcached缺乏認證以及安全管制,這代表應該將memcached服務器放置在防火墻后。
memcached的API使用三十二位元的循環冗余校驗(CRC-32)計算鍵值后,將資料分散在不同的機器上。當表格滿了以后,接下來新增的資料會以LRU機制替換掉。由于memcached通常只是當作快取系統使用,所以使用memcached的應用程式在寫回較慢的系統時(像是后端的數據庫)需要額外的程式碼更新memcached內的資料。
memcached具有多種語言的客戶端開發包,包括:Perl/PHP/JAVA/C/Python/Ruby/C#/MySQL/
客戶端包的下載地址是:http://www.danga.com/memcached/apis.bml