JAvaのアーキテクチャの道
4609 ワード
Java開発については、入門すればモジュール的な開発が可能になり、このように数年開発したが、開発速度が速く、エラー率が低く、問題を解決する能力が向上しただけであることが分かったが、依然として「レンガを運ぶ」レベルにあり、普段も本を読んでいるが、本を読むのは理解しているような状態であることに気づき、間もなく忘れてしまった.もしソフトウェアプロジェクトをビルを建てることにたとえると、ビルを建てるにはいろいろな人が必要で、どのように技術者をしているあなたは、一歩一歩昇進しますか?2つの字:試します.ソフトウェア業界の試行コストは基本的に0です.例えば、あなたのフレームワークが今使っているspringMVCでは、余暇にspringbootを試してみることができます.tomcatがNIOモードを使用している場合は、APRモードに変更してみてください.ツールを作って、プラグインを作ってみます.運維などを試してみます.絶え間ない試みの中で、広さの接触の異なる技術、それから問題を解決する上で、深い学習を行って、更にソースコードを勉強して、ソースコードの中から設計モードを分析します.逐次漸進的な系統的な学習をどのように行うか、ここでは大まかな学習ルートを説明します.
一、基礎
デザインモード
デザインモデルは実はあなたの生活モデルと密接に関連しているので、ここではどのようにデザインモデルを開発に柔軟に運用することができて、硬記硬背ではありません.単例モード:料理用の鍋、毎回料理を作ることができなくて、すべて新しい鍋を買わなければなりません.もしあなたがお金が十分であれば、部屋が十分であれば、不動産がよければ、定期的に を片付けることができます.工場モデル:主に単純工場と抽象工場に分けられ、両者は最初から一つの工場でロボットを作ることができたようで、その後、多くの工場でロボットを作ることができ、単純工場はロボットを作る方法を抽象化し、抽象工場はロボットを作ることができる工場を抽象化した エージェントモデル:需要を「専門」エージェントに伝えるだけで、結果を待つだけでいいです.これも私の大好きな オブザーバーモード:これはすごいです.スパイがずっとあなたにメッセージを傍受しているようです. テンプレートモード:魂闘羅をして、毎回人を選んで、関門を選ばなければなりません.あるいは、上下左右ABABを上り、下りしなければなりません.彼のテンプレートに従ってやればいいです. プロトタイプモード:この核心思想は複製であり、プロトタイプをクローン対象に複製することである.例えば、毎日仕事の日報を書くと、昨日のコピーを1部コピーして、今日のものに変更します.これは浅いクローンです.深いクローンは他の人の日報にあなたと関わることができて、すべて複製しました. 戦略モード:聞くと頭を働かせなければならないモードで、生活の中であなたが旅行に行くように、どれだけの攻略をしなければならないのか、どのような交通手段を選ぶのか、どれだけの荷物を選ぶのかなど …
マルチスレッドスレッド状態 スレッド管理 スレッドセキュリティ3.1.スレッドロック:名前によって言えば、ロックには以下の名詞があるだろう:スピンロック、スピンロックの他の種類、ブロックロック、再入ロック、読み書きロック、反発ロック、悲観ロック、楽観ロック、公平ロック、偏向ロック、オブジェクトロック、スレッドロック、ロック粗化、ロック除去、軽量ロック、重量ロック、信号量、独楽ロック、共有ロック、セグメントロック.一般的なロックSynchronizedとLock、分散ロック3.2.ロックメカニズム:ロックされたhappens-before関係、プログラム順序規則:1つのスレッドで、前の操作happens-beforeの後ろの操作ロック規則:同じロックに対して、happens-beforeのロックを解除します.伝達規則:A happens-before B、B happens-before C、A happens-before C スレッドプール4.1スレッドプール作用4.2スレッドプールコアクラス4.3スレッドプール原理4.4タスクキャッシュキューおよびキューなどのポリシー Fork/Joinフレーム5.1シーン5.2 ForkJoinで実現原理5.3フォールトトレランス処理 spring
Springではここでは詳しく紹介しません.多くのことを紹介する必要がありますが、リクエストがどのように配布されているのか、ページがどのようにロードされているのか、ormフレームワークのsessionがどのように管理されているのか、怠け者のロードがどのように実現されているのかなど、必ず理解してください.Springには以下の大きな面が含まれており、一つ一つ突破することができます. spring coreパッケージ spring AOP spring ORM spring Dao spring Web spring Context spring WebMvc
二、分布式
分散アーキテクチャ分散アーキテクチャの進化 CDN加速 負荷等化 システム監視、災害対応、ストレージ動的拡張 アーキテクチャ設計及び業務駆動設計 CAP
ぶんさんミドルウェアメッセージ通信:mq、kafka redis主従レプリケーション、永続化方式ポリシー Nginxリバースプロキシサーバおよびロードバランシング構成 Nettyベースの高性能IMチャット Nettyとtomcat aprシーンアプリケーション 分散アーキテクチャの実戦分散トランザクションソリューション 分散ロックのソリューション 分散型ダウンタイムタスク 分散の下でSessionドメイン間共有および単一のログインソリューション 三、マイクロサービス
springCloud Eurekaサービス登録 Ribbon負荷等化 Feignサービス要求 Hystrixサービス溶断処理 Zuulマイクロサービスゲートウェイ Adminサービスモニタ コンフィギュレーションセンタ Docker Dockerミラー、倉庫、コンテナ Swarmに基づいてDockerクラスタ を構築 Dockerのフレームワーク内の構成 マイクロサービス実戦 springCloudのsecurity構成 springCloudのOuth 2.0構成 springCloudのmq、tomcatなどの最適化 はどのようにサービスを設計すべきか、どのようにサービス分割 を行うべきか. …
四、性能の最適化
Tomcat最適化 tomcat運転メカニズム tomcatスレッドモデル の解析 tomcatシステムパラメータ最適化 ベンチマークテスト JVM最適化 JVMツール検出占有メモリ比較大スレッド メモリモデル GCログ 実戦MAT分析dumpファイル ゴミ回収器及びシーン最適化 を理解する
データベースのチューニング sql実行計画詳細 インデックス最適化 SQL文最適化 パーティション、主従 遅すぎますので、後で詳しく補足しましょう
私に注目して、技術討論に連絡してください.
一、基礎
デザインモード
デザインモデルは実はあなたの生活モデルと密接に関連しているので、ここではどのようにデザインモデルを開発に柔軟に運用することができて、硬記硬背ではありません.
マルチスレッド
1.1. (NEW): , start() 。
1.2. (RUNNABLE):Java (ready) (running) “ ”。
, ( main ) start() 。 , , CPU , (ready)。 CPU (running)。
1.3. (BLOCKED): 。
1.4. (WAITING): ( )。
1.5. (TIMED_WAITING): WAITING, 。
1.6. (TERMINATED): 。
2.1. , Thread Runnable 。
2.2. ,Thread , , 。
2.3. ,Java , 。 , , 。
2.4. , Java InterruptedException() 。
2.5. , sleep() 。
2.6. ,Java Thread join() 。 join() , , 。
2.7. ,Java 。 , , , 。 , ,JVM 。
2.8. , , Thread Runnable 。
Springではここでは詳しく紹介しません.多くのことを紹介する必要がありますが、リクエストがどのように配布されているのか、ページがどのようにロードされているのか、ormフレームワークのsessionがどのように管理されているのか、怠け者のロードがどのように実現されているのかなど、必ず理解してください.Springには以下の大きな面が含まれており、一つ一つ突破することができます.
二、分布式
分散アーキテクチャ
ぶんさんミドルウェア
springCloud
四、性能の最適化
Tomcat最適化
データベースのチューニング
私に注目して、技術討論に連絡してください.