2016-11-06 55 views
0

我從未使用過RabbitMQ,並且不知道它是否適合我。所以我有一些問題。使用RabbitMQ C#和Elixir

我有一個C#.NET應用程序,另一方面我有一個elixir應用程序。

我想在它們之間交換數據,例如,elixir會要求C#.NET應用程序中的人員列表,並且它會返回 人員列表(列表)給elixir。

我會如何接收elixir中的數據?靈藥中沒有任何物品。

如果我將一個對象從C#.NET發送到elixir,我會在elixir中得到什麼?

+1

在C#端創建Web服務,使Elixir從服務請求數據。它可以用JSON,XML,YML或任何常用的數據交換格式發送。我不熟悉Elixir,但肯定有辦法處理數據。 – gretro

+0

當你問到一些特定的技術時,你的問題仍然存在很多問題。添加一些細節,你可能會得到更好的答案。 –

回答

1

靈藥中沒有任何對象。

僅僅因爲在像C#這樣的面向對象(OO)語言的意義上沒有對象,函數式語言仍然具有用於數據集合的構造。在Elixir的情況下,三大記錄,結構和地圖。當你使用每個超出這個答案的範圍。

我會如何接收elixir中的數據?

這完全取決於應用程序的語義以及您如何在每個應用程序中實際使用數據。例如,如果應用程序X需要嚮應用程序Y詢問其信息的某個子集(可能是20-30歲之間的用戶列表),則可以考慮設置某種可訪問的Web終端應用程序Y可以過濾這些信息並返回JSON,然後應用程序X可以使用它並執行需要的任何操作。

您可能想要使用RabbitMQ或任何其他消息隊列的原因的一個例子是,如果您想對事件源自的另一臺機器上的事件進行某種處理。

如果我將一個對象從C#.NET發送到elixir,我會在elixir中得到什麼?

C#不能直接對準Elixir。

0

除了Justin的回答,您可能還想研究Erlang Term Format這是Elixir與其他語言互操作的另一種選擇。 ETF有一個實現C#here但我不知道圖書館的質量。

除了賈斯汀的建議,你還想不要發送一個「對象」,而是發送對象實例中的數據。而不是發送Person,然後嘗試挑選Elixir方面的數據,發送離散呼叫中來自Person的數據 - e。 G。 Person.FirstName, Person.LastName等。您可以傳遞特定實例的數據,而不必傳遞整個對象。 ETF將幫助C#和Elixir之間的數據通信。即使您將數據填充到RabbitMQ隊列中,您也可以將它作爲離散數據片放在隊列中,而不是「對象」。