私の連絡先情報
郵便メール:
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
サービス分割:
1. 単一責任の原則: マイクロサービス アーキテクチャでは、サービスは 1 つの機能またはビジネス領域のみを担当し、各サービスは明確な定義と境界を持ち、独自の特定のビジネス領域のみに焦点を当てる必要があります。
2. サービスの自律性: サービスの自律性とは、各マイクロサービスが高度な自律性を持つ必要があること、つまり、各サービスが独立して開発、独立してテスト、独立して構築、独立してデプロイ、および独立して運用できる必要があることを意味します。
3. 一方向の依存関係
マイクロサービス間には一方向の依存関係が存在する必要があり、循環依存関係と双方向の依存関係は厳しく禁止されています。
循環依存: A->B->C->A
双方向の依存関係: A->B、B->A
例:
1.注文リスト
2. 製品一覧
注文サービス: 注文 ID を入力し、注文の詳細を取得します。
製品サービス: 製品 ID に基づいて製品の詳細を返します
注文に基づいて注文情報を照会する場合は、注文の製品 ID に基づいて製品の詳細を取得します。
成し遂げる:
実装のアイデア: order-service サービスは http リクエストを product-service サービスに送信し、返された結果を注文結果とマージして、呼び出し元に返します。
実装方法:Springが提供するRestTemplateを使用
1.RestTemplateを定義する
@構成
パブリッククラスBeanConfig{
@豆
パブリック RestTemplate restTemplate{
新しい RestTemplate() を返します。
}
}
2. order-controllerでrestTemplateを使用する
レストテンプレート:
休む(再プレゼンテーション ステイト Tranfer) はレイヤーリソースのステータス転送を表します
リソース: 写真、ビデオ、テキストなどのインターネット上のデータはすべてリソースです
プレゼンテーション層: リソースの表現形式 (たとえば、テキストの表現形式は txt、画像の表現形式は jpg、一部のリソースは json、xml、またはバイナリで表現されます。など)
状態転送: ネットワーク経由でリソースにアクセスし、リソースを実行 (追加、変更、削除など) すると、リソースの状態が変化します。簡単に言うと、REST はクライアントとサーバー間の対話形式を表します。 REST 自体は実用的ではなく、RESTful API (REST スタイルのネットワーク インターフェイス) を設計する方法を使用します。
安らかなスタイルには、一般的に次のような特徴があります。
1. リソース
2. 統合インターフェイス: リソースの取得、作成、変更、削除などの操作については、これらのウィンドウは、http プロトコルによって提供される GET、POST、PUT、および DELETE メソッドに対応します。つまり、RESTful スタイルのインターフェイスを使用する場合です。 、インターフェイスからリソースを見つけることはできますが、どのような操作が実行されたのかを知る方法はありません。具体的にどのような操作が行われたのかを知り、http リクエスト メソッドのタイプ (例: 同じ URL) から判断する必要があります。 : GET/blog/{blogId }: ブログをクエリ DELETE/blog/{blogId} ブログを削除)
RESTful API の欠点:
1. RESTful API では通常、リソースに対する操作アクションを GET、POST、PUT、DELETE で区別します。
HTTP メソッドは直接観察することができないため、パケット キャプチャなどのツールを介して観察する必要があります。アクションを URL に配置すると、より直感的になります。
チームの理解とコミュニケーションがより促進されます。
2. 一部のブラウザは GET と POST 以外のリクエストのサポートにあまり適していないため、追加の処理が必要です。
3. リソースの重視 ただし、実際のビジネス ニーズはさらに複雑であり、単に追加、削除、変更、検索するだけではニーズに対応できません。
RESTful API は開発の難易度とコストを増加させます。
プロジェクトに問題があります
1. リモート呼び出しの場合、URL の IP とポート番号はハードコーディングされています (http://127.0.0.1:9090/product/)。IP を変更する場合は、コードを変更する必要があります。
コード
2. 発信者がサービス プロバイダーの IP に依存しないようにするにはどうすればよいですか?
3. 複数のマシンの導入、プレッシャーをどのように共有するか?
4. リモート呼び出しを行う場合、間違った URL を記述することが非常に簡単で、再利用性が高くありません。リモート呼び出しを適切に実装するにはどうすればよいですか?
5. すべてのサービスがこのインターフェイスを呼び出すことができます。リスクはありますか?