OTP:如何监督非OTP组件?

时间:2013-07-10 15:21:22

标签: erlang high-availability otp supervisor mochiweb

我正在构建一个Erlang / OTP系统,它包含一个MochiWeb Web服务器,一些自定义Erlang / OTP应用程序和一些非本机组件,如下所示:

  • CouchDB数据库,用于存储MochiWeb Web服务器的状态和持久数据(用户,帐户等)。
  • 一个传统的PostgreSQL数据库,用于存储其他一些实体(订单,帐户等;客户的要求:无法迁移到CouchDB,数据应按原样使用);
  • Asterisk服务器,用于向系统用户提供电话通知。

我希望实现高水平的正常运行时间和可用性,因此我想知道监控系统的非Erlang / OTP元素的最佳方法是什么。基本上,我希望在需要时对系统的每个元素进行监督,监控和重新启动。它很容易实现Erlang / OTP应用程序,但我不知道如何使用非Erlang组件。


我应该将它们包装为Erlang / OTP应用程序并包含在OTP监督树中吗?

或者我应该使用一些第三方软件工具来监控和监督Erlang / OTP系统的非Erlang / OTP组件吗?

最着名的做法是什么?

1 个答案:

答案 0 :(得分:3)

答案是取决于:P

我已经看过两种方法,但我不太确定一方是否优于另一方。我的直觉是选择通过erlang内的端口管理应用程序的那个。这样,您可以通过一种很好的集中方式来了解问题是否会突然出现,并且可以轻松解决问题。

相关问题