1 秒あたり 30 ~ 100 通の電子メールを処理する必要がある自社開発の SMTP リレー サーバーに高可用性を実装する最善の方法は何かと考えています。
このサーバーが本質的に行うことは、さまざまな smtp クライアントで認証し、特定のメール サーバーにリレーしてエラーを処理することです。たとえば、メール サーバーが使用できないなどです。高可用性を実現するには、システムがクラスタリングをサポートしている必要があります。これにより、プライマリ/セカンダリ アクティブ クラスタに Windows クラスタリングを使用できます。
メールキューは次の場所にあると思います:
- メモリ (このメソッドは明らかな理由で廃止されました。)
- RDMS
- ファイル (これは IIS 仮想 SMTP が使用するものだと思いますか?)
- SQLiteなどの組み込みDB
- SQLite とファイルの混在
- インストールと構成が必要なサードパーティの奇抜なキュー製品はありますか?
高可用性を実現する通常の方法は、MySQL などの RDBMS を使用することですが、強力な MySQL サーバーがない限り、メッセージ キューに RDBMS を使用するとパフォーマンスが大幅に低下します。その上、簡単ではない MySQL クラスタリングを実装する必要があります。また、誰もMySQLをキューとして使用すべきではないことをどこかで読みました- http://www.engineyard.com/blog/2011/5-subtle-ways-youre-using-mysql-as-a-queue-and-why -イットル-バイト-ユー/
あるいは、SQLite+File を使用することもできます。これはおそらく最速 (純粋なメモリ以外) で、展開が最も簡単な方法 (インストールするものは何もありません) ですが、SQLite のクラスタリングがないため、サーバーがクラッシュした場合、未送信のメッセージが残っている可能性があります。失った。