私の J2EE Web アプリでは、呼び出しの数をカウントするために、すべての Web API 呼び出しのカウントを分離されたスレッドに送信する必要があります。可能性は次のとおりです。
a) アトミック long を使用します。1 分間に数百万回の呼び出しがあった場合、競合が発生すると思います。つまり、すべてのスレッドが単一の変数を更新しようとします。
b) 共有キューを使用します。すべての要求処理スレッドがキューに挿入され、専用カウンター スレッドがそのキューからデキューされ、カウントがインクリメントされます。
c) アクター モデルを使用します。たとえば、Akka ライブラリを使用します。非同期メッセージをアクターに送信すると、それがカウントに追加されます。
私の質問は、方法(b)が(c)とどのように比較されるかです。長所と短所、および低レベルでの違いは何ですか?