2014-01-16 51 views
2

我想在我的Java應用程序中使用Hazelcast,但我也有.net應用程序,它們需要從Hazelcast緩存中獲取/設置數據。我想用「休息」的方式。我有2個問題:如何使用Hazelcast與寧靜?

1)如何發佈並獲得複雜類型?如果我有Person對象與字段name(String),age(Integer),birthDate(Date)和sex(Enum),我應該如何發佈此信息以及如何解析人員信息?

2)我有一個緩存IMap<String, String>。我從海報張貼插件與關鍵數據「3」的「三」後,在Java端map.get("3")回報是這樣的:

RestValue{contentType='text/plain;charset=utf-8', value="three"}" 

我希望這個代碼僅返回「三國」無需任何轉換操作。

如果您提供有關此問題的信息,我會很高興。

在此先感謝...

回答

0

這聽起來像你有幾個不同類型的問題,在這裏與您的當前設置。

1)我沒有一個很好的答案,因爲我實際上對.net其餘的客戶端知之甚少。如果你改變你的架構,你也可以得到更好的結果,如下所述。

2)它看起來像你在這裏的問題是,你只是將原始請求對象(RestValue)存儲在IMap而不是存儲該對象的內容。通常,請求rest api包含的信息不僅僅是發送到服務器的值,因此您必須從您的rest api中的RestValue中提取值。 Hazelcast RestValue有一個名爲getValue()的方法,因此您應該只需致電getValue()即可返回byte[]。然後,您應該將byte[]轉換爲String(或者您喜歡存儲的任何數據類型,在這種情況下可能爲int),並將結果存儲在您的IMap中,而不是僅存儲整個RestValue對象。

就.net + java體系結構而言,最好以您喜歡的任何語言運行Hazelcast服務器節點,然後使用.net hazelcast-client節點和java hazelcast-client節點連接到同一個羣集。通過這種方式,您可以將所有.net代碼運行在.net客戶端上,完全與java基礎結構分離,並使用hazelcast在不同語言之間進行通信。