検索
ホームページよくある問題RPCミドルウェアとは何ですか?

RPCミドルウェアとは何ですか?

Jan 07, 2020 am 09:34 AM
rpcミドルウェア

RPCミドルウェアとは何ですか?

# 1. メッセージミドルウェア

メッセージキュー技術は、分散アプリケーション間で情報を交換するための技術です。メッセージ キューはメモリまたはディスク上に常駐でき、アプリケーションによって読み取られるまでメッセージを保存します。メッセージ キューを使用すると、アプリケーションは独立して実行できます。アプリケーションはお互いの位置を認識したり、続行する前に受信プログラムがメッセージを受信するのを待つ必要がありません。

一般に、メッセージ ミドルウェアには、結合の低減、トラフィック ピークの低減、非同期通信、および信頼性の高い送信の機能があります。

1. 結合の低減: パブリッシュとサブスクライブによる疎結合

登録ビジネスを例に挙げます。登録が成功すると、確認のために SMS と電子メールがユーザーに送信されます。従来のアーキテクチャ モデルは次のとおりです。

RPCミドルウェアとは何ですか?

メール業務とSMS業務 ユーザー登録時にコードを記述します インターフェース経由で実装する場合も、リモート通話で実装する場合も、結合度は非常に高いです ここで、新たな要件が追加されます ユーザー登録完了後メールが送信されない ユーザーの「ポイントを増やすため」 これらの状況を分析してみましょう:

まず、登録成功後の業務処理は、コードの蓄積とインターフェース呼び出しを通じて業務システムに実装されます。登録コードを変更するには、オンライン時にアプリケーションを起動および停止する必要がありますが、この方法が最も結合度が高くなります。

2 番目に、リモート呼び出しを通じて新しいビジネス処理を追加する場合、メイン プロセスのコードを変更する必要があり、アプリケーションの起動と停止が避けられません。

メッセージ ミドルウェアを次のように導入すると:

RPCミドルウェアとは何ですか?

#ユーザーが正常に登録された後、パブリッシュとサブスクライブを通じて、メッセージがメッセージ ミドルウェアに送信されます。ビジネスエンドは、同じチャネルのメッセージをサブスクライブし、登録成功のメッセージを受信した後、対応するビジネスを実行します。 「ポイント追加」の追加により、ポイントシステム側での処理とこのメッセージの購読だけで済むため、ユーザーの業務コードの変更やアプリケーションの起動・停止が不要となり、スムーズな拡張が可能となります。ビジネスは達成できる。

2. 非同期通信

上記の例で言うと、従来のアーキテクチャでは、ユーザー登録が完了して SMS メールが送信されると、クライアントが戻ってきてユーザーに登録が完了したことを通知します。成功です。メッセージ ミドルウェアを使用した後、ユーザーが登録情報を送信して処理が完了すると、ユーザーは正常に登録するように求められます。その後の SMS サービスと電子メール サービスは、SMS メッセージを送信する前に、購読チャネルからユーザー登録成功メッセージを受信し、メール、企業間でのやり取りは不要、相互抑制。

3. トラフィック ピークの削減とサージの防止

メッセージ ミドルウェアはピーク期間中にメッセージを蓄積し、ピーク値が過ぎた後、ダウンストリーム システムがメッセージをゆっくりと消費してトラフィック ピークの問題を解決します。 。

同時実行性がピークに達すると、通常、バックエンド システムへの負荷が非常に高くなります。アプリケーション サーバーであってもデータベース サーバーであっても、この時点では、同様のリクエストがメッセージ キューに入れられる可能性があります。メッセージ ミドルウェアのサイズを設定し、処理が遅いために蓄積されます。メッセージ キューのサイズを設定して、同時実行の量を制御することもできます。製品のフラッシュ セールのビジネス シナリオは、比較的一般的です。

4. 信頼性の高い送信

メッセージベースの通信は信頼性が高く、メッセージが失われることはありません。ほとんどのメッセージング ミドルウェアは、メッセージをディスクに永続化する機能を提供します。冒頭の 1 つ目のシナリオでは、メッセージ ミドルウェアはプロデューサによって生成されたメッセージをディスクに永続化できます。バックエンド アプリケーションは停止しますが、メッセージは失われず、アプリケーションは再起動されて処理を続行します。

メッセージ ミドルウェアがダウンしている場合、メッセージを受信できない場合にメッセージ ミドルウェアを維持するにはどうすればよいですか?という質問があるかもしれません。それは問題ではありません。メッセージ ミドルウェアは、メッセージの信頼性の高い送信を保証できるさまざまなメッセージ レプリケーション戦略、永続化戦略、クラスター展開戦略などを提供します。

#2. メッセージ ミドルウェア モデル

RPCミドルウェアとは何ですか?

RPCミドルウェアとは何ですか?

##3. 一般的に使用されるメッセージ ミドルウェア##RabbitMQ

1. RabbitMQ の機能:

RabbitMQ はオープン ソース実装ですErlang 言語で開発された AMQP 標準に基づいています。 RabbitMQ はもともと金融システムから生まれ、分散システムでメッセージを保存および転送するために使用されており、使いやすさ、拡張性、高可用性の点で優れたパフォーマンスを発揮します。その具体的な機能は次のとおりです。

信頼性

柔軟なルーティング

メッセージ クラスターのサポート

高可用性

複数のプロトコルのサポート (AMQP プロトコルのサポートに加え、STOMP や MQTT などのプラグインを通じて他のメッセージ キュー プロトコルもサポートします)

多言語クライアントのサポート

管理インターフェイスの提供

追跡メカニズムの提供

プラグイン メカニズムの提供 (RabbitMQ は多くのプラグインを提供しており、独自のプラグインを作成することもできます)

概要:

RabbitMQ の最大の利点は、比較的柔軟なメッセージ ルーティング戦略、高可用性、信頼性、豊富なプラグイン、複数のプラットフォームを提供することです。サポートと完全なドキュメント。ただし、AMQP プロトコル自体の実装が比較的重いため、他の MQ (Kafka など) と比較してスループットが不利になります。

ActiveMQ

1.ActiveMQ の機能:

ActiveMQ は、Apache によって作成されたオープン ソースのメッセージング ミドルウェアであり、効率的でスケーラブルで安定した、エンタープライズレベルのメッセージング通信を保護します。 ActiveMQ は JMS 1.1 を実装し、JMX 管理、マスター/スレーブ管理、メッセージ グループ通信、メッセージの優先順位、遅延メッセージ受信、仮想レシーバー、メッセージの永続化、メッセージ キューの監視など、多くの追加機能を提供します。主な機能は次のとおりです。

Java、C、C、C#、Ruby、Perl、Python、PHP など、OpenWire、STOMP、AMQP などの複数の言語でクライアントとプロトコルをサポートします。 、MQTT プロトコル。

メッセージ グループ通信、メッセージの優先順位、遅延メッセージ受信、仮想受信者、メッセージの永続化などの高度な機能を提供します。

JMS 1.1 および J2EE 1.4 仕様 (永続性、分散トランザクション メッセージ、トランザクションを含む) を完全にサポートします。

Spring フレームワークをサポートし、ActiveMQ は Spring 構成ファイルを通じて Spring アプリケーションに簡単に埋め込むことができます。

TomEE、Geronimo、JBoss、GlassFish、WebLogic などの一般的な J2EE サーバー テストに合格しました。

多様な接続方式 ActiveMQ は、VM 内、TCP、SSL、NIO、UDP、マルチキャスト、JGroups、JXTA など、さまざまな接続方式を提供します。

JDBC とジャーナルを使用して、メッセージの高速永続化をサポートします。

高パフォーマンスのクラスター、クライアント/サーバー、ポイントツーポイント通信、およびその他のシナリオ向けに設計されています。

テクノロジーと言語に依存しない REST API インターフェイスを提供します。

AJAX 経由での ActiveMQ の呼び出しをサポートします。

ActiveMQ は、CXF や Axis などの Web サービス テクノロジと簡単に統合して、信頼性の高いメッセージングを提供できます。

インメモリ JMS プロバイダーとして使用でき、JMS 単体テストに非常に適しています。

Kafka

1.Kafka の機能:

Kafka は、分散パブリッシュ/サブスクライブ メッセージング システムとして LinkedIn によって最初に開発され、後に Apache のものになりました。トップレベルのプロジェクト。その主な機能は次のとおりです。

パブリッシュとサブスクリプションの両方で高いスループットを提供します。 (Kafka の設計目標は、時間計算量が O(1) のメッセージ永続化機能を提供することです。これは、TB レベルを超えるデータに対しても一定時間のアクセス パフォーマンスを保証でき、非常に安価な商用マシンでも実行できます。 1 台のマシンに 1 秒あたり 100K のメッセージを送信)

メッセージの永続性。 (メッセージをディスクに永続化するため、リアルタイム アプリケーションだけでなく ETL などのバッチ消費にも使用できます。データをハードディスクに永続化してレプリケートすることで、データ損失を防ぐことができます。)

分散。 (各パーティション内でのメッセージの連続送信を確保しながら、サーバー間でのメッセージの分割と分散消費をサポートします。内部のプロデューサー、ブローカー、およびコンシューマーはすべて分散アーキテクチャであるため、外部への拡張が容易になります。)

Consumingmessagesプルモードを採用。 (処理中のメッセージのステータスは、サーバー側ではなくコンシューマ側で維持されます。ブローカーはステートレスであり、コンシューマ自体がオフセットを保存します。)

オフラインだけでなく、オンラインおよびオフラインのシナリオもサポートします。データ処理とリアルタイムデータを扱います。

RocketMQ

1. RocketMQ の機能:

RocketMQ は、2012 年に Alibaba によってオープンソース化され、その後 Apache software Foundation に寄付された分散メッセージング ミドルウェアです。そして、2017 年 9 月 25 日に Apache のトップレベル プロジェクトになりました。アリババの「Double 11」など数々の「スーパープロジェクト」を経験し、安定した優れたパフォーマンスを誇る国産ミドルウェアとして、その高性能、低遅延、高信頼性により、近年国内ユーザーの利用が増えています。企業が使用します。主な特徴は次のとおりです。

柔軟な拡張性を備えています。 (RocketMQ は当然クラスターをサポートしており、その 4 つのコア コンポーネント (NameServer、Broker、Producer、および Consumer) はそれぞれ単一障害点なしで水平方向に拡張できます。)

大量のメッセージを蓄積する機能があります。 (RocketMQ は、ゼロコピーの原則を使用して、非常に大量のメッセージを蓄積する機能を実現します。1 台のマシンで数億のメッセージの蓄積をサポートできると言われており、非常に多くのメッセージを蓄積した後でも、低い書き込み遅延を維持します。 )

連続メッセージをサポートします。 (RocketMQ は、メッセージ コンシューマーが送信された順序でメッセージを消費することを保証できます。シーケンシャル メッセージは、グローバルに順序付けされたメッセージとローカルに順序付けされたメッセージに分けられます。一般に、ローカルに順序付けされたメッセージを使用することをお勧めします。つまり、プロデューサーは特定のタイプを送信します。達成するために同じキューに送信するためのメッセージの数。)

複数のメッセージ フィルタリング方法をサポートします。 (メッセージのフィルタリングは、サーバー側のフィルタリングとコンシューマ側のフィルタリングに分かれます。サーバー側でフィルタリングを行うと、メッセージのコンシューマの要件に応じてフィルタリングを実行できます。メリットは、不要なメッセージの送信が削減されることですが、デメリットは、メッセージ サーバーの負荷が増加します。実装は比較的複雑です。コンシューマ側のフィルタリングは、特定のアプリケーションによって完全にカスタマイズされます。この方法はより柔軟です。欠点は、多くの無駄なメッセージがメッセージ コンシューマに送信されることです。)

トランザクションメッセージをサポートします。 (通常のメッセージと順次メッセージのサポートに加えて、RocketMQ はトランザクション メッセージもサポートします。この機能は、分散トランザクションに別のソリューションを提供します。)

バックトラッキング消費をサポートします。 (遡及消費とは、コンシューマーによって正常に消費されたメッセージが、ビジネス ニーズのために再度消費される必要があることを意味します。RocketMQ は、時間に応じた遡及消費をサポートします。時間ディメンションはミリ秒単位で正確で、前後に追跡できます。)

MoreFAQ については、PHP 中国語 Web サイトをご覧ください。

以上がRPCミドルウェアとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Deepseek Webバージョンの公式入り口Deepseek Webバージョンの公式入り口Mar 12, 2025 pm 01:42 PM

国内のAI Dark Horse Deepseekは強く上昇し、世界のAI業界に衝撃を与えました! 1年半しか設立されていないこの中国の人工知能会社は、無料でオープンソースのモックアップであるDeepseek-V3とDeepseek-R1で世界的なユーザーから広く称賛されています。 Deepseek-R1は完全に発売され、パフォーマンスはOpenAio1の公式バージョンに匹敵します! Webページ、アプリ、APIインターフェイスで強力な機能を体験できます。ダウンロード方法:iOSおよびAndroidシステムをサポートすると、ユーザーはApp Storeを介してダウンロードできます。 Deepseek Webバージョン公式入り口:HT

deepseekの忙しいサーバーの問題を解決する方法deepseekの忙しいサーバーの問題を解決する方法Mar 12, 2025 pm 01:39 PM

DeepSeek:サーバーに混雑している人気のあるAIを扱う方法は? 2025年のホットAIとして、Deepseekは無料でオープンソースであり、OpenAio1の公式バージョンに匹敵するパフォーマンスを備えており、その人気を示しています。ただし、高い並行性は、サーバーの忙しさの問題ももたらします。この記事では、理由を分析し、対処戦略を提供します。 Deepseek Webバージョンの入り口:https://www.deepseek.com/deepseekサーバーに忙しい理由:高い並行アクセス:Deepseekの無料で強力な機能が同時に使用する多数のユーザーを引き付け、サーバーの負荷が過剰になります。サイバー攻撃:Deepseekが米国の金融産業に影響を与えることが報告されています。

詳細な検索Deepseek公式ウェブサイトの入り口詳細な検索Deepseek公式ウェブサイトの入り口Mar 12, 2025 pm 01:33 PM

2025年の初めに、国内のAI「Deepseek」が驚くべきデビューを果たしました!この無料のオープンソースAIモデルは、OpenAIのO1の公式バージョンに匹敵するパフォーマンスを備えており、Webサイド、アプリ、APIで完全に起動され、iOS、Android、およびWebバージョンのマルチターミナル使用をサポートしています。 DeepSeekの公式Webサイトおよび使用ガイドの詳細な検索:公式Webサイトアドレス:https://www.deepseek.com/sing for webバージョンの手順:上記のリンクをクリックして、DeepSeekの公式Webサイトを入力します。ホームページの[会話の開始]ボタンをクリックします。最初に使用するには、携帯電話検証コードでログインする必要があります。ログインした後、ダイアログインターフェイスを入力できます。 DeepSeekは強力で、コードを書き、ファイルを読み取り、コードを作成できます

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン