【发布时间】:2013-07-08 14:47:12
【问题描述】:
我正在构建一个 Erlang/OTP 系统,它由 MochiWeb Web 服务器、一些自定义 Erlang/OTP 应用程序和一些非本地组件组成,如下所示:
- 一个 CouchDB 数据库,用于存储 MochiWeb Web 服务器的状态和持久数据(用户、帐户等)
- 旧版 PostgreSQL 数据库,用于存储一些其他实体(订单、帐户等;客户要求:无法迁移到 CouchDB,数据应按原样使用);
- Asterisk 服务器,用于向系统用户提供电话通知。
我想实现高水平的正常运行时间和可用性,因此我想知道监控系统中那些非 Erlang/OTP 元素的最佳方法是什么。基本上,我希望系统的每个元素都受到监督、监控并在需要时重新启动。对于 Erlang/OTP 应用程序来说很容易实现,但我不知道如何使用非 Erlang 组件来实现。
我应该将它们包装为 Erlang/OTP 应用程序并包含到 OTP 监督树中吗?
或者我应该使用一些第三方软件工具来监控和监督 Erlang/OTP 系统的那些非 Erlang/OTP 组件?
最好的做法是什么?
【问题讨论】:
标签: erlang high-availability erlang-otp erlang-supervisor mochiweb