1

インバウンド・データ・ファイルを解析し、レコードをデータベースに挿入するために、いくつかのカスタム目的の Unix プログラムを C/C++ で作成しました。これらのプログラムのステータスを 1 つまたは複数の Windows PC から監視できる機能を顧客に提供したいと考えています。この時代、両者の間で通信するための最良の方法は何ですか?

昔は、専用のクライアント/サーバー TCP/IP ソケット レベル プログラムのセットを両方のマシンに記述し、独自のプロトコルを使用してプログラム ステータスを要求し、応答を生成することで、この種のことを行っていました。Windows 側は約 1 分ごとに Unix 側に ping を送信し、Unix 側は処理待ちのレコード数、その日に処理されたレコード、MTD、および YTD (主に特定のディレクトリ内の単純なファイル数だけでなく、データベース ルックアップも含む) で応答します。 . Windows 側は、Unix 側に再起動するか、問題のあるレコードを「保留」領域に移動するように指示することもできます。両方の側に専用の「親」プロセスが含まれており、すべての子プロセスが引き続き実行されるようにするか、それらが終了した場合に再起動します。

しかし、それは 80 年代から 90 年代初頭のことです。この時代に、基本的に同じことを行うための、より新しく、より優れた、より信頼性の高いテクノロジはありますか? 私の専門は C/C++/C# ですが、優れたチュートリアルがあれば、Web ベースのものを実装できます。また、カスタム コードまたはフリー/オープンソース ソリューションに固執したいと思います。

私の手書きの TCP/IP クライアント/サーバー アプローチは、この状況に最適な方法でしょうか?

御時間ありがとうございます!

4

1 に答える 1

0

RabbitMQ ( AMQP の実装) は、問題に対する優れた実装が非常に簡単なソリューションです。

選択したプラットフォームにサーバーをインストールすることができ、数行のコードでメッセージを投稿するためのJava や .NET を含む多くのクライアント ライブラリがあります。

RabbitMQ ができること 【概要抜粋】

メッセージングは​​、ソフトウェア アプリケーションの接続と拡張を可能にします。アプリケーションは、より大きなアプリケーションのコンポーネントとして相互に接続したり、ユーザーのデバイスやデータに接続したりできます。メッセージングは​​非同期であり、データの送信と受信を分離することによってアプリケーションを分離します。

データ配信、ノンブロッキング オペレーション、またはプッシュ通知について考えているかもしれません。または、パブリッシュ/サブスクライブ、非同期処理、またはワーク キューを使用したい。これらはすべてパターンであり、メッセージの一部を形成します。

RabbitMQ は、メッセージング ブローカー (メッセージングの仲介者) です。アプリケーションにメッセージを送受信するための共通のプラットフォームを提供し、メッセージが受信されるまで安全に保管できる場所を提供します。

于 2012-12-24T18:02:03.243 に答える