SpringCloud(1)-マイクロサービス

SpringCloud(1)-マイクロサービス

マイクロサービスアーキテクチャの4つの中心的な問題

  1. 多くのサービスがありますが、クライアントにアクセスするにはどうすればよいですか?
  2. サービスが非常に多い場合、サービスはどのように通信しますか
  3. 非常に多くのサービスを管理する方法は?
  4. サービスがハングした場合はどうなりますか?

解決策

SpringCloud 生态

	1. Spring Cloud Netflix :一站式解决方案。

API网关:zuul组件

通信:Feign---HttpClient---Http通信方式(同步,阻塞)

服务注册与发现:Eureka

熔断机制:Hystrix
    
    
	2. Apache Dubbo Zookeeper :半自动,需要整合别人的。

API网关:无

通信:Dubbo

服务注册与发现:Zookeeper

熔断机制:无


	3. Spring Cloud Alibaba :一站式解决方案。
--------------------------------------------------------------------------------   
万变不离其宗:
1. API
2. HTTP,RPC
3. 服务注册与发现
4. 熔断机制
--------------------------------------------------------------------------------
为什么要解决这四个问题?
网络不可靠!

マイクロサービスアーキテクチャとは

マイクロサービスアーキテクチャは、単一のアプリケーションを一連の小さなサービス(全体を個々のサービス、モジュール)に分割し、各サービスを独自のサービスに分割することを推奨する、アーキテクチャパターンまたはアーキテクチャスタイルです。独自のプロセス(各サービスはプロセス)では、プロセスは互いに調整し、ユーザーに究極の価値を提供するように互いに構成します。これらのサービスは、軽量の通信メカニズム(Http)を使用して相互に通信します。各サービスは特定のビジネスを中心に構築されており、本番環境に個別にデプロイできます。さらに、統合および集中化されたサービス管理は可能な限り避けてください。メカニズム(サービス登録および検出メカニズム)、サービスの場合、ビジネスコンテキスト、それを構築するツール(Maven)に応じて適切な言語を選択する必要があります。これらのサービスを調整するための非常に軽量な集中管理が可能です。サービスはさまざまな言語で記述できます。または、さまざまなデータストアを使用できます。

マイクロサービスアーキテクチャのコアは、ビジネスに従って従来のオールインワンアプリケーション(All In One)を1つずつのサービスに分割し、完全に分離し、各マイクロサービスが単一のビジネス機能を提供し、1つのサービスが1つのことを実行することです。 、プロセスの概念と同様に、独自の独立したデータベースを使用して、個別に開始または破棄できます。

マイクロサービスに関するマーティンファウラーの原文:https : //martinfowler.com/articles/microservices.html

マイクロサービスの長所と短所

利点:

  1. 各サービスは非常にまとまりがあり、小規模であり、コードは理解しやすく、指定されたビジネス機能またはビジネス要件に集中できます。
  2. 開発はシンプルで開発効率も高く、サービスは単一責任の原則に特化することができます。
  3. 小さなチームだけで開発することができます、小さなチームは2-5人かもしれません。
  4. 開発段階と展開段階の両方で低カップリングは独立しています。
  5. さまざまな言語で開発できます。
  6. 開発者が理解、変更、保守を行うのは簡単です。そのため、小規模チームは作業結果にもっと注意を払うことができ、価値を実現するための協力は必要ありません。
  7. これは単なるビジネスロジックコードであり、HTML、CSS、またはその他のインターフェイスと混合されません。
  8. 各サービスには独自のストレージ容量があり、独自のデータベースまたは統合データベースを持つことができます。

短所:

  1. 開発者は、分散システムの複雑さに対処する必要があります。

  2. サービスの増加に伴い、管理の複雑さが増し、運用と保守の困難さが増しています。

  3. サービス間の通信のコスト。

  4. データの整合性。

マイクロサービスの技術スタック

マイクロサービスエントリ 床テクノロジー
サービス開発 SpringBoot、Spring、SpringMVC
サービスの構成と管理 NetflixのArchaius、Alibabaのダイヤモンド
サービスの登録と発見 ユーレカ、領事、ズーキーパー
サービスコール 残り、RPC、gRPC
サービスヒューズ Hystrix、特使
負荷分散 リボン、Nginx
サービスインターフェース呼び出し 嬉しいです
メッセージキュー カフカ、RabbitMQ、ActiveMQ
サービス構成センター管理 SpringCloudConfig、Chef
サービスルーティング(APIゲートウェイ) ズール
サービスの監視 Zabbix、Nagios、Metrics、Specatator
完全なリンク追跡 ジプキン、ブレイブ、ブレイブ
サービス展開 Docker、OpenStack、Kubernetes
データフロー運用開発キット SpringClouldストリーム
イベントメッセージスタック SpringCloudバス

おすすめ

転載: www.cnblogs.com/yinrz/p/12724226.html