我的应用程序基本上是一个基于内容的路由器,它将路由 MMS 事件。
我使用的记录器是SASL模式下OTP框架自带的“ error_logger ”
问题是::
我正在使用客户端生成具有默认值的 MMS 事件。这个客户端(在 Java 中)能够在多个线程中发送高负载的事件
我在 10 个线程中发送 100 个事件(每个线程发送 10 个 MMS 事件)到我用 Erlang/OTP 编写的路由器。
问题是,当我的路由器收到如此高的负载时,我的 Logger 挂起,即它停止更新我的日志文件。但是路由器仍然能够路由事件。
我得出的结论是::
当接收到如此高的事件负载(每个事件的单独进程)时,Erlang 中的调度问题。
一个非常不可能的死锁状态。
可能是由于在多个线程中发送事件而不是按顺序发送它们。但是我猜一个路由器会连接到多个服务提供者盒子,所以我想到了在线程中发送事件。
任何人都可以帮助 mw 揭开这个问题的神秘面纱吗?