sql >> データベース >  >> NoSQL >> Redis

リアルタイムアプリケーションの初心者-Node.JS+RedisまたはRabbitMQ->クライアント/サーバーどのように?

    アーキテクチャ上、どちらの選択肢も、別のアプリケーションが取得できるようにOracleデータベースサーバーにデータを保存するのと同じです。

    RabbitMQとRedisソリューションはどちらも、データ通信を処理する中間サーバーにアプリを接続する必要があります。 Redisは、ネットワークAPIを備えた永続データベースとして簡単に使用できるため、Oracleに最もよく似ています。ただし、RabbitMQは少し異なります。これは、MQブローカーがデータの永続化を実際に担当していないためです。適切に構成し、メッセージを公開するときに適切なオプションを使用すると、RabbitMQは実際にデータを保持しますが、通常のメッセージキューイングプロセスの一部として以外はデータを取得できません。言い換えると、RabbitMQはメッセージを通信するためのものであり、ネットワークの問題やシステムのクラッシュから回復する方法としてのみ永続性を提供します。

    RabbitMQと、すでに使い慣れているプログラミング言語を使用することをお勧めします。 LAMPのMは通常MySQLとして解釈されるため、これは、MySQLをまったく使用しないか、リアルタイム通信ではなく、データの長期保存にのみ使用することを意味します。

    RabbitMQサイトには、AMQPを使用したアプリの構築に関する膨大な量のドキュメントがあります。 RabbitMQをインストールした後、rabbitmqctlのドキュメントを読むことをお勧めします。 次に、vhostを作成します そうすれば、すべてをリセットせずに実験を簡単にクリーンアップできます。また、routing_keyでワイルドカードを使用することで直接交換とファンアウト交換の動作をエミュレートできるため、トピック交換のみを使用することをお勧めします。メッセージは交換にのみ公開され、キューからのみメッセージを受信することに注意してください。交換は、メッセージのrouting_keyをキューのbinding_keyにパターンマッチングして、メッセージのコピーを受信するキューを決定する役割を果たします。 routing_keyと同じ名前の1つのキューにのみメッセージを送信することを計画している場合でも、AMQPモデル全体を学習することは価値があります。

    ブラウザでクライアントを構築していて、プロトタイプを構築したい場合は、今日XHRの使用を検討してから、AMQP(AMQプロトコル)の純粋なJavascript実装であるKamaloka-jsのようなものに移行する必要があります。 RabbitMQメッセージブローカーとの通信に使用される標準プロトコルです。言い換えれば、今日知っていることでそれを構築し、後でそれをスピードアップして、ツールボックスに長期的な未来がある何か(AMQP)を作成します。



    1. このテクノロジースタックは拡張できますか?

    2. Sentinelおよびredis-pyでRedisを使用するときに新しいマスターノードにフェイルオーバーするにはどうすればよいですか?

    3. マングースのユニークなインデックスが機能していません!

    4. ActionController::LiveをResque+Redisと一緒に使用する方法(チャットアプリケーション用)