2010-05-03 149 views
14
  • 什麼是兵馬俑?
  • 它提供哪些服務?
  • 它解決了什麼問題?
  • 什麼其他產品可以解決類似於兵馬俑所解決的問題?
+1

我建議從http://en.wikipedia.org/wiki/Terracotta_Cluster開始,然後回來一個更具體的問題。 – skaffman 2010-05-03 21:01:49

+1

Wikipedia聲稱「Terracotta的JVM級集羣可以將單節點,多線程應用程序轉變爲分佈式多節點應用程序,而且通常不會更改代碼。」這聽起來太好了,不真實,這可能是爲什麼維基百科還聲稱文章是「寫成廣告」的原因之一。 – 2010-05-03 21:07:51

+1

今天,Terracotta提供了更多(基於幾種產品),但JVM集羣自從一開始就是Terracotta的旗艦技術。它爲什麼聽起來太好?無論如何,該代碼是開源的,隨時檢查或嘗試。 – 2010-05-03 21:43:44

回答

8

查找有關兵馬俑一個偉大的文章,它是如何工作的,在相關的直接獵戶萊蒂齊,共同創始人和軟件工程師秦俑寫:

http://www.infoq.com/articles/open-terracotta-intro

它幫助我的網上直播做準備關於兵馬俑以及如何將它用於羣集和縮放grails應用程序,並給了我一個關於兵馬俑的好概述。

2

哪些其他產品可以解決類似於兵馬俑所解決的問題?

嘗試Hazelcast,這是超級簡單的使用。用於Java的對等,高度可擴展的完全開放源碼羣集技術。它僅僅是分佈式Map,Queue,MultiMap,ExecutorService。您可以將其Map用作分佈式緩存。

+0

你使用這個代碼生產嗎? – 2010-05-04 13:18:13

+0

請參閱首頁上列出的公司(http://www.hazelcast.com)。還請訪問「推薦」,看看是誰用它來做什麼。 – 2010-05-04 20:39:50

4

I like to think about Terracottas DSO in terms of advanced parallel architectures:兵馬俑將您的消息傳遞多計算機變成一個通常的統一內存多處理器。多計算機與多處理器不同之處在於處理器共享內存,因此更容易編程,因爲您只需以通常的多線程方式寫入內存。儘管如此,這意味着您需要使用鎖來明確同步對共享數據的訪問,但系統不需要顯式地通過消息傳遞數據編組並解決最大的並行編程問題(即緩存一致性)。當您拿取/釋放鎖時,多處理器會爲您編組數據。因此,它是可取的。但是,最初你有一堆計算機 - 一臺多計算機。

通過在對象字段/鎖定接入點的類中注入一些代碼可以實現這種魔力。爲了對應數據庫世界,Terracotta考慮在鎖原子(事務)下完成所有更新。同樣,多處理器可以擁有全局存儲,Terracotta允許將本地更新的數據備份到磁盤。