レゴはあなたにmicroServiceを取ります

一般に、マイクロサービスアーキテクチャはアーキテクチャー・パターンまたはそれぞれがその別のプロセスで実行されている、より小さなサービスのセットに単一のアプリケーションを提唱建築スタイル、サービス間の協調、相互ありますユーザーのための最終的な価値を提供するために協働します。

サービス(通常はHTTPベースのRESTfulなAPI)の間で軽量な通信メカニズムを使用します。各構築するための具体的なビジネスの周りのサービス、および独立ように生産環境、生産のような環境に展開してすることができます。

また、あなたは非常に軽量な集中管理を持つことができ、それらを構築するために、ツールを適切な言語を選択し、ビジネス・コンテキストに基づいている必要があり、特定のサービスのための統一、集中サービス管理メカニズムを回避しようとする必要がありますこれらのサービスを調整するために、あなたは別のデータストレージを使用することができ、これらのサービスを開発するために別の言語を使用することができます。

 

どのようなマイクロサービス?

 

アプリケーションのマイクロコアサービスは、ビジネスサービスに分割によれば、伝統的な絞りであり、完全に結合、単一のサービス、サービスの一つだけを設ける各微小機能サービスを削除します。

技術的な観点からは小さく、独立したプロセスの一種である、という概念は、プロセスに似て単独で、あるいは破壊され、それ自体で起動することができ、独自の独立したデータベースを持つことができます。理論的な観点からは、記事のマイクロサービスのアーキテクチャの著者マーティン・フォードの論文があります。

https://martinfowler.com/articles/microservices.html、あなたはまた、Googleから直接検索することができます。

マイクロサービスと伝統的なアーキテクチャとの間の差と呼ばれる紙、伝統的なアーキテクチャ(スタンドアロンシステム)、プロジェクトのプロジェクト:ように、例えば、商品、注文、取引、在庫と、プロセスの統一配置。(画像から元に)以下に示すように:

マイクロサービスアーキテクチャ(分散システム)、各モジュール/サービス、それぞれ独立して、「プロのことをやってプロの人、」スタンドアロン展開。分散システムは、異なるサービスは、独立したデータベースを使用することができます。(画像から元に)以下に示すように:

 

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

 

マイクロサービスの利点:

1.各サービス十分な凝集は、十分に小さく、コードは容易に理解しました。これは、ビジネス機能やビジネスニーズたときのみに焦点を当てます。

2.簡単なの開発は、開発効率を向上させ、マイクロサービス小さなチームは、別々に開発することができ、この小さなチームは2-5人の開発スタッフすることができ、専門的なサービスだけで一つのことを行うことがあります。

3.マイクロサービスが疎結合され、サービスの機能的意義は、それが開発段階や展開の段階にあるかどうかは無関係です、そこにあります。

4.マイクロサービスは、異なる言語の開発を使用することができます。

5.易于和第三方集成,微服务运行容易且灵活的方式集成自动部署,通过持续集成工具,如Jenkins、Hudson、Bamboo。

6.微服务易于被一个开发人员理解、修改和维护,这样小团队能够更关注自己的工作成果,无需通过合作才能体现价值。

7.微服务允许你利用融合最新技术。微服务只是业务逻辑的代码,不会和HTML/CSS或其他界面组件混合,即前后端分离。

8.每个微服务都有自己的存储能力,可以有自己的数据库,也可以有统一数据库。

微服务的缺点:开发人员要处理分布式系统的复杂性。

 

微服务的技术栈有哪些?

 

微服务中,首先肯定离不开服务开发、服务配置与管理、服务注册与发现、服务的调用、熔断器以及负载均衡等等,除此之外,还有服务的路由、监控、部署,还有可能涉及到一些中间件等等。

这些技术栈都有一些对应的落地技术实现,具体可以看一下下面这张图(图片可点开放大):

 

为什么选择SpringCloud?

 

当前微服务架构,Dubbo和SpringCloud比较火,另外还有Thrift、gRPC等等,下面把这些做一个比较,即可看出SpringCloud的强大之处。由于图片比较长,我分了两张图。

在微服务架构的实施和落地过程中,通常我们会进行技术选型,很多人会拿阿里开源的Dubbo和Spring Cloud进行对比,实际上对比的是REST和RPC,其实Dubbo和Spring Cloud并不在同一领域,没有可比性。

Spring Cloud是一个完整的微服务解决方案,正如上面的表格中展现的,它提供分布式情况下的各种解决方案合集。而Dubbo是一款高性能的Java RPC框架。Spring Cloud生态和Dubbo生态随着技术的发展,会逐渐的融合互补。

Dubbo沉睡了5年,Spring Cloud像猎豹一样追上来了,可以看出,Spring Cloud现在非常火爆,也是Spring官方大力推荐的技术,很有竞争力,以后的分布式架构使用Spring Cloud也很广泛,后面我会写一些使用Spring Cloud的

おすすめ

転載: www.cnblogs.com/leigepython/p/11075305.html