刚开始阅读Francesco Cesarini写的伟大的Erlang一书的OTP章节。大多数Erlang应用程序,如MochiWeb,Riak,RabbitMQ,Zotonic,ejabberd和CouchDB动态口令应用程序?
发布于 2010-09-24 16:04:27
MochiWeb遵循基本的OTP Design Principles:它利用supervisor(3)行为来重新启动崩溃的进程(模块mochiweb_sup.erl),以及gen_server(3)行为。然而,它实现了许多处理数据的例程,例如在mochinum.erl中找到的用于更快的浮点数序列化的例程和处理JSON的mochijson[2].erl例程等。
mochiweb (我清楚地解释了为什么是here)的不好之处在于,它使用了有问题的和官方没有记录的(自2003年以来!)modules parameterizing技术(模块mochiweb_request.erl,注意文件头的-module(mochiweb_request, [Socket, Method, RawPath, Version, Headers]). )。这同样适用于另一个Erlang HTTP库misultin (misultin_req.erl)。
如果我错了,请纠正我。
发布于 2010-09-24 20:11:55
CouchDB在这方面有很多问题,但Cloudant发布的最新源代码在rebar中显示了CouchDB,因此它必须是符合动态口令的。
Riak -相同,在螺纹钢上(顺便说一下。相同的devs rebar和riak)。Btw2。这是一个写得很好的应用程序,是学习好的实践的好地方。
Zotonic的源代码看起来有点乱。我可以看到有'application‘等,但是目录结构看起来不像任何合适的OTP节点。顺便说一句。甚至没有在所有模块的顶部添加许可证:?
ejabberd充满了sups和应用程序,但它也有一些有趣的;)设计选择,所以在这个例子中可能不学习Erlang。
发布于 2010-09-25 00:11:07
Hibari数据库应用绝对是基于OTP的。服务器被分成几个动态口令应用程序,包括一个小的用于管理配置和日志(gmt),一个大的用于服务器本身(gdss),一个小的用于本地Erlang客户端(gdss_client),以及每个服务器端协议处理程序的单独的动态口令应用程序(例如JSON-RPC,UBF,EBF/BERT)。
有时一张图片至少抵得上几百个字。我从Erlang "appmon“(应用程序监视器)应用程序获得了一些屏幕截图,其中显示了主管和工作进程树。很抱歉,协议处理程序应用程序没有显示在图片#01中,但如果我在捕获图像时让它们运行,它们就会显示出来。
链接在这里:OTP 'appmon' screen shots
-Scott
https://stackoverflow.com/questions/3782749
复制相似问题