当前位置:  开发笔记 > 编程语言 > 正文

Erlang vs The Real/Outside世界,如何沟通?

如何解决《ErlangvsTheReal/Outside世界,如何沟通?》经验,为你挑选了1个好方法。

我正在学习二郎,我对mnesia db非常着迷.我想使用erlang作为后端在C#/ F#中构建一些真实世界的应用程序.

我正在寻找一个很好的解决方案来与外界的erlang节点进行通信.

到目前为止我发现了什么:

(A)OTP.net,一个实现"本地"erlang通信协议的开源.net库

问题在这里:

图书馆不是很成熟

我不喜欢从Java移植的对象模型(太多几乎完全相同的BCL类复制品)

我不喜欢用于连接的线程模型.

需要许多开放的TCP端口

缺乏安全感

(B)在erlang中使用端口/套接字并实现自定义协议.

问题在这里:

我没有任何经验

未来版本难以维护/扩展

你对这个话题有什么建议和经验吗?

我应该在OTP.net库上工作以满足我的需求还是尝试从头开始实施新协议?

那么JSON或REST解决方案呢?是否有任何erlang库可以解决这个问题?



1> Nadia Alraml..:

端口/套接字解决方案是一个好主意,并不像看起来那么难.谷歌的协议缓冲正是您所需要的.它非常易于使用,高效且易于维护.它有C#,erlang,java,python等实现(参见OtherLanguages和开发者指南)

您可以使用协议缓冲区来定义请求和响应协议结构.然后使用它在erlang和任何其他支持的语言之间进行通信.本教程将解释一切.之后,您需要做的就是通过端口发送响应.

这种方法的优点是:

    您可以在将来轻松扩展和更改协议

    它比REST方法更有效

    它目前被Google用于几乎所有内部​​RPC协议和文件格式


老实说,要正确地解耦所有东西,你应该使用RabbitMQ在混合中抛出一些AMQP.然后你不依赖于特定语言的任何东西.
推荐阅读
Life一切安好
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有