インターネット Java エンジニア 高度な知識 完全なリテラシー
このプロジェクトのコンテンツのほとんどは中国の Hushan によるもので、著作権は著者に帰属します。コンテンツには、高同時実行性、分散、高可用性、マイクロサービス、大規模データ処理の分野の知識が含まれています。読者の学習と参照を容易にするために、この部分の知識を体系的に整理しました。
アルゴリズムプロジェクトの更新にも力を入れています!筆記面接アルゴリズムの準備をしている場合、またはコーディング スキルをさらに向上させたい場合は、スターに登録して doocs/leetcode をフォローしてください。
このプロジェクトを検討する前に、ディスカッション フォーラムの技術インタビュアーの発言を見てみましょう。このプロジェクトでは、すべての開発者の友人がアイデアや実際の経験をディスカッション フォーラムで共有することを歓迎します。 Star で doocs/advanced-java をフォローして、プロジェクトの最新の開発状況を追跡することもできます。
高い同時実行性のアーキテクチャ
メッセージキュー
- メッセージキューを使用する理由メッセージキューの長所と短所は何ですか? Kafka、ActiveMQ、RabbitMQ、RocketMQ の長所と短所は何ですか?
- メッセージキューの高可用性を確保するにはどうすればよいですか?
- メッセージが繰り返し消費されないようにするにはどうすればよいでしょうか? (メッセージ消費の冪等性を確保する方法)
- メッセージを確実に送信するにはどうすればよいでしょうか? (メッセージ消失問題への対処方法)
- メッセージの順序を確認するにはどうすればよいですか?
- メッセージキューの遅延と有効期限の問題を解決するにはどうすればよいですか?メッセージキューがいっぱいになった場合はどうすればよいでしょうか?数時間にわたって滞留しているメッセージが何百万件もあります。どうすれば解決できるでしょうか。
- メッセージ キューを作成するように頼まれた場合、アーキテクチャをどのように設計しますか?あなたの考えを教えてください。
検索エンジン
- ES の分散アーキテクチャの原理 (ES はどのようにして分散を実現するのか) を説明できますか?
- ES のデータ書き込みはどのように機能しますか? ES クエリ データはどのように機能しますか?基礎となる Lucene を紹介してもらえますか?転置インデックスってご存知ですか?
- データ量が大きい場合 (数十億レベル)、ES はどのようにクエリ効率を向上させることができるでしょうか?
- ES 本番クラスターのデプロイメント アーキテクチャとは何ですか?各インデックスにはおよそどのくらいのデータがありますか?インデックスごとにおよそ何個のシャードがありますか?
キャッシュ
- プロジェクトでキャッシュはどのように使用されますか?キャッシュを誤って使用するとどのような影響がありますか?
- Redis と Memcached の違いは何ですか? Redis のスレッド モデルとは何ですか?シングルスレッドの Redis がマルチスレッドの Memcached よりもはるかに効率的であるのはなぜですか?
- Redis にはどのようなデータ型がありますか?どのシナリオで使用するのがより適していますか?
- Redis の有効期限戦略は何ですか? LRU コードを手書きで書くことはできますか?
- Redis の高い同時実行性と高可用性を確保するにはどうすればよいですか? Redis のマスター/スレーブ レプリケーションの原理を紹介していただけますか? Redis のセンチネル原理を紹介していただけますか?
- Redis のマスター/スレーブ アーキテクチャとは何ですか?
- Redis Sentinel Cluster はどのようにして高可用性を実現しますか?
- Redis の永続化メソッドは何ですか?さまざまな永続化メカニズムの長所と短所は何ですか?基礎となる永続化メカニズムはどのように実装されていますか?
- Redis クラスター モードがどのように機能するか説明していただけますか?クラスター モードでは、Redis キーはどのようにアドレス指定されますか?分散アドレス指定のアルゴリズムは何ですか?一貫性のあるハッシュ アルゴリズムを理解していますか?ノードを動的に追加および削除するにはどうすればよいですか?
- Redis の雪崩、侵入、およびブレークダウンとは何か理解していますか? Redis がクラッシュした後はどうなりますか?システムはこの状況にどのように対処すべきでしょうか? Redis の侵入にどう対処するか?
- キャッシュとデータベース間の二重書き込みの一貫性を確保するにはどうすればよいですか?
- Redis における同時実行競合の問題とは何ですか?この問題を解決するにはどうすればよいでしょうか? Redis トランザクション用の CAS ソリューションをご存知ですか?
- Redis は運用環境にどのようにデプロイされますか?
- Redis の再ハッシュのプロセスを理解したことがありますか?
サブデータベースとサブテーブル
- なぜデータベースとテーブルを分割する必要があるのでしょうか (同時実行性の高いシステムを設計する場合、データベース レベルをどのように設計する必要がありますか)。どのデータベースおよびテーブル シャーディング ミドルウェアを使用したことがありますか?さまざまなサブデータベースおよびサブテーブルミドルウェアの長所と短所は何ですか?データベースを垂直または水平に分割するにはどうすればよいですか?
- 現在、データベースとテーブルに分割されていないシステムがありますが、将来的にはデータベースとテーブルが分割されていない状態から、分割されたデータベースとテーブルに動的に切り替わるように設計するにはどうすればよいでしょうか。
- 動的に拡張および縮小できるサブデータベースとテーブルのスキームを設計するにはどうすればよいですか?
- データベースをテーブルに分割した後、主キー ID はどのように処理すればよいでしょうか?
読み取りと書き込みの分離
- MySQL で読み取りと書き込みの分離を実現するにはどうすればよいですか? MySQL のマスター/スレーブ レプリケーションの原理は何ですか? MySQL のマスター/スレーブ同期の遅延問題を解決するにはどうすればよいですか?
高度な同時実行システム
- 同時実行性の高いシステムを設計するにはどうすればよいでしょうか?
分散システム
連続インタビュー爆撃
システム分割
- なぜシステムが分割されるのか?システム分割を実行するにはどうすればよいですか?分割後ダボは使わなくても大丈夫でしょうか?
分散サービスフレームワーク
- ダボの仕組みを教えてください。登録センターがダウンした場合でも通信は継続できますか?
- Dubbo はどのシリアル化プロトコルをサポートしていますか?ヘッセ行列のデータ構造について教えてください。 PBは知っていますか?なぜ PB が最も効率的ですか?
- Dubbo のロード バランシング戦略とクラスター フォールト トレランス戦略とは何ですか?動的プロキシ戦略についてはどうですか?
- ダボのspiアイデアとは何ですか?
- Dubbo に基づいてサービス ガバナンス、サービスの低下、失敗の再試行、タイムアウトの再試行を実行するにはどうすればよいですか?
- 分散サービス インターフェイスの冪等性 (たとえば、演繹を繰り返さない) をどのように設計するか?
- 分散サービスインターフェイスリクエストの順序を保証するにはどうすればよいですか?
- Dubbo に似た RPC フレームワークを自分で設計するにはどうすればよいでしょうか?
- CAP定理のPとは何ですか?
分散ロック
- Zookeeper のアプリケーション シナリオは何ですか?
- Redis を使用して分散ロックを設計するにはどうすればよいですか? Zookeeper を使用して分散ロックを設計することはできますか?上記の 2 つの分散ロック実装方法のどちらがより効率的ですか?
分散トランザクション
- 分散トランザクションを理解していますか?分散トランザクションの問題をどのように解決しますか? TCC ネットワークに接続できない場合はどうすればよいですか? XA の一貫性を確保するにはどうすればよいですか?
分散セッション
- クラスターの展開中に分散セッションを実装するにはどうすればよいですか?
高可用性アーキテクチャ
- ハイストリックスの紹介
- 電子商取引 Web サイトの詳細ページのシステム アーキテクチャ
- Hystrix スレッド プール テクノロジーはリソース分離を実装します。
- Hystrix セマフォ メカニズムはリソース分離を実装します。
- Hystrix 分離ポリシーのきめ細かい制御
- Hystrix 実行内部の詳細
- リクエスト キャッシュ リクエスト キャッシュ テクノロジに基づいてバッチ製品データ クエリ インターフェイスを最適化します。
- ローカルキャッシュに基づくフォールバック劣化メカニズム
- Hystrix サーキットブレーカーの動作原理の詳細
- Hystrix スレッド プールの分離とインターフェイス電流制限の詳細
- タイムアウトメカニズムに基づいてサービスインターフェイス呼び出しタイムアウトのセキュリティ保護を提供します
高可用性システム
- 高可用性システムを設計するにはどうすればよいでしょうか?
電流制限
- 流れを制限するにはどうすればよいですか?仕事ではどうやってやってるの?具体的な実装について教えてください。
ヒューズ
- サーキットブレーカーを実行するにはどうすればよいですか?
- ヒューズのフレームワークとは何ですか?具体的な実装原理をご存知ですか?
- ヒューズフレームの技術的な選択はどのように行うのですか?センチネルかヒストリックスか?
ダウングレード
マイクロサービスアーキテクチャ
- マイクロサービス アーキテクチャに関する章全体は追加の追加であり、後で更新される予定です。読者も補足的な改善に参加することを歓迎します。
- マイクロサービスアーキテクチャの説明
- モノリシック アーキテクチャからマイクロサービス アーキテクチャへの移行
- マイクロサービスのイベント駆動型データ管理
- マイクロサービスの導入戦略を選択する
- マイクロサービスアーキテクチャのメリットとデメリット
Spring Cloud マイクロサービス アーキテクチャ
- マイクロサービスとは何ですか?マイクロサービスはどのようにして独立して通信するのでしょうか?
- Spring Cloud と Dubbo の違いは何ですか?
- Spring Boot と Spring Cloud、それらについてのあなたの理解について話してください。
- サービスサーキットブレーカーとは何ですか?サービスのダウングレードとは何ですか?
- マイクロサービスの長所と短所は何ですか?プロジェクト開発中に遭遇した落とし穴について教えてください。
- どのようなマイクロサービス テクノロジー スタックを知っていますか?
- マイクロサービスガバナンス戦略
- Eureka と Zookeeper は両方ともサービス登録および検出機能を提供できます。両者の違いは何ですか?
- サービス検出コンポーネント Eureka の主な呼び出しプロセスについて話しましょう。
- ...
大規模なデータ処理
- 大量の URL から同じ URL を見つけるにはどうすればよいですか?
- 大量のデータから頻度の高い単語を見つけるにはどうすればよいでしょうか?
- 特定の日に百度 Web サイトに最も多くアクセスする IP を見つけるにはどうすればよいですか?
- 大量のデータから一意の整数を見つけるにはどうすればよいでしょうか?
- 大量のデータの中に数値が存在するかどうかを判断するにはどうすればよいでしょうか?
- 最も人気のあるクエリ文字列をクエリするにはどうすればよいでしょうか?
- 異なる電話番号の数を数えるにはどうすればよいですか?
- 5億の数字から中央値を見つけるにはどうすればよいですか?
- クエリの頻度で並べ替えるにはどうすればよいですか?
- 上位 500 位の数字を見つけるにはどうすればよいですか?
- ビッグデータにおける TopK 問題の一般的なルーチンについて教えてください。
スターのトレンド
注: このトレンド チャートは、actions-starcharts (作成者 @MaoLongLong) によって定期的に自動的に更新されます。
Doocs コミュニティの高品質プロジェクト
Doocs テクノロジー コミュニティは、インターネット開発者向けの完全かつ継続的に成長する学習エコシステムの構築に取り組んでいます。以下に Doocs の優れたプロジェクトをいくつか紹介します。開発者の皆様は今後も注目してください。
# | プロジェクト | 説明する | 熱 |
---|
1 | 高度な Java | インターネット Java エンジニアは高度な知識を完全に習得しており、高同時実行性、分散、高可用性、マイクロサービス、大規模データ処理などの分野の知識をカバーしています。 |
|
2 | リートコード | LeetCode を実装したさまざまなプログラミング言語、「Sword Pointer Offer (第 2 版)」、「プログラマー面接コード (第 6 版)」の問題解決策。 |
|
3 | ソースコードハンター | 一般的なインターネット コンポーネント フレームワークのソース コード分析。 |
|
4 | jvm | Java 仮想マシンの基礎となる原理に関する知識の概要。 |
|
5 | コーディングインタビュー | 「提供する剣のポイント」「プログラミングの美しさ」などを含む、コーディング面接の質問集。 |
|
6 | MD | 非常に簡潔な WeChat Markdown エディター。 |
|
7 | 技術書 | 読む価値のある技術書籍のリスト。 |
|
投稿者
Doocs 技術コミュニティへの貢献に感謝します。プロジェクトのメンテナンスに参加するには、ここをクリックしてください。
公式アカウント
Doocs テクノロジー コミュニティの唯一の公開アカウント「 Doocs 」。QR コードをスキャンしてフォローしてください。技術分野の関連知識や最新の業界情報の共有に重点を置いています。もちろん、私の個人 WeChat アカウント (注: GitHub) を追加して、技術交流グループに参加させることもできます。
「 Doocs 」公開アカウントをフォローし、 PDFに返信すると、このプロジェクトのオフライン PDF ドキュメント (エッセンス 283 ページ) が入手できるので、学習がさらに便利になります。