今日の更新ログ:
新規追加:
1.追加された分散タイミングタスクエグゼキュータ(単一マシンのタイミング実行と分散タイミング実行の両方をサポート)
最適化:
1.コードジェネレーターテンプレートファイルを最適化し、依存関係を減らします
2. Swagger自動構成アイテムを最適化し、認証パラメーターの設定をサポートします
3. zuihou-admin-uiグローバルユーザークエリエクスペリエンス
4.プラグインに依存しないマルチデータソースモード、無料で使用できますプラグアンドプレイ
5. MQ、スキャン、その他の構成を
最適化する6.テナントモジュールパッケージ名を最適化する
修正:
1. zuihou-admin-uiがオペレーションバックグラウンドアカウントのバグを追加できない
テナントモデル:
テナントモデル | 説明文 | アドバンテージ | 短所 | 分散トランザクション |
NONE(非テナントモデル) | テナントなし | シンプルで独立したシステムに適しています | テナントシステムの利便性の欠如 | 応援 |
COLUMN(フィールドモード) | テナントはデータベースを共有し、ビジネステーブルにフィールドを追加して区別します | シンプルで複雑ではなく、開発に依存しない | 不十分なデータ分離、不十分なセキュリティ、および困難なデータのバックアップとリカバリ | 応援 |
SCHEMA(独立したスキーマ) | 各テナントはデータベース(スキーマ)から独立しており、SQLを実行するときに、テーブル名の前にスキーマを動的に追加します | シンプルで認識されていない開発、優れたデータ分離 | データベースのrootアカウントは構成ファイルで構成する必要があり、複雑なSQLおよびSQLのネストされたカスタム関数はサポートされていません | バグ |
DATASOURCE(独立したデータソース) | 各テナントはデータベース(データソース)から独立しており、コードが実行されると、データソースが動的に切り替えられます | データベースは独立して展開でき、データの分離が良好で、スケーラビリティが高く、障害の影響が少ない | 比較的複雑な開発では、データソースを切り替えるときにトランザクションの問題に注意を払う必要があり、より多くのデータベースが必要です。 | 応援 |
はじめに:
SpringBoot(2.2.5.RELEASE)SaaSタイプのマイクロサービススキャフォールディングに基づき、ユーザー管理、リソース権限管理、統合ゲートウェイ認証、Xssアンチクロスサイト攻撃、自動コード生成、複数のストレージシステム、分散トランザクション、分散タイミングタスクなどの複数のモジュールは、マルチサービスシステムの並列開発と複数のサービスの並列開発をサポートし、バックエンドサービス開発の足場として使用できます。コードは簡潔で、アーキテクチャは明確で、学習に非常に適しています。コアテクノロジーは、Mybatis、SpringBoot、JWT Token、RabbitMQ、FastDFS、およびその他の主要なフレームワークとミドルウェアを使用します。
SaaSの基本的なフレームワーク - 分散マイクロサービスアーキテクチャ - 自動展開 - システム監視 からソリューションのセットを構築するために一生懸命取り組んでください 。このプロジェクトは、基本的な機能を実現することを目的としており、特定のビジネスは関与しません。
機能ポイント紹介:
インターフェース認証:
JWTは、サービス間のスケジューリングの承認検証を強化して、内部サービスのセキュリティを確保するために使用されます。
モニタリング:
Spring Boot Adminを使用して各独立サービスの実行ステータスを監視し、turbineを使用してインターフェイスの実行ステータスと呼び出し頻度をリアルタイムで表示します
データ権限:
Mybatisに基づくDataScopeInterceptorインターセプターを使用して単純なデータ権限を実現する
SaaSの意味のないソリューション:
Mybatisインターセプターを使用してすべてのSQLをインターセプトし、デフォルトのスキーマを変更して、マルチテナントのデータ分離の目的を達成します。
二次キャッシュ:
J2Cacheを使用してキャッシュを操作します。第1レベルのキャッシュはメモリ(カフェイン)を使用し、第2レベルのキャッシュはRedisを使用します。大量のキャッシュ読み取りはL2のネットワークをシステム全体のボトルネックにするため、L1の目標はL2への読み取り数を減らすことです。キャッシングフレームワークは、主にクラスター環境で使用されます。また、アプリケーションの再起動によるキャッシュのコールドリスタート後のバックエンドサービスへの影響を回避するために、スタンドアロンマシンとしても使用できます。
エレガントBean変換:
Dozerコンポーネントを使用して、DTO、DO、POおよびその他のオブジェクトの変換を最適化する
フロントエンドとバックエンドの統合フォーム検証:
厳密な形式の検証では、通常、フロントエンドとバックエンドの同時検証が必要ですが、従来のプロジェクトでは、一度テストできるのはフロントエンドとバックエンドのみで、その後のルールは変更され、フロントエンドとバックエンドを同時に変更する必要があります。したがって、zuihou-validator-starter開始依存関係はhibernate-validatorに基づいてカプセル化され、フォームを検証する必要のあるルールを取得できる共通インターフェイスを提供し、フロントエンドはバックエンドから返されたルールを使用します。変更するだけです。
アンチクロスサイトスクリプティング攻撃(XSS):
- フィルターを介してすべてのリクエストのフォームパラメーターをフィルター処理する
- Jsonデシリアライザーを使用してすべてのアプリケーション/ jsonタイプのパラメーターをフィルター処理する
現在のユーザー情報インジェクター:
ユーザーIDインジェクションの注釈
オンラインAPI:
ネイティブのswagger-uiは一部の機能に対して十分に友好的ではないため、国産のオープンソースのknife4jが採用されており、スプリングブートユーザーの使用を容易にするためにステータスが作成されています。
コードジェネレーター:
Mybatis-plus-generatorに基づいて、一連のコードジェネレーターがカスタマイズされます。データベースフィールドの注釈を構成することにより、列挙型クラス、データディクショナリ注釈、SaveDTO、UpdateDTO、フォーム検証ルール注釈、Swagger注釈などが自動的に生成されます。
スケジュールされたタスクスケジューラ:
xxl-jobsに基づいて拡張されました。(例:指定した時間にタスクを送信、エグゼキューターとスケジューラーのマージプロジェクト、複数のデータソース)
大きなファイル/ブレークポイント/シャードの再開:
フロントエンドはwebupload.jsを使用し、バックエンドはNIOを使用して大きなファイルのブレークポイントの継続を実現します。Eureka、Zuul、およびFileサービスを開始した後、直接docs / chunkUploadDemo / demo.htmlを開いてテストします。テスト後、128Mのローカル最大スタックメモリがファイルサービスを開始します。4.6G以上の大きなファイルを5分以内に正常にアップロードできます。公式のサービス時間はユーザーの帯域幅とサーバーの帯域幅の影響を受け、時間は比較的長くなります。
分散トランザクション:
これは、アリの分散トランザクションミドルウェアであるシータを統合 し、マイクロサービスシナリオが 直面する分散トランザクションの問題を効率的 かつ侵入的な方法でビジネスに解決し ます。
関連データの自動注入:
これは、クロステーブル、クロスデータベース、クロスサービスページングデータ属性、または関連データをエコーする単一オブジェクト属性の問題を解決するために使用され、静的データ属性(データディクショナリ)と動的主キーデータの自動挿入をサポートします。
プロジェクトコードアドレス
プロジェクト | ジティー | github | 備考 |
マイクロサービスプロジェクト | https://gitee.com/zuihou111/zuihou-admin-cloud | https://github.com/zuihou/zuihou-admin-cloud | SpringCloudバージョンバックエンドコード |
モノリシックプロジェクト | https://gitee.com/zuihou111/zuihou-admin-boot | https://github.com/zuihou/zuihou-admin-boot | SpringBootバージョンバックエンドコード |
テナントバックオフィス | https://gitee.com/zuihou111/zuihou-ui | https://github.com/zuihou/zuihou-ui | | 顧客のフロントエンド |
開発・運用の背景 | https://gitee.com/zuihou111/zuihou-admin-ui | https://github.com/zuihou/zuihou-admin-ui | 社内開発・運用・運用・保守担当者向け |
コードジェネレーター | https://gitee.com/zuihou111/zuihou-generator | https://github.com/zuihou/zuihou-generator | 開発者が使用する |
コアツールキット | https://gitee.com/zuihou111/zuihou-commons | https://github.com/zuihou/zuihou-commons | コアツールキット |
デモアドレス(デモアカウントには書き込み権限がなく、クエリのみが可能です)
プロジェクト | デモアドレス | 管理者アカウント | 普通口座 |
テナントバックオフィス | http://tangyh.top:10000/zuihou-ui | 瑞鳳/瑞鳳 | test / zuiou |
開発・運用の背景 | http://tangyh.top:180/zuihou-admin-ui | demoAdmin / zuihou | なし |