何microServiceを学びます
参考:https://www.cnblogs.com/skabyy/p/11396571.html
A)、オリジナルの欠点モノマーサービス
シーン・プレゼンテーション:
要件:暁明と小さな革が一緒にビジネスの話オンラインスーパーマーケットを行うには
特徴:
ウェブサイト
- ユーザ登録、ログ機能
- 製品のショーケース
- オーダー
管理背景
- ユーザー管理
- 商品管理
- オーダー管理
二)、ビジネス開発:
- 機能性を高めるためにウェブサイトの昇進システム
- モバイルデバイスを増加:小マイクロチャネル・プログラム、アプリケーション(同一の機能およびモバイルデバイスのサイトの機能)を移動させます、
- バックグラウンドでプロモーション管理およびデータ解析システムを追加します。
- 4つのシステムでは、データベースを共有します
事業拡大の後アーキテクチャの欠点が発生します。
1.携帯端末のサイトと同じビジネス・ロジック・コードの重複の多くの応用
2.データは、時々、データベースによって共有され、時にはインターフェースコール転送を介してです。コールインタフェース厄介な関係
3.データベースのテーブル構造は、複数のアプリケーションに依存し、最適化を再構成することができません
4.データベース操作のすべてのアプリケーション、データベースのパフォーマンスの急激な減少
開発、テスト、展開、わずかな変更機能は、だけでなく、一緒に全体のアプリケーションを公開する必要がある場合でも、より困難なメンテナンス、
C)マイクロサービス機能:
要約:公共の運用能力の要旨は、いくつかの公共サービスを作りました
アプリケーション・データベースの間で一般的な問題を解決:データベースは、サービスに対応
問題や課題を生成するためのデータベースを分割:ライブラリのニーズ全体でカスケード
D)、のログ
オリジナルのモノマー系のログ:ログ、エラーメッセージを表示し、スタックの研究を呼び出します
マイクロサービスアーキテクチャでは、サービスの障害がシステム全体の障害を引き起こす、アバランシェ効果を生じさせることができます
E)、マイクロサービスの欠点
1.マイクロ・サービス・アーキテクチャは、障害点の位置を特定するために、複数のサービス、非常に困難にアプリケーション全体に分散しました
2.安定性の減少、サービス障害、ハングアップしたように、システム全体を引き起こす可能性があり
3.サービスの数が非常に大きい、重いワークロードの展開と管理
4.すべてのサービスがの継続的な開発の場合に相乗効果を残ることを確実にする方法
5.テストサービスコールの間に試験に元の単一のプログラム。テストはより複雑になり、
どのようにトラブルシューティングする方法F):
エラーを削減:事前の制御、事後解析
削減:フォールトトレランス、サービス低下
音監視システムを確立します
マイクロサービスアーキテクチャ、多くの構成要素、それぞれ異なるコンポーネントインジケータがさまざまなコンポーネントを監視するために、大規模かつ包括的な監視システムを作るために、監視する必要は現実的ではありません
たとえば:指標は、ネットワークトラフィック、モニターデータベース接続、ディスク容量、同時ビジネスサービス監視の数、応答遅延、エラー率などの値を監視するためのRedisキャッシュメモリがあります
どのように監視するには:
1.独自のレポートインターフェイス(メトリクスインタフェース)の現在の状態の様々な構成要素
2.インタフェース一貫した出力データフォーマット
3.サービスへのアクセスを提供し、これらのインタフェースの状態から取得し、保持アセンブリタイミング、メトリック収集アセンブリの展開
4.図面やアラーム閾値に応じてインターフェイスを監視、インデックスコレクションからインデックスを照会する必要UI、。
例えば:RedisのキャッシュインデックスインタフェースMySQLデータベース:RedisExporterとMySQLExporter(オンラインオープンソースコンポーネント)
コレクタプロメテウスを使用してインデックスとして使用
六)、追跡リンク
追跡されたリンクとは何ですか?
ユーザの要求は、多くの場合、複数の内部サービスコールを必要とします
LT:各ユーザー要求を記録し、内部記録はマイクロサービスサービスコールの数、およびコール関係を生成しました
リンクトラッキングを実装します。
1)、少なくとも4つのサービスは、HTTPヘッダー内のデータに記録されるコール
1.traceId:呼び出し元のユーザーを識別することは、それが同じリンクTRACEIDに属して呼び出すと同じとのリンクをリクエスト
2.spanId:idがサービスコールを特定します
spanId親ノード:3.parentId
4.requestTime&RESPONSETIME:要求と応答時間
2)コールログの収集とストレージコンポーネントだけでなく、UIコンポーネントと呼ばれるリンクを表示します
実装プロセスを追跡リンク:
各HTTPリクエストで注入HEADERS、およびコールログにデータを生成し、インターセプタを使用してHTTPリクエストは、Zipkinログ収集容器に非同期的に送信します
リンク追跡サービスのみ、発生する問題を対象と特定のエラーメッセージ機能を見つけることができるログ解析コンポーネントによって提供される必要があります
ログ分析
ELK(Elasticsearch、LogstashとKibana)は、分析コンポーネントをログインします。
Elasticsearch:検索エンジンが、また、店舗のログ
Logstash:コレクション、入力を受信するログ、いくつかのログを前処理し、次いでElasticsearchに出力するログ
Kibana:UIコンポーネントは、データElasticsearchはAPIを見つけ、ユーザに表示しました
分析プロセスを記録します。
------ファイルへのログ出力をlogstashに「1 Agentを配備する各サービス、-------ログファイルをスキャンします」