PHPコード(プロデューサー)へのHTTP呼び出しを介してリクエストを取得するシステムがあります。このコードは、リクエスト パラメータを MYSQL(queue) のテーブルに追加します。これは、Java プログラム (コンシューマー) によって取得および処理されます。私の最初の実装では、プロデューサーとコンシューマーの両方が PHP にありました (MYSQL キューを使用)。その後、負荷が増加すると、これは非効率的であることが判明したため、コンシューマーを Java にしました。Java アプリからのキューの MYSQL テーブルのポーリングが非効率的になっていると思います (MYSQL プロセスの CPU 使用率が非常に高くなります)。このキューを実装するより良い方法はありますか (PHP コードと Java アプリの間でメモリを共有するなど)?
1362 次
1 に答える
0
はい、多くのオプションがあります。1 つ目は、明らかにこれをクライアント サーバー サービスに変換し、それらの間でテキスト メッセージまたはバイナリ メッセージを渡すことです。マゾヒストの場合は Web サービス、より単純な REST サービス、CORBA / COM+ などのバイナリ シリアライゼーションを検討することをお勧めします。そして、MQseries、RabbitMQ などのさまざまなキューがあります。仲介者が十分に高速で効率的である場合もあれば、直接呼び出しで十分な場合もあります。
次は、プラットフォームが同じサーバーまたはクラスター内にある場合のより直接的なリンクです。JavaBridgeなどのようなものです (「java php bridge」を検索すると、いくつか出てきます。Java で書かれた PHP インタープリターもあります。あなたのためにトリックを行うかもしれない2つの間の完全な互換性を提供するJVM。
于 2011-05-07T10:00:06.103 に答える