使用RabbitMQ C#和长生不老药

使用RabbitMQ C#和长生不老药,c#,rabbitmq,elixir,C#,Rabbitmq,Elixir,我以前从未使用过RabbitMQ,也不知道它是否适合我。所以我有一些问题 我有一个C#.NET应用程序,另一方面我有一个elixir应用程序 我想在他们之间交换数据,例如,“长生不老药”会从C#.NET应用程序中请求一份人员列表,然后返回 长生不老药的人的名单 我将如何接收elixir中的数据?长生不老药里没有任何东西 如果我从C#NET发送一个对象到elixir,我会从elixir中得到什么 长生不老药里没有任何东西 正因为没有像C#这样的面向对象(OO)语言意义上的对象,函数式语言仍然有用于

我以前从未使用过RabbitMQ,也不知道它是否适合我。所以我有一些问题

我有一个C#.NET应用程序,另一方面我有一个elixir应用程序

我想在他们之间交换数据,例如,“长生不老药”会从C#.NET应用程序中请求一份人员列表,然后返回 长生不老药的人的名单

我将如何接收elixir中的数据?长生不老药里没有任何东西

如果我从C#NET发送一个对象到elixir,我会从elixir中得到什么

长生不老药里没有任何东西

正因为没有像C#这样的面向对象(OO)语言意义上的对象,函数式语言仍然有用于数据集合的结构。就Elixir而言,三大要素是记录、结构和地图。您何时使用每个选项超出了本答案的范围

我将如何接收elixir中的数据

这完全取决于应用程序的语义以及在每个应用程序中实际使用数据的方式

例如,如果应用程序X需要向应用程序Y询问其信息的某个子集(可能是20-30岁之间的用户列表),则可以考虑在应用程序Y中设置某种Web可访问端点,该应用程序可以过滤该信息并返回JSON,然后哪个应用程序X可以使用并执行它需要的任何操作

您可能希望使用RabbitMQ或任何其他消息队列的原因的一个例子是,如果您希望在不同的机器上对事件进行某种处理,而不是对事件源的机器进行处理

如果我从C#NET发送一个对象到elixir,我会从elixir中得到什么

C#无法直接与长生不老药对话

长生不老药里没有任何东西

正因为没有像C#这样的面向对象(OO)语言意义上的对象,函数式语言仍然有用于数据集合的结构。就Elixir而言,三大要素是记录、结构和地图。您何时使用每个选项超出了本答案的范围

我将如何接收elixir中的数据

这完全取决于应用程序的语义以及在每个应用程序中实际使用数据的方式

例如,如果应用程序X需要向应用程序Y询问其信息的某个子集(可能是20-30岁之间的用户列表),则可以考虑在应用程序Y中设置某种Web可访问端点,该应用程序可以过滤该信息并返回JSON,然后哪个应用程序X可以使用并执行它需要的任何操作

您可能希望使用RabbitMQ或任何其他消息队列的原因的一个例子是,如果您希望在不同的机器上对事件进行某种处理,而不是对事件源的机器进行处理

如果我从C#NET发送一个对象到elixir,我会从elixir中得到什么


C#无法直接与Elixir对话。

除了Justin的答案,您可能还需要研究Elixir与其他语言之间的另一种互操作选项。有一个针对C#的ETF实现,但我不知道库的质量


除了Justin的建议之外,您还需要考虑的不是发送“对象”,而是在对象实例中发送数据。不要发送
Person
然后尝试从长生不老药端挑出数据,而是在离散调用中从Person发送数据片段——例如。g
Person.FirstName、Person.LastName
等。您可以从特定实例传递数据,而无需传递整个对象。ETF将有助于C#和Elixir之间的数据通信。即使将数据填充到RabbitMQ队列中,也可以将其作为离散数据块而不是“对象”放置在队列中

除了Justin的答案之外,您可能还想研究Elixir和其他语言之间的互操作的另一种选择。有一个针对C#的ETF实现,但我不知道库的质量


除了Justin的建议之外,您还需要考虑的不是发送“对象”,而是在对象实例中发送数据。不要发送
Person
然后尝试从长生不老药端挑出数据,而是在离散调用中从Person发送数据片段——例如。g
Person.FirstName、Person.LastName
等。您可以从特定实例传递数据,而无需传递整个对象。ETF将有助于C#和Elixir之间的数据通信。即使将数据填充到RabbitMQ队列中,也可以将其作为离散数据块而不是“对象”放置在队列中

在C端创建一个web服务,并使Elixir从该服务请求数据。它可以以JSON、XML、YML或任何流行的数据交换格式发送。我不熟悉长生不老药,但确实有一种处理数据的方法。当你问一些特定的技术时,你的问题中还有很多未定义的东西。添加一些细节,你可能会得到更好的答案。在C#端创建一个web服务,让Elixir从该服务请求数据。它可以以JSON、XML、YML或任何流行的数据交换格式发送。我不熟悉长生不老药,但确实有一种处理数据的方法。当你问一些特定的技术时,你的问题中还有很多未定义的东西。添加一些细节,你可能会得到更好的答案。