Erlang:分布式应用程序奇怪的行为
我用分布式erlang应用程序付费 配置和想法取自:Erlang:分布式应用程序奇怪的行为,erlang,otp,Erlang,Otp,我用分布式erlang应用程序付费 配置和想法取自: http://www.erlang.org/doc/pdf/otp-system-documentation.pdf9.9。分布式应用程序 我们有3个节点:n1@a2-X201,n2@a2-X201,n3@a2-X201 我们的应用程序wd可以做一些有用的工作:) 配置文件: wd1.config-对于第一个节点: [{内核, [{分布式,[{wd,5000,['n1@a2-X201',{'n2@a2-X201’,'n3@a2-X20
http://www.erlang.org/doc/pdf/otp-system-documentation.pdf9.9。分布式应用程序
- 我们有3个节点:n1@a2-X201,n2@a2-X201,n3@a2-X201
- 我们的应用程序wd可以做一些有用的工作:)
- wd1.config-对于第一个节点:
- 第二个的wd2.config:
- 对于节点n3,它看起来类似
- 厄尔斯奈姆n1@a2-X201-配置wd1-pa$WD\u EBIN\u路径-启动启动\u sasl
- 厄尔斯奈姆n2@a2-X201-配置wd2-pa$WD\u EBIN\u路径-启动启动\u sasl
- 厄尔斯奈姆n3@a2-X201-配置wd3-pa$WD\u EBIN\u路径-启动启动\u sasl
看起来现在我必须手动重新启动应用程序: *让我们先在noden2上执行此操作: (n2@a2-X201)1> application:start(wd). (n2@a2-X201)1>应用程序:启动(wd)。
- 看起来像是挂起来了
- 现在在n1重新启动
有什么想法吗?恢复“主”节点并再次杀死它时可能会出现问题?您看到的奇怪之处可能与您完全在节点n1/n2上重新启动应用程序有关,而n3仍在初始应用程序初始化下运行 如果您的应用程序启动任何系统范围的进程并使用它们的PID,而不是使用注册名称集(例如global、pg或pg2),那么您可能正在使用两组全局状态
如果是这种情况,建议采取的方法是将重点放在从现有应用程序添加/删除节点上,而不是重新启动整个应用程序。这样,节点就离开并加入到一组现有的初始化值中。作为(滚动到底部),分布式应用程序只有在作为发布的一部分启动时才能正常工作,而不是当您使用
应用程序:开始
手动启动它们时。很好的问题:大量投票,但没有答案:)实际上,我不使用PID,我使用注册的名字。我使用{local,Name}注册了gen_服务器实现行为。所以,我觉得这不应该是个问题。我不完全理解如何从正在运行的应用程序中添加/删除节点?你有代码示例吗?谢谢
(n3@a2-X201)2>
=INFO REPORT==== 19-Jun-2011::15:48:18 ===
wd_plug_server starting... PluginId: 4 Path: "/home/a2/src/erl/data/SIG" FileMask: "(?i)(.*)\\.SIG$"
Erlang R14B (erts-5.8.1) [source] [smp:4:4] [rq:4] [async-threads:0] [hipe] [kernel-poll:false]
Eshell V5.8.1 (abort with ^G)
(n1@a2-X201)1>
Eshell V5.8.1 (abort with ^G)
(n2@a2-X201)1>
(n2@a2-X201)1> application:start(wd).
(n1@a2-X201)1> application:start(wd).
=INFO REPORT==== 19-Jun-2011::15:55:43 ===
wd_plug_server starting... PluginId: 4 Path: "/home/a2/src/erl/data/SIG" FileMask: "(?i)(.*)\\.SIG$"
ok
(n1@a2-X201)2>
Eshell V5.8.1 (abort with ^G)
(n2@a2-X201)1> application:start(wd).
ok
(n2@a2-X201)2>
=INFO REPORT==== 19-Jun-2011::15:55:43 ===
application: wd
exited: stopped
type: temporary
(n1@a2-X201)2>
User switch command
--> q
[a2@a2-X201 releases]$