私のアプリケーションは基本的に、MMSイベントをルーティングするコンテンツベースのルーターです。
私が使用しているロガーは、SASLモードのOTPフレームワークに付属しているロガー「error_logger」です。
問題は::
クライアントを使用して、デフォルト値でMMSイベントを生成しています。このクライアント(Java)には、複数のスレッドで大量のイベントを送信する機能があります
Erlang / OTPで書かれたルーターに10スレッドで100イベントを送信しています(各スレッドは10 MMSイベントを送信しています)。
問題は、ルーターがこのような高負荷を受信すると、ロガーがハングする、つまりログファイルの更新を停止することです。ただし、ルーターは引き続きイベントをルーティングできます。
私が思いついた結論は::
このような高負荷のイベントを受信した場合のErlangでのスケジューリングの問題(イベントごとに個別のプロセス)。
非常にありそうもないデッドロック状態。
イベントを順番に送信するのではなく、複数のスレッドでイベントを送信することが原因である可能性があります。しかし、ルーターは複数のサービスプロバイダーボックスに接続されると思うので、スレッドでイベントを送信することを考えました。
誰かが問題を解明するのにmwを助けることができますか?