プロジェクト分散展開アーキテクチャ
分散型展開アーキテクチャの概要
アーキテクチャのコアミドルウェアの説明:
春クラウドゲートウェイ:フロントエンド(thymeleaf、vue.js、アプリ、weixinのH5)ゲートウェイを介して行かなければならないサービスを使用してのコードの冗長性は、カナリア公開を制限し、統一された認証を達成するため、以前にゲートウェイを排除することは容易ですおよびその他の関連する問題。
OpenFeign:各他のサービスコールを実装するために使用される異なるモジュール間(流通サービス・ツー・サービスコール)
春クラウド領事(同様のユーレカ、飼育係など):登録センター
Skywalking:分散リンクトラッキングの実装
FastDFS:写真、ビデオ、ドキュメント、アップロードとダウンロードを実行するための分散ファイルシステム。
ElasticJobLite:タイミングを達成スケジュール
Kubernetesクラスター:配置船今
8.RabbitMQクラスター:ようにビジネスの解放のカップリングのための分散メッセージセンターの実装、非同期と。ELK、歩哨:プラットフォームのログを記録
Mavenのネクサス:Javaのメンバーの達人PW、NPMパッケージ、.NET nugetパッケージ管理。
項目の階層
プロジェクト階層v2.png
基本原理
フロントエンドはVue.js、Thymeleaf使用されます
Vue.js完全に分離前端と後端
プロジェクトの詳細は、層化
外部インタフェース層:のための他のモジュールによって呼び出さ備えDTO、列挙型、@FeignClient、
アプリケーション層モノマー:DTOは、内部使用を含む、(通常、エンティティと呼ばれる、またはモデルと呼ばれる)か、DAO、bizinteractは、ServiceImpl、publicServiceImpl
遠位端を定義するために使用される2.1 DTO情報は、原則として、フロントエンドを減少、ほとんど情報を公開することですロジックとバックエンドの相互作用。注:フィールド全体の列挙は、外部インタフェースレイヤで定義されている使用し
ない2.2:ターゲット領域を定義し、1つの対応テーブル構造に付着してはなりません。
2.3 DAO&bizinteract:実際には、これらの二つの層に結合されてもよいが、データベース、キャッシュのRedis、ESインデックス、MQキュー、さらに、ファイルシステム、等にアクセスするため、コードの保守及びユニットテストの容易さ、インターフェースを定義し、実装する必要があります。注:MyBatisのこの場合、DBアクセスのみインタフェース。
2.4:マッパー:MyBatisのアクセスXMLマッパーDBが必要。