0

高度にスケーラブルなサーバー/クライアント アプリケーションの開発を開始する方法を学びたいと考えています。具体的には、非 Web ベース/非ブラウザー デスクトップ クライアント向けです。非常に最小限のチャット アプリケーション (AIM/Skype にほぼ匹敵する) を開発することは、サーバー/クライアントとスケーラビリティについて学習するこのような道を歩み始めるための合理的な方法だと思います。

スケーラビリティを重視しているため、どのプログラミング言語がこのタスクに適しているかわかりません。個人的には、Java、C#、および C/C++ だけに関心があります。サーバー OS に関する限り、Linux を扱うので、私の場合、C# は Mono を意味します。

高度にスケーラブルでなければならないアプリケーションをサポートするインフラストラクチャであるため、私の特定の関心は、サーバーで使用する言語に要約されると思います。Java と C# のサーバーのスケーラビリティについて、さまざまなレビューを聞いたことがあります。私の直感では、どちらも完全に合理的な選択であることが示唆されますが、アプリケーション/ユーザー トラフィックが特定のしきい値に達すると、問題が発生するという話を耳にします。伝聞をどう判断するかは難しいですが、これらの言語のベアメタル サポートの欠如は、特定のしきい値でスケーラビリティを妨げる可能性があると思います。C/C++ について聞くと、優れた Boost ライブラリ (例:Boost.Asio) 究極のスケーラビリティを提供します。しかし、特にソケットは、Java/C# などの他の言語よりも C/C++ で処理する方がはるかに複雑であると聞くと、私は怖くなります。

チャット クライアントなどの高度にスケーラブルなサーバー クライアント アプリケーションの作成を開始する効果的な方法は何ですか? 私が言及したもののうち、どのプログラミング言語がそのようなアプリケーションの開発に適しているでしょうか? このようなアプリケーションでは、他にどの言語を検討する必要がありますか?

編集:「スケール」という用語は、多数のユーザー(おそらく数万または数十万、おそらく数百万)にサービスを提供するためのスケーリングに最も直接的に関連しています。

4

2 に答える 2

1

「スケール」 - どのようにスケールしますか? CPUコア、ユーザー、またはコードベースでスケーリングしますか?

次の質問をすることができます: どの言語の実装が最速ですか? 多くのリクエストを問題なく処理できるのはどの言語ですか?

どの言語の実装においても、分散システムを構築するための戦略が必要です。速度を心配する必要がある場合は、システムを多くのマシンに分散させる可能性について心配する必要があります。

コア数とノンブロッキング リクエストに関して最大​​のスケーラビリティが必要な場合は、Erlang を使用してください。サーバー側で大量のトラフィックを処理します。

于 2013-02-24T20:48:38.013 に答える
0

あなたが言及した各言語はスケーリングされます。

これについて真剣に考えているのであれば、自分が最もよく知っている言語を選択して構築する必要があります。まだアイデアのプロトタイプを作成しておらず、自分自身のスケールに関心を持っています。

上記の各言語で書かれたプログラムやウェブサイトは、完璧に拡張できるものをたくさん挙げることができます (そうでないものもたくさん挙げることができます)。

于 2013-02-24T20:38:04.243 に答える