问题标签 [erlang]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
3944 浏览

erlang - 从网络分区进行在线记忆恢复

是否可以在不重新启动任何相关节点的情况下从 mnesia 集群中的网络分区中恢复?如果是这样,如何去做呢?

我特别想知道:

  • 如何使用标准 OTP mnesia (v4.4.7) 完成此操作
  • 如果有人需要编写什么自定义代码来实现这一点(例如订阅 mnesia running_paritioned_network 事件,确定一个新的主节点,将非主节点的记录合并到主节点,从新主节点强制加载表,清除正在运行的分区网络事件 -示例代码将不胜感激)。
  • 或者,mnesia 绝对不支持在线恢复,并且需要重新启动属于非主分区的节点。

虽然我很欣赏一般分布式系统理论的指针,但在这个问题上,我只对 erlang/OTP mnesia 感兴趣。

0 投票
5 回答
3874 浏览

erlang - Erlang 和其他语言的多核编程有什么区别?

我阅读了 Joe Armstrong 的“Programming Erlang”,以及“n 核机器中的 n 倍速度”理论。在 Erlang 中进行多核编程的有效方法是使用大量进程(线程)。

我是一名 C++ 程序员,所以我很好奇在 C++ 中创建大量线程和在 Erlang 中创建大量进程之间的区别。我知道在 C/C++ 中处理线程并不容易。我也知道锁定/解锁会使系统变慢。但这也不是不可能的,对吧?

那么.. 为什么 Erlang 是一种多核友好的语言?仅仅是因为它易于编程吗?

我正在为 MMORPG 制作在线游戏服务器,这就是我对 Erlang 作为替代服务器语言感兴趣的原因。

(我已经读过这个问题,但我认为这不是我要找的问题。)

0 投票
14 回答
1935 浏览

java - 如何确保 N 个线程以大致相同的速度运行?

我正在考虑编写一个物理模拟软件,其中每个物理元素都将在其自己的线程中进行模拟。

这种方法有几个优点。它在概念上将非常接近现实世界的运作方式。将系统扩展到多台机器会容易得多。

但是,要使其正常工作,我需要确保所有线程都以相同的速度运行,并对“相同”进行相当自由的解释。说在彼此的 1% 以内。

这就是为什么我不一定需要类似 Thread.join() 的解决方案。我不想要一些超级控制的学校情妇来确保所有线程定期相互同步。我只需要能够要求运行时(无论它是什么——可能是 Java、Erlang 或最适合这个问题的任何东西)以或多或少相等的速度运行线程。

任何建议将不胜感激。

更新 2009-03-16

我要感谢所有回答这个问题的人,特别是那些回答基本上是“不要这样做”的人。由于大家的评论,我现在更好地理解了我的问题,我不太确定我应该按照最初的计划继续。尽管如此,我觉得彼得的回答是对问题本身的最佳回答,这就是我接受它的原因。

0 投票
3 回答
1264 浏览

apache-flex - Flash:带有参考表的 AMF3?

AMF3 规范定义了所谓的“参考表”的使用(参见本规范的第 2.2 节)。

我在我用 Erlang 开发的 AMF3 编码器/解码器中实现了这种行为,但是我对 Flash API 不是很有经验,我几乎找不到在将对象序列化为 AMF3 时如何轻松地强制 Flash 使用这些引用表;例如,如果我使用 ByteArray,它似乎只是重复完整的对象编码

(这显然是重复)。

但是,如果这两个字符串在一个单独的 writeObject 调用中,它似乎确实使用了引用:

Socket 的行为似乎相同。

那么,我可以在 Flash 代码中使用引用表吗?(假设我可能在 Flash 应用程序和服务器之间有一个非标准协议)

谢谢!

0 投票
1 回答
1834 浏览

erlang - mnesia delete_object 异常?

我看不出这里有什么问题,但我可能只是误解了语法。我正在尝试从我的“用户”mnesia 表中删除一个名字为“ryan”的“用户”记录(它们有多个)。这是我所做的:

这是我的记录定义:

这是我得到的例外:

这似乎是一个完美的匹配。什么可能导致这个问题?

0 投票
4 回答
536 浏览

syntax - 从程序员的角度来看,Erlang 是一种简洁的语言吗?

Erlang 会在简明性的范围内落在哪里,比如说,Java/.net 在不太简洁的一端,而 Ruby/Python 在更简洁的一端?我有一个 RSI 问题,因此出于健康原因,简洁对我来说尤其重要。

0 投票
3 回答
2802 浏览

erlang - 使用 Erlang,我应该如何在集群之间分配负载?

我正在查看从/池模块,它似乎与我想要的相似,但我的应用程序中似乎也存在单点故障(如果主节点出现故障)。

客户端有一个接受连接的网关列表(为了回退 - 都做同样的事情),客户端随机选择一个。当客户端连接时,检查所有节点以查看负载最小的节点,然后将负载最小的服务器的 IP 转发回客户端。然后客户端连接到这个服务器,一切都在那里执行。

总之,我希望所有节点都充当网关并实际处理客户端请求。负载平衡仅在客户端最初连接时完成 - 所有实际数据包并在客户端的“主”节点上处理。

我该怎么做?

0 投票
5 回答
802 浏览

apache-flex - Adobe Flex 到 erlang 的连接?

有没有人让 Adob​​e Flex 和 erlang 相互连接?许多人在各种博客上谈论这个,但我还没有看到一个可行的解决方案。

Flex 和 erlang 将形成真正的最佳组合。

谢谢。

院长

0 投票
6 回答
1380 浏览

c++ - 可以像在 erlang 中一样在 C 中制作并发可扩展的可靠程序吗?

一个理论问题。在阅读了 Armstrongs 的“programming erlang”一书后,我想知道以下几点:学习 Erlang 需要一些时间。更别说掌握它了。它在很多方面确实有根本的不同。

所以我的问题是:是否可以编写'like erlang'或使用一些'erlang like framework',考虑到你注意不要创建带有副作用的函数,你可以像在Erlang中一样创建可扩展的可靠应用程序?也许使用相同的消息发送,大量的“迷你流程”范式。

这样做的好处是不会将您积累的所有 C/C++ 知识抛在一边。

欢迎对此提出任何想法

0 投票
4 回答
3996 浏览

erlang - 如何优雅地检查 Erlang 中的许多条件?

因此,当用户发送注册帐户的请求时,他们会发送用户名、密码、电子邮件和其他信息。注册功能必须验证他们的所有数据。一个例子是:

  • 验证未使用的电子邮件
  • 验证用户名未使用
  • 验证用户名是字母数字
  • 验证所有字段的长度都超过 X 个字符
  • 验证所有字段的长度小于 Y 个字符

现在我不想有一个 5 级深的 if 或 case 语句,但我还有什么其他选择?将其拆分为单独的函数听起来是个好主意,但是我只需要在某种条件下检查函数的返回值,它就会回到最初的问题。

我可以将它们分成函数,然后调用一个带有所有条件 OR 的 if 语句,但这不会给我想要的东西,因为如果有一个错误,我需要能够告诉用户特定的错误。

在 erlang 中如何处理这种情况?是否有等效的 return 语句,或者它必须是函数中的最后一个可执行行才能成为返回值?