タグ付けされた質問 「server」

リソースまたはサービスのプロバイダーがサーバーと呼ばれるクライアントサーバーモデルを指します。

7
マイクロサービスシステムアーキテクチャはどのようにネットワークのボトルネックを回避しますか?
私はサーバーアプリケーションのマイクロサービスアーキテクチャについて多くのことを読んでおり、内部ネットワークの使用がモノリスアーキテクチャに比べてボトルネックや重大な欠点ではないことを疑問に思っていました。 正確さのために、2つの用語の解釈を以下に示します。 モノリスアーキテクチャ:すべての機能、データなどを処理する単一言語の1つのアプリケーション。ロードバランサーは、アプリケーションの1つのインスタンスを実行する複数のマシンにエンドユーザーからのリクエストを分散します。 マイクロサービスアーキテクチャ:機能とデータのごく一部を処理する多くのアプリケーション(マイクロサービス)。各マイクロサービスは、(同じマシン上のプロセス間通信または共有メモリとは対照的に)ネットワークを介してアクセスされる共通のAPIを公開します。API呼び出しは、主にサーバー上でページを生成するためにスティッチングされますが、おそらくこの作業の一部は、個々のマイクロサービスを照会するクライアントによって行われます。 単純な想像では、マイクロマシンアーキテクチャは、同じマシン(メモリとディスク)の高速リソースとは対照的に、低速ネットワークトラフィックを使用するようです。内部ネットワークを介したAPIクエリにより、全体の応答時間が遅くならないようにするにはどうすればよいですか?

3
HTTPステータスコードを使用して、アプリケーションレベルのイベントを記述する必要がありますか
私が扱ったいくつかのサーバーは、クライアントが失敗と見なすべきリクエストに対してHTTP 200を返します。本文には「success:false」のようなものが含まれます。 これは、特に認証に失敗した場合、HTTPコードの適切な実装とは思えません。「4xx」は変更するまでリクエストを再度行うべきではないことを示し、「5xx」はリクエストが有効または無効であり、再試行できるが失敗したことを示すため、HTTPエラーコードを簡潔に要約しました。この場合、200:ログインに失敗した、または200:そのファイルが見つからなかった、または200:パラメータxが見つからない、間違いが間違っているようです。 一方、「4xx」はリクエストの構造的な問題を示すだけであるという議論が行われていることがわかりました。したがって、200を返すのは適切です。401不正ではなく、不正なユーザー/パスワードは、クライアントが要求を行うことを許可されているためです。この引数は、サーバーが要求を処理して決定を行うことができた場合、応答コードは200である必要があり、詳細については本文を確認するのはクライアント次第であると要約できます。 基本的に、これは好みの問題のようです。しかし、それは満足のいくものではないので、これらのパラダイムのいずれかがより正しい理由が誰かにあるなら、私は知りたいです。

6
多くの小さなリクエストと少数の大きなリクエスト(APIデザイン)
現在、次のような組織でプロジェクトに取り組んでいます。 クライアント -REST APIを介してメインサーバーからデータを取得します。 サーバー -サードパーティAPIを介して他のさまざまなサーバーからデータを要求します サードパーティ API-サーバーにデータを提供する私の制御できないサービス(Reddit、Hackernews、Quoraなど) 議論のために、クライアントが最初に各サードパーティAPIからのアイテムのリストを必要とするとしましょう。このリストからアイテムが選択されます。この時点で、クライアントはアイテムの完全なコンテンツとアイテムへの応答(コメント)を表示する必要があります。私は3つのオプションの間で決定しようとしています: アラカルト このアプローチでは、サーバーに3つのエンドポイントがあります。1つはアイテムのリストを取得し、1つはアイテムのメインコンテンツを取得し、もう1つはアイテムの応答を取得します。 長所:必要以上にリクエストを送信することはありません。リクエストは小さくなければならないので、一般的には高速になります。 短所:私は多くの要求をしなければなりません。リストから項目を選択した後、ユーザーはメインコンテンツを見る前に待たなければならない場合があり、それから応答を見るためにさらに長く待たなければならない場合があります サーバー側キャッシュ このリクエストでは、サーバーを1回呼び出して、すべてのソースのすべてのデータを「フェッチ」します。その後、データはサーバーにキャッシュされます。クライアントは以前と同じRESTエンドポイントを持つことになりますが、サーバーには既にデータがあり、それをクライアントにフィードするだけなので、呼び出しと呼び出しの間にあまり待つ必要はありません。 長所:クライアント側での実装は依然として簡単ですが、遅延の問題はありません 短所:サーバー側が少し複雑で、最初の呼び出しには本当に長い時間がかかる可能性があります。 クライアント側キャッシュ このシナリオは前のシナリオと似ていますが、クライアントがサーバーに対して1回だけ要求を行うという点が異なります。つまり、すべてのデータを提供します。ここから、データを保存して適切に使用するのはクライアントの責任です。 長所:簡単なサーバー実装、最初の呼び出し後は非常に高速 短所:最初の呼び出しは非常に遅く、より複雑なクライアント側の実装になります どちらが最善のアプローチであるのか、あるいは明らかな解決策が欠けているのかもしれません。どんなアドバイスも大歓迎です!

9
ウェブサイトが使用しているプログラミング言語を知ることは可能ですか?
たとえばstackexchange.com、サイト所有者やGoogleにウェブサイトの開発に関する情報を尋ねずに、バックエンドで使用されている言語を知ることは可能ですか? ウェブサイトには.extensionバーがありません。たとえば.php、で開発されていることを示すことができますPHPが、拡張子がなければ、それをどのように知ることができますか?

5
ウェブサイトのサーバー側を常にプログラムする必要がありますか?
私は友人のために音楽プロジェクトのウェブサイトの作成を開始しようとしています。現時点ではかなりシンプルなはずです。動的コンテンツ(ツアーの日付など)はなく、いくつかの埋め込みサンプルソングまたはSoundCloudリンクしかありません。レスポンシブグリッドには、バニラJavaScriptとBootstrapまたはFoundation以外のものを使用する予定はありません。 これで十分ですか?HTML、CSS、JSファイルをホストに単純にアップロードして完了できますか、それともNodeまたはPHPでバックエンドサーバーをプログラムするのに時間をかける必要がありますか?

7
ファイルごとにプロジェクトを手動でサーバーにデプロイするのがベストプラクティスですか?
私が今働いている会社は、継続的デリバリーをまだ実装していません。ファイルごとにサーバーにプロジェクトを手動でデプロイします。ベストプラクティスは次のとおりです。展開ごとに1つのプロジェクトアーティファクトを手動で展開するか、ファイルごとの展開を続けますか?

3
Node.jsは実際にスケーラビリティを向上させますか?
私はC10Kの問題について読んでいますが、特に注目すべきは非同期サーバーI / Oを指す部分です。http://www.kegel.com/c10k.html#aio これは、スレッドがI / O割り込み(イベント)に依存しながら、スレッドがユーザーの要求を処理できるようにすることで、Node.jsがサーバー上で行うことをほぼ要約していると思います。フルCPUジョブ。スレッドは、他のこと(非ブロッキング)を利用して、ジョブが完了したとき(たとえば、ファイルが見つかった、またはビデオが圧縮されたとき)に通知を受けることができます。 これは、その後、スレッドがソケット、つまりサーバー上のユーザーにとってより「利用可能」であることを意味します。 それから私はこれを見つけました:http : //teddziuba.com/2011/10/straight-talk-on-event-loops.html ライターは、イベント駆動型フレームワーク(割り込みスレッド)がスレッドを解放するかもしれないが、実際にはCPUがしなければならない作業量を減らさないと主張しています。ここでの理由は、たとえば、ユーザーがアップロードしたビデオを圧縮するように要求した場合、CPUは実際にこのジョブを実行する必要があり、それを実行中にブロックすることです(簡単にするために、ここでは並列性を忘れます-もっとよく知って!)。 私は簡単なコーダーであり、サーバー管理者などではありません。知りたいのは、Node.jsが「クラウドコンピューティング」の神からの贈り物なのか、それとも熱気であり、実際にスケーラビリティを改善して企業の時間やお金を節約できないのか、ということです。 どうもありがとう。

2
HTTPサーバーの作成方法
タイトルにあるように、HTTPサーバーを作成したいと思います。私の質問はこれですが、どうすればいいですか?これは非常に一般的で「高レベル」に聞こえますが、私の狂気には方法があります。この質問に対する答えは、言語にとらわれないようにすべきです。つまり、使用する言語(C、C ++、Javaなど)に関係なく、答えは同じでなければなりません。これがどのように機能するかについての一般的な考えがあります: ポート80でソケットを開きます。 クライアントがリクエストを行うのを待ちます。 リクエストを読みます(つまり、この人は「contact-us.html」ページを望んでいます)。 「contact-us.html」を見つけて読んでください。 htmlヘッダーを送信してから、「contact-us.html」のコンテンツを送信します 完了 私が言ったように、私はこれがプロセスであると信じます、しかし、私は100%確信がありません。これは私の質問の中心に私を導きます。人はこの情報をどのように、またはどこで見つけますか? HTTPサーバーだけを作成したくない場合、FTPサーバー、チャットサーバー、画像ビューアーなどを作成したい場合はどうなりますか?作業中のHTTPサーバーを作成するために必要な正確な手順/プロセスをどのようにして見つけるのですか? 同僚がhtmlヘッダーについて教えてくれたので、彼がいなければこれを知ることはなかったでしょう。彼はまた、各リクエストを新しいスレッドに渡すことについても述べました。物事の仕組みに関する大きな本はありますか?HTTPサーバーになるために必要なマニュアルはありますか? 「HTTPサーバーはどのように機能するか」をグーグルで試しましたが、見つけられる唯一の答えは、HTTPサーバーをプログラミングしたい人ではなく、平均的なJoeを対象としたものでした。

2
要求がサーバーに送信され、応答を待っている間にインターネット接続が失われた場合の対処方法
サーバーに大量のデータを送信しています。データを送信してサーバーからの応答を待っている間に、Androidデバイスが突然インターネット接続を失います。 だから、私がやったことは、接続が失われたという警告ダイアログを表示することですが、サーバー側ではデータが既に処理されており、URLなどでどこかで更新されました しかし、私のアンドロイド携帯電話は、これまでに応答を得られなかったので、これを知りません。解決方法。サーバー側で実行できるのか、それともアンドロイド自体で実行できるのか Androidフォンが応答をリッスンしないことをサーバーはどのように知るのでしょうか?これは、クライアントとサーバー間の通信の最適化の観点かもしれません。

3
安全なiPhoneアプリ↔サーバー通信
iOSアプリとそのサーバーコンポーネント間のプライベート通信を達成するための最良のアプローチは何でしょうか?単一の不変の「秘密鍵」がアプリのソースに十分に焼き付けられていますか、またはそのような「ハンドシェイク」鍵の世代を何らかの形で動的に設定する必要がありますか? サーバー自体には機密データへのアクセス権がないため、ユーザーがプライベートエンドポイントにヒットしても、どこにもアクセスできませんが、それらはパブリックから非表示にしたいだけです。基本的に、iOSアプリからの要求でない限り、特定のルートにヒットするすべてのリクエストを無視します。 サーバーコンポーネントは、重要な場合はRoRで実行されます。

5
ロードテスト:1秒あたりのリクエストを生成する方法
Zeroc-ICEで実行されるサーバーコンポーネントがあります。ロードテストをしたいとき、並列ライブラリを使用して複数の要求を作成すると思いました。しかし、それはそのようになってしまいます。C#のParallel(Parallel.For)ライブラリを使用する方が簡単なようですが、すべてを同じ瞬間に正確に生成しているようには見えません。したがって、1秒あたりN個の要求を作成するための定義にはなりません。どうすればいいですか?最初に負荷テストをしたい人はだれでも実際にこれについて考えると思います。 実際に1秒あたりN個のリクエストを実際に作成する効率的な方法は何ですか? もう1つの神話は、並列プログラミングに関するものです。一般的にC#または.Netで並列プログラミングパターンを使用している場合は、ご理解ください。5つのプロセスがあるとします。5つのプロセスすべてを同時に開始する方法。リソースを消費することはどういう意味ですか?私はネット上で入手可能な多くの資料を読んでみましたが、質問に対する答えよりも多くの質問があります。 Parallel.Forを使用して、N個のスレッドを作成し、時間を測定しました。次に、タスクの列挙にTask.Factory.startを使用して同じことを試みました。測定された時間は異なっていました。それで、これらを使用することの正確な違いは何ですか?対応するクラスをいつ使用し、どのような目的のために正確に使用する必要がありますか?私たちは多くの富を持っていることが多いのですが、それをどうやって区別するのか正確にはわかりません。これは私にとってそのようなケースの1つであり、なぜ別のものを使用すべきではないのかを見つけることができません。 私はストップウォッチクラスを使用して、これらの時間を測定しました。私のシナリオでは、コンポーネントの負荷テストで、応答時間を測定する方法は何でしょうか。ストップウォッチは私にとって最良の解決策のようです。ご意見をお待ちしています。 ps:Webアプリケーション用の負荷テストツールは多数あります。私のものは、サーバーコンポーネントのカスタマイズされたケースです。私の質問は、1秒あたりN個のスレッドの作成に関するものです。 すべての意見を歓迎します。プログラミングの問題ではないと考えないでください。もちろんです。自分で製品の品質を知りたいプログラマーが自分で製品のパフォーマンスを知りたい場合は、ベルを鳴らさなければなりません。

5
Web開発の役割のサーバーについて知っておくべきことは何ですか?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 6年前に閉鎖されました。 少しあいまいに聞こえるかもしれないので、もう少し説明してみます... 長年自営業の開発者であった後、私は現在商業的なWeb開発者の役割を探しています。サーバーとホスティングに関する私の唯一の経験は、FTPを介してアップロードし、CPanel / WHMを少し試してみることです。私が行っている役割は、Web開発のPHP、MySQL、HTML、CSSタイプの役割ですが、最近のインタビューでは、サーバーでの設定について質問を受けました。理想的ではありませんでした! 私以上のことを知らなければ、私が何を学ぼうとしているのかを正確に説明するのは難しいですが、それは基本的にウェブ開発者として知っておくべきサーバー要素だけなのでしょうか?Web開発者の場合、ファイルのアップロード以外にサーバーを扱うことはありますか?Subversion(SVN)やバージョン管理システムのようなものは、多くの場合、Web開発チームによってセットアップされていますか?

3
クライアント要求なしでサーバーからクライアントにデータをプッシュしますか?
Stack Exchangeの閲覧中に、「3つの新しいメッセージ、クリックして表示」などの動的な通知があることに気付きました。説明しようとしていることに対して、このような動的な更新が必要です。 最近のニュース記事10件のカルーセル/スライドショーを作成したいとします。このカルーセルは、キューで1時間ごとに更新されます。新しい記事は、古い記事をキューから押し出します。私の頭の上の解決策は次のようになります。 ユーザーがクライアントにログオンします。 クライアントは、次の時間マークまでの分数を計算し、その時間に実行するタイマーを設定します。 時間マークで、まだカルーセルに入っていない新しいニュース記事についてサーバーにリクエストを送信します。 応答を処理します。 タイマーをリセットします。 これは受け入れられる戦略ですか?クライアントのリクエストに依存せずにこれを達成できますか?言い換えれば、Stack Exchangeは動的更新をどのように実現していますか?
11 server  client 

3
マイクロvsモノリシックサーバーアーキテクチャ
現在、新しい製品/プロジェクトに取り組んでいます。これは、特定の特定の産業/サービス企業向けのクライアント/サーバーアプリケーションです。Javaフロントエンドを備えたTCP上でカスタムプロトコルを実行するサーバー(C言語およびLinuxのみ)を構築しています。私たちはコーディング作業に約20%取り組んでおり、マイクロカーネルアーキテクチャまたはモノリシックカーネルアーキテクチャを選択する必要がある状況に直面しています。 Micro vs. Monolithicは通常カーネルアーキテクチャに関連していることは承知していますが、具体的にはサーバーについて話しています。 既存のサーバーではなく、カスタムサーバーが必要な理由 UIのニーズは非常に大きく、非常に動的であるため、Web / Webブラウザーベースのソリューションは適切ではありませんでした。 統計処理はクライアント側で重要であるため、ブラウザーもほとんど役に立ちませんでした。(もちろん、サーバー側で処理を実行し、処理されたデータをクライアントに渡すこともできますが、これはサーバーの負荷が大きくなり、クライアントリソースが浪費されることを意味します)。 さらに、少なくとも3つのテクノロジー(JS / HTML / CSS)で1つのイベントを管理することで、砂漠の嵐の中で家を一掃するような全体の体験ができます。 マイクロサーバーとモノリシックサーバーはどうですか?あなたは何をしゃべってますか? 次の(仮想の)クライアント要求を検討してください。 request-id: 123 request-service: HistoricDataSets request-message: Fetch all records upto the year 2010 そのようなリクエストを受信すると、サーバーは通常、次のことを行います(簡単にするために、スレッドやフォークなどの同時実行技術は無視しています)。 リクエスト文字列を解析する アクションを特定する(HistoricDataSets LIMIT Year (2010)この場合はフェッチ) 永続化レイヤー(この例ではOracle、と言うことができます)と対話して、データをフェッチします。 プロトコルに従ってデータをフォーマットします。例: response-id:123 success:true response-text:DataSets このようにフォーマットされたデータでクライアントに応答します。 これは、モノリシックサーバー(すべてのOSの動作がカーネル空間で行われるモノリシックカーネルに似ています)と呼ばれるものです。 再度、同じリクエストを受け取り、今回はサーバーを考慮します(簡単にするため、共有メモリのみをIPCと仮定しました)。 Parserプロセスの共有メモリに要求を入れます Parserタスクを特定し、文字列を解析し、指示するExecutionerタスクを実行するためのプロセス。 次にExecutioner、Fomatterプロセスにデータを渡し、データをプロトコル文字列にフォーマットした後、サーバーに戻ります。 サーバーはそれをクライアントにディスパッチします(応答)。 もちろん、代わりのParser、ExecutionerそしてFormatterそれは、単一のが、別のプロセスだったかもしれません。これは、私たちがマイクロサーバーと呼んでいるものです(マイクロカーネルが最低限必要なことをやっていることに似ています)。サーバーは実質的にリスニングと応答のみを行いますが、すべてのステップは異なるプロセスによって処理されます。 どれを選ぶべきですか?混乱しています!モノリシックサーバーは試行およびテストされていますが(ほとんどのHTTP-Webサーバー?)、プログラミングが容易であり、同時実行性を非常にうまく処理できます。マイクロサーバーは、一見、迅速で、1つのタスクを実行する1つのプログラムというUNIXの原則に沿っているように見えますが、特に開発が複雑です。並行性を念頭に置いてください。 質問 -各アプローチの長所と短所は何ですか(場合によっては)。 …

2
サーバーレスアーキテクチャはどのようにデータベース接続を管理しますか?
サーバーレスアーキテクチャの主な利点は、そのようなプログラムが継続的に実行するために専用サーバーを必要としないことです。次に、要求時に呼び出され、関数の終了時に停止します。 つまり、レスポンシブであるためには、サーバーレスプログラムをすばやく起動する必要があります。次に、データベース接続などの時間のかかるアクションをどのように処理しますか?それは毎回データベースに接続しますか、それともサーバー接続で行われるような関数呼び出しのためにデータベース接続を個別に管理しますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.