diff --git a/README_JA.md b/README_JA.md new file mode 100644 index 00000000000..1ca8bc8626e --- /dev/null +++ b/README_JA.md @@ -0,0 +1,452 @@ +より快適でスピーディーな体験のため、オンライン閲覧プラットフォームでの閲覧をおすすめします!リンク: [javaguide.cn](https://javaguide.cn/)。 + +
+ +[![logo](https://oss.javaguide.cn/github/javaguide/csdn/1c00413c65d1995993bf2b0daf7b4f03.png)](https://github.com/Snailclimb/JavaGuide) + +[GitHub](https://github.com/Snailclimb/JavaGuide) | [Gitee](https://gitee.com/SnailClimb/JavaGuide) + +Snailclimb%2FJavaGuide | Trendshift + +
+ +> - **面接版**: Java の面接対策をしている方は、**[《Java 面接ガイド》](./docs/zhuanlan/java-mian-shi-zhi-bei.md)**(高品質で、面接向けに特化して設計されており、JavaGuide と併用するのがおすすめです)を検討してみてください。 +> - **知識惑星(Knowledge Planet)**: 限定の面接ミニ書籍/1 対 1 のコミュニケーション/履歴書の添削/限定の就職活動ガイドなど、**[JavaGuide 知識惑星](./docs/about-the-author/zhishixingqiu-two-years.md)** への参加を歓迎します(リンクをクリックすると惑星の詳しい紹介を確認できます。本当に必要かどうかを見極めてから参加してください)。 +> - **使い方の提案**: 経験豊富な面接官は、プロジェクト経験に沿って技術的な問題を深掘りしてくるものです。技術記事を丸暗記するのは絶対にやめましょう!詳しい学習の提案については [JavaGuide 使い方の提案](./docs/javaguide/use-suggestion.md) を参照してください。 +> - **Star のお願い**: JavaGuide の内容が役に立ったと感じたら、ぜひ無料の Star をお願いします。それが私にとって最大の励みになります。共に歩み、共に努力してくれる皆さん、ありがとうございます!Github リンク: [https://github.com/Snailclimb/JavaGuide](https://github.com/Snailclimb/JavaGuide)。 +> - **転載に関する注意**: 以下のすべての記事は、冒頭に特に断りがない限り、JavaGuide のオリジナル作品です。転載の際は出典を明記してください。悪質な盗用・コピーが発見された場合は、法的手段を用いて権利を守ります。皆で良質な技術創作環境を維持していきましょう! + +
+ +
+ + + +## プロジェクト関連 + +- [プロジェクト紹介](https://javaguide.cn/javaguide/intro.html) +- [使い方の提案](https://javaguide.cn/javaguide/use-suggestion.html) +- [コントリビューションガイド](https://javaguide.cn/javaguide/contribution-guideline.html) +- [FAQ](https://javaguide.cn/javaguide/faq.html) + +## Java + +### 基礎 + +**知識ポイント/面接問題のまとめ**: (必見 :+1:): + +- [Java 基礎のよく出る知識ポイント&面接問題まとめ(その 1)](./docs/java/basis/java-basic-questions-01.md) +- [Java 基礎のよく出る知識ポイント&面接問題まとめ(その 2)](./docs/java/basis/java-basic-questions-02.md) +- [Java 基礎のよく出る知識ポイント&面接問題まとめ(その 3)](./docs/java/basis/java-basic-questions-03.md) + +**重要な知識ポイントの解説**: + +- [Java はなぜ値渡ししかないのか?](./docs/java/basis/why-there-only-value-passing-in-java.md) +- [Java のシリアライズ詳解](./docs/java/basis/serialization.md) +- [ジェネリクス&ワイルドカード詳解](./docs/java/basis/generics-and-wildcards.md) +- [Java リフレクション機構詳解](./docs/java/basis/reflection.md) +- [Java プロキシパターン詳解](./docs/java/basis/proxy.md) +- [BigDecimal 詳解](./docs/java/basis/bigdecimal.md) +- [Java のマジッククラス Unsafe 詳解](./docs/java/basis/unsafe.md) +- [Java SPI 機構詳解](./docs/java/basis/spi.md) +- [Java のシンタックスシュガー詳解](./docs/java/basis/syntactic-sugar.md) + +### コレクション + +**知識ポイント/面接問題のまとめ**: + +- [Java コレクションのよく出る知識ポイント&面接問題まとめ(その 1)](./docs/java/collection/java-collection-questions-01.md) (必見 :+1:) +- [Java コレクションのよく出る知識ポイント&面接問題まとめ(その 2)](./docs/java/collection/java-collection-questions-02.md) (必見 :+1:) +- [Java コンテナ使用上の注意点まとめ](./docs/java/collection/java-collection-precautions-for-use.md) + +**ソースコード解析**: + +- [ArrayList コアソースコード+拡張メカニズム解析](./docs/java/collection/arraylist-source-code.md) +- [LinkedList コアソースコード解析](./docs/java/collection/linkedlist-source-code.md) +- [HashMap コアソースコード+基盤データ構造解析](./docs/java/collection/hashmap-source-code.md) + +# Java コレクション&並行処理シリーズ + +## コレクション + +- [ConcurrentHashMap コアソースコード+基盤データ構造解析](./docs/java/collection/concurrent-hash-map-source-code.md) +- [LinkedHashMap コアソースコード解析](./docs/java/collection/linkedhashmap-source-code.md) +- [CopyOnWriteArrayList コアソースコード解析](./docs/java/collection/copyonwritearraylist-source-code.md) +- [ArrayBlockingQueue コアソースコード解析](./docs/java/collection/arrayblockingqueue-source-code.md) +- [PriorityQueue コアソースコード解析](./docs/java/collection/priorityqueue-source-code.md) +- [DelayQueue コアソースコード解析](./docs/java/collection/delayqueue-source-code.md) + +### IO + +- [IO 基礎知識まとめ](./docs/java/io/io-basis.md) +- [IO デザインパターンまとめ](./docs/java/io/io-design-patterns.md) +- [IO モデル詳解](./docs/java/io/io-model.md) +- [NIO コア知識まとめ](./docs/java/io/nio-basis.md) + +### 並行処理 + +**知識ポイント/面接問題のまとめ** : (必読 :+1:) + +- [Java 並行処理のよく出る知識ポイント&面接問題まとめ(その 1)](./docs/java/concurrent/java-concurrent-questions-01.md) +- [Java 並行処理のよく出る知識ポイント&面接問題まとめ(その 2)](./docs/java/concurrent/java-concurrent-questions-02.md) +- [Java 並行処理のよく出る知識ポイント&面接問題まとめ(その 3)](./docs/java/concurrent/java-concurrent-questions-03.md) + +**重要な知識ポイントの解説**: + +- [楽観ロックと悲観ロック詳解](./docs/java/concurrent/optimistic-lock-and-pessimistic-lock.md) +- [CAS 詳解](./docs/java/concurrent/cas.md) +- [JMM(Java メモリモデル)詳解](./docs/java/concurrent/jmm.md) +- **スレッドプール**: [Java スレッドプール詳解](./docs/java/concurrent/java-thread-pool-summary.md)、[Java スレッドプールのベストプラクティス](./docs/java/concurrent/java-thread-pool-best-practices.md) +- [ThreadLocal 詳解](./docs/java/concurrent/threadlocal.md) +- [Java 並行コレクションまとめ](./docs/java/concurrent/java-concurrent-collections.md) +- [Atomic クラスまとめ](./docs/java/concurrent/atomic-classes.md) +- [AQS 詳解](./docs/java/concurrent/aqs.md) +- [CompletableFuture 詳解](./docs/java/concurrent/completablefuture-intro.md) + +### JVM (必読 :+1:) + +JVM の部分は主に [JVM 仕様 - Java 8](https://docs.oracle.com/javase/specs/jvms/se8/html/index.html) と、周志明氏の著書 [《Java 仮想マシンの深い理解(第 3 版)》](https://book.douban.com/subject/34907497/)(何度も読むことを強くおすすめします!)を参考にしています。 + +- **[Java メモリ領域](./docs/java/jvm/memory-area.md)** +- **[JVM ガベージコレクション](./docs/java/jvm/jvm-garbage-collection.md)** +- [クラスファイルの構造](./docs/java/jvm/class-file-structure.md) +- **[クラスローディングのプロセス](./docs/java/jvm/class-loading-process.md)** +- [クラスローダー](./docs/java/jvm/classloader.md) +- [【未完成】最も重要な JVM パラメータまとめ(一部翻訳)](./docs/java/jvm/jvm-parameters-intro.md) +- [【おまけ】わかりやすく学ぶ JVM](./docs/java/jvm/jvm-intro.md) +- [JDK 監視・トラブルシューティングツール](./docs/java/jvm/jdk-monitoring-and-troubleshooting-tools.md) + +### 新機能 + +- **Java 8**: [Java 8 新機能まとめ(翻訳)](./docs/java/new-features/java8-tutorial-translate.md)、[Java 8 のよく使う新機能まとめ](./docs/java/new-features/java8-common-new-features.md) +- [Java 9 新機能概要](./docs/java/new-features/java9.md) +- [Java 10 新機能概要](./docs/java/new-features/java10.md) +- [Java 11 新機能概要](./docs/java/new-features/java11.md) +- [Java 12 & 13 新機能概要](./docs/java/new-features/java12-13.md) +- [Java 14 & 15 新機能概要](./docs/java/new-features/java14-15.md) +- [Java 16 新機能概要](./docs/java/new-features/java16.md) +- [Java 17 新機能概要](./docs/java/new-features/java17.md) +- [Java 18 新機能概要](./docs/java/new-features/java18.md) +- [Java 19 新機能概要](./docs/java/new-features/java19.md) +- [Java 20 新機能概要](./docs/java/new-features/java20.md) + +# Java 21、22、23、24、25 の新機能概要 + +## コンピュータ基礎 + +### オペレーティングシステム + +- [オペレーティングシステムのよく出る知識ポイント&面接問題まとめ(その 1)](./docs/cs-basics/operating-system/operating-system-basic-questions-01.md) +- [オペレーティングシステムのよく出る知識ポイント&面接問題まとめ(その 2)](./docs/cs-basics/operating-system/operating-system-basic-questions-02.md) +- **Linux**: + - [バックエンド開発者が押さえておくべき Linux 基礎まとめ](./docs/cs-basics/operating-system/linux-intro.md) + - [シェルスクリプト基礎まとめ](./docs/cs-basics/operating-system/shell-intro.md) + +### ネットワーク + +**知識ポイント/面接問題のまとめ**: + +- [コンピュータネットワークのよく出る知識ポイント&面接問題まとめ(その 1)](./docs/cs-basics/network/other-network-questions.md) +- [コンピュータネットワークのよく出る知識ポイント&面接問題まとめ(その 2)](./docs/cs-basics/network/other-network-questions2.md) +- [謝希仁教授『コンピュータネットワーク』内容まとめ(補足)](./docs/cs-basics/network/computer-network-xiexiren-summary.md) + +**重要概念の解説**: + +- [OSI と TCP/IP ネットワーク階層モデル詳解(基礎)](./docs/cs-basics/network/osi-and-tcp-ip-model.md) +- [よく使うアプリケーション層プロトコルまとめ(アプリケーション層)](./docs/cs-basics/network/application-layer-protocol.md) +- [HTTP と HTTPS の比較(アプリケーション層)](./docs/cs-basics/network/http-vs-https.md) +- [HTTP 1.0 と HTTP 1.1 の比較(アプリケーション層)](./docs/cs-basics/network/http1.0-vs-http1.1.md) +- [よく出る HTTP ステータスコード(アプリケーション層)](./docs/cs-basics/network/http-status-codes.md) +- [DNS ドメインネームシステム詳解(アプリケーション層)](./docs/cs-basics/network/dns.md) +- [TCP の 3 ウェイハンドシェイクと 4 ウェイハンドシェイク(トランスポート層)](./docs/cs-basics/network/tcp-connection-and-disconnection.md) +- [TCP 通信の信頼性保証(トランスポート層)](./docs/cs-basics/network/tcp-reliability-guarantee.md) +- [ARP プロトコル詳解(ネットワーク層)](./docs/cs-basics/network/arp.md) +- [NAT プロトコル詳解(ネットワーク層)](./docs/cs-basics/network/nat.md) +- [よくあるネットワーク攻撃手段まとめ(セキュリティ)](./docs/cs-basics/network/network-attack-means.md) + +### データ構造 + +**図解データ構造:** + +- [線形データ構造: 配列、連結リスト、スタック、キュー](./docs/cs-basics/data-structure/linear-data-structure.md) +- [グラフ](./docs/cs-basics/data-structure/graph.md) +- [ヒープ](./docs/cs-basics/data-structure/heap.md) +- [木](./docs/cs-basics/data-structure/tree.md): [赤黒木](./docs/cs-basics/data-structure/red-black-tree.md)、B 木、B+ 木、B\* 木、LSM 木を重点的に解説 + +その他のよく使うデータ構造: + +- [ブルームフィルター](./docs/cs-basics/data-structure/bloom-filter.md) + +### アルゴリズム + +アルゴリズムの部分は非常に重要です。アルゴリズムの学習方法がわからない場合は、以下を参考にしてください: + +- [おすすめのアルゴリズム学習書籍・リソース](https://www.zhihu.com/question/323359308/answer/1545320858)。 +- [LeetCode の問題はどう解くべきか?](https://www.zhihu.com/question/31092580/answer/1534887374) + +**よく出るアルゴリズム問題まとめ**: + +- [よく出る文字列アルゴリズム問題まとめ](./docs/cs-basics/algorithms/string-algorithm-problems.md) +- [よく出る連結リストアルゴリズム問題まとめ](./docs/cs-basics/algorithms/linkedlist-algorithm-problems.md) +- [『剣指 Offer』のコーディング問題(一部)](./docs/cs-basics/algorithms/the-sword-refers-to-offer.md) +- [10 大古典ソートアルゴリズム](./docs/cs-basics/algorithms/10-classical-sorting-algorithms.md) + +さらに、[GeeksforGeeks](https://www.geeksforgeeks.org/fundamentals-of-algorithms/) には、よく使うアルゴリズムの包括的なまとめがあります。 + +## データベース + +### 基礎 + +- [データベース基礎まとめ](./docs/database/basis.md) +- [NoSQL 基礎まとめ](./docs/database/nosql.md) +- [文字セット詳解](./docs/database/character-set.md) +- SQL: + - [SQL 構文基礎まとめ](./docs/database/sql/sql-syntax-summary.md) + - [よく出る SQL 面接問題まとめ](./docs/database/sql/sql-questions-01.md) + +### MySQL + +**知識ポイント/面接問題のまとめ:** + +# MySQL のよく出る知識ポイント&面接問題まとめ (必読 :+1:) + +- [MySQL のよく出る知識ポイント&面接問題まとめ](./docs/database/mysql/mysql-questions-01.md) +- [MySQL 高性能最適化の規範に関する提案](./docs/database/mysql/mysql-high-performance-optimization-specification-recommendations.md) + +**重要な知識ポイント:** + +- [MySQL インデックス詳解](./docs/database/mysql/mysql-index.md) +- [MySQL トランザクション分離レベル詳解(図解付き)](./docs/database/mysql/transaction-isolation-level.md) +- [MySQL の 3 つのログ詳解(binlog、redo log、undo log)](./docs/database/mysql/mysql-logs.md) +- [InnoDB ストレージエンジンによる MVCC の実装](./docs/database/mysql/innodb-implementation-of-mvcc.md) +- [MySQL における SQL 文の実行プロセス](./docs/database/mysql/how-sql-executed-in-mysql.md) +- [MySQL クエリキャッシュ詳解](./docs/database/mysql/mysql-query-cache.md) +- [MySQL クエリ実行計画の分析](./docs/database/mysql/mysql-query-execution-plan.md) +- [MySQL の自動増分主キーは常に連続するのか?](./docs/database/mysql/mysql-auto-increment-primary-key-continuous.md) +- [データベースへの時間関連データ保存に関する提案](./docs/database/mysql/some-thoughts-on-database-storage-time.md) +- [MySQL における暗黙の型変換が引き起こすインデックス無効化](./docs/database/mysql/index-invalidation-caused-by-implicit-conversion.md) + +### Redis + +**知識ポイント/面接問題のまとめ** (必読 :+1:): + +- [Redis のよく出る知識ポイント&面接問題まとめ(その 1)](./docs/database/redis/redis-questions-01.md) +- [Redis のよく出る知識ポイント&面接問題まとめ(その 2)](./docs/database/redis/redis-questions-02.md) + +**重要な知識ポイント:** + +- [よく使う 3 つのキャッシュ読み書き戦略詳解](./docs/database/redis/3-commonly-used-cache-read-and-write-strategies.md) +- [Redis をメッセージキューとして使えるか?どう実装するか?](./docs/database/redis/redis-stream-mq.md) +- [Redis の 5 つの基本データ構造詳解](./docs/database/redis/redis-data-structures-01.md) +- [Redis の 3 つの特殊データ構造詳解](./docs/database/redis/redis-data-structures-02.md) +- [Redis 永続化メカニズム詳解](./docs/database/redis/redis-persistence.md) +- [Redis メモリ断片化詳解](./docs/database/redis/redis-memory-fragmentation.md) +- [Redis ブロッキングのよくある原因まとめ](./docs/database/redis/redis-common-blocking-problems-summary.md) +- [Redis クラスタ詳解](./docs/database/redis/redis-cluster.md) + +### MongoDB + +- [MongoDB のよく出る知識ポイント&面接問題まとめ(その 1)](./docs/database/mongodb/mongodb-questions-01.md) +- [MongoDB のよく出る知識ポイント&面接問題まとめ(その 2)](./docs/database/mongodb/mongodb-questions-02.md) + +## 検索エンジン + +[Elasticsearch のよく出る面接問題まとめ(有料)](./docs/database/elasticsearch/elasticsearch-questions-01.md) + +![JavaGuide 公式公衆号](https://oss.javaguide.cn/github/javaguide/gongzhonghaoxuanchuan.png) + +## 開発ツール + +### Maven + +- [Maven コアコンセプトまとめ](./docs/tools/maven/maven-core-concepts.md) +- [Maven ベストプラクティス](./docs/tools/maven/maven-best-practices.md) + +### Gradle + +[Gradle コアコンセプトまとめ](./docs/tools/gradle/gradle-core-concepts.md)(任意。中国では依然として Maven のほうが広く使われています) + +### Docker + +- [Docker コアコンセプトまとめ](./docs/tools/docker/docker-intro.md) +- [Docker 実践](./docs/tools/docker/docker-in-action.md) + +### Git + +- [Git コアコンセプトまとめ](./docs/tools/git/git-intro.md) +- [役立つ GitHub の便利テクニックまとめ](./docs/tools/git/github-tips.md) + +## システム設計 + +- [よく出るシステム設計の面接問題まとめ](./docs/system-design/system-design-questions.md) +- [よく出るデザインパターンの面接問題まとめ](./docs/system-design/design-pattern.md) + +### 基礎 + +- [RESTful API 簡易チュートリアル](./docs/system-design/basis/RESTfulAPI.md) +- [ソフトウェア工学簡易チュートリアル](./docs/system-design/basis/software-engineering.md) +- [コード命名ガイド](./docs/system-design/basis/naming.md) +- [コードリファクタリングガイド](./docs/system-design/basis/refactoring.md) +- [単体テストガイド](./docs/system-design/basis/unit-test.md) + +### よく使うフレームワーク + +#### Spring/SpringBoot (必読 :+1:) + +**知識ポイント/面接問題のまとめ**: + +- [Spring のよく出る知識ポイント&面接問題まとめ](./docs/system-design/framework/spring/spring-knowledge-and-questions-summary.md) +- [SpringBoot のよく出る知識ポイント&面接問題まとめ](./docs/system-design/framework/spring/springboot-knowledge-and-questions-summary.md) +- [Spring/SpringBoot のよく使うアノテーションまとめ](./docs/system-design/framework/spring/spring-common-annotations.md) +- [SpringBoot 初心者ガイド](https://github.com/Snailclimb/springboot-guide) + +**重要な知識ポイントの詳解**: + +- [IoC & AOP 詳解(さっと理解する)](./docs/system-design/framework/spring/ioc-and-aop.md) +- [Spring トランザクション詳解](./docs/system-design/framework/spring/spring-transaction.md) +- [Spring におけるデザインパターン詳解](./docs/system-design/framework/spring/spring-design-patterns-summary.md) +- [SpringBoot 自動構成の原理詳解](./docs/system-design/framework/spring/spring-boot-auto-assembly-principles.md) + +#### MyBatis + +[よく出る MyBatis 面接問題まとめ](./docs/system-design/framework/mybatis/mybatis-interview.md) + +### セキュリティ + +#### 認証と認可 + +- [認証と認可の基礎詳解](./docs/system-design/security/basis-of-authority-certification.md) +- [JWT 基礎詳解](./docs/system-design/security/jwt-intro.md) +- [JWT のメリット・デメリットの分析とよくある問題の解決策](./docs/system-design/security/advantages-and-disadvantages-of-jwt.md) +- [SSO(シングルサインオン)詳解](./docs/system-design/security/sso-intro.md) +- [権限システム設計詳解](./docs/system-design/security/design-of-authority-system.md) + +#### データセキュリティ + +- [よく使う暗号化アルゴリズムまとめ](./docs/system-design/security/encryption-algorithms.md) +- [禁止ワードフィルタリングのソリューションまとめ](./docs/system-design/security/sentive-words-filter.md) +- [データマスキングのソリューションまとめ](./docs/system-design/security/data-desensitization.md) +- [なぜフロントエンドとバックエンドの両方でデータ検証を行う必要があるのか](./docs/system-design/security/data-validation.md) + +### スケジュールタスク + +[Java スケジュールタスク詳解](./docs/system-design/schedule-task.md) + +### Web リアルタイムメッセージプッシュ + +[Web リアルタイムメッセージプッシュ詳解](./docs/system-design/web-real-time-message-push.md) + +## 分散システム + +### 理論、アルゴリズム、プロトコル + +- [CAP 理論と BASE 理論の解説](https://javaguide.cn/distributed-system/protocol/cap-and-base-theorem.html) +- [Paxos アルゴリズムの解説](https://javaguide.cn/distributed-system/protocol/paxos-algorithm.html) +- [Raft アルゴリズムの解説](https://javaguide.cn/distributed-system/protocol/raft-algorithm.html) +- [Gossip プロトコル詳解](https://javaguide.cn/distributed-system/protocol/gossip-protocol.html) +- [コンシステントハッシュアルゴリズム詳解](https://javaguide.cn/distributed-system/protocol/consistent-hashing.html) + +### RPC + +- [RPC 基礎まとめ](https://javaguide.cn/distributed-system/rpc/rpc-intro.html) +- [Dubbo のよく出る知識ポイント&面接問題まとめ](https://javaguide.cn/distributed-system/rpc/dubbo.html) + +### ZooKeeper + +> この 2 つの記事は内容が一部重複している可能性がありますが、両方読むことをおすすめします。 + +- [ZooKeeper 関連概念まとめ(入門)](https://javaguide.cn/distributed-system/distributed-process-coordination/zookeeper/zookeeper-intro.html) +- [ZooKeeper 関連概念まとめ(応用)](https://javaguide.cn/distributed-system/distributed-process-coordination/zookeeper/zookeeper-plus.html) + +### API ゲートウェイ + +- [API ゲートウェイ基礎まとめ](https://javaguide.cn/distributed-system/api-gateway.html) +- [Spring Cloud Gateway のよく出る知識ポイント&面接問題まとめ](./docs/distributed-system/spring-cloud-gateway-questions.md) + +### 分散 ID + +- [分散 ID 入門と実装ソリューションまとめ](https://javaguide.cn/distributed-system/distributed-id.html) +- [分散 ID の設計ガイド](https://javaguide.cn/distributed-system/distributed-id-design.html) + +### 分散ロック + +# 分散ロック + +- [分散ロック入門](https://javaguide.cn/distributed-system/distributed-lock.html) +- [よく使う分散ロック実装ソリューションまとめ](https://javaguide.cn/distributed-system/distributed-lock-implementations.html) + +### 分散トランザクション + +[よく出る分散トランザクションの知識ポイント&面接問題まとめ](https://javaguide.cn/distributed-system/distributed-transaction.html) + +### 分散設定センター + +[よく出る分散設定センターの知識ポイント&面接問題まとめ](./docs/distributed-system/distributed-configuration-center.md) + +## 高性能 + +### データベース最適化 + +- [データベースの読み書き分離とシャーディング(分库分表)](./docs/high-performance/read-and-write-separation-and-library-subtable.md) +- [コールドデータとホットデータの分離](./docs/high-performance/data-cold-hot-separation.md) +- [よく使う SQL 最適化手法まとめ](./docs/high-performance/sql-optimization.md) +- [深いページネーション入門と最適化の提案](./docs/high-performance/deep-pagination-optimization.md) + +### ロードバランシング + +[よく出るロードバランシングの知識ポイント&面接問題まとめ](./docs/high-performance/load-balancing.md) + +### CDN + +[よく出る CDN(コンテンツデリバリーネットワーク)の知識ポイント&面接問題まとめ](./docs/high-performance/cdn.md) + +### メッセージキュー + +- [メッセージキュー基礎知識まとめ](./docs/high-performance/message-queue/message-queue.md) +- [Disruptor のよく出る知識ポイント&面接問題まとめ](./docs/high-performance/message-queue/disruptor-questions.md) +- [RabbitMQ のよく出る知識ポイント&面接問題まとめ](./docs/high-performance/message-queue/rabbitmq-questions.md) +- [RocketMQ のよく出る知識ポイント&面接問題まとめ](./docs/high-performance/message-queue/rocketmq-questions.md) +- [Kafka のよく出る知識ポイント&面接問題まとめ](./docs/high-performance/message-queue/kafka-questions-01.md) + +## 高可用性 + +[高可用性システム設計ガイド](./docs/high-availability/high-availability-system-design.md) + +### 冗長設計 + +[冗長設計詳解](./docs/high-availability/redundancy.md) + +### レート制限 + +[サービスのレート制限詳解](./docs/high-availability/limit-request.md) + +### フォールバック&サーキットブレーカー + +[フォールバック&サーキットブレーカー詳解](./docs/high-availability/fallback-and-circuit-breaker.md) + +### タイムアウト&リトライ + +[タイムアウト&リトライ詳解](./docs/high-availability/timeout-and-retry.md) + +### クラスタリング + +同一サービスのインスタンスを複数デプロイすることで、単一障害点を回避します。 + +### 災害復旧設計とアクティブ-アクティブ構成 + +**災害復旧(Disaster Recovery)** = 災害耐性(Disaster Tolerance)+ バックアップ(Backup)。 + +- **バックアップ**: システムが生成するすべての重要なデータを複数回バックアップすること。 +- **災害耐性**: 異なる場所に完全に同一のシステムを 2 つ構築すること。一方の場所のシステムが突然故障した場合、アプリケーションシステム全体をもう一方に切り替えられるため、システムが正常にサービスを提供し続けられます。 + +**アクティブ-アクティブ構成(Active-Active Deployment)** は、異なる場所にサービスをデプロイし、同時に外部へサービスを提供する構成を指します。従来の災害復旧設計との主な違いは「アクティブ-アクティブ」、つまりすべてのサイトが同時に外部へサービスを提供している点です。アクティブ-アクティブ構成は、火災、地震などの自然災害や人為的災害といった予期せぬ事態に備えるためのものです。 + +## Star のトレンド + +![Stars](https://api.star-history.com/svg?repos=Snailclimb/JavaGuide&type=Date) + +## 公式公衆号 + +私の最新記事を見逃さず、価値ある内容を共有したい方は、私の公式公衆号をフォローしてください。 + +![JavaGuide 公式公衆号](https://oss.javaguide.cn/github/javaguide/gongzhonghaoxuanchuan.png)