マイクロ分析サービスの深い理解(上)

マイクロ分析サービスの深い理解(上)


マイクロ分析サービスの深い理解(上)


はじめに、

今年は2019マイクロサービスは、死に夢中に停止したことがないマイクロサービスを主張見えるだろうことが示唆されました。これで私はそれを照合し、我々は手助けをしたいマイクロサービスの理解になります。次の彼にスペースあまりにも、小さなシリーズに、ああ、私は懸念を覚えています

マイクロサービスとは何ですか

アイデンティティサービス契約を理解するためのエンジニアの同じチーム限り小さなサービスの1)セット(不特定の標準サイズ)

2)独立したプロセス(Javaのtomcatに、nodejs、など)

3)軽量通信(ない石鹸)HTTPプロトコルであります

4)ユーザサービスに類似した動作能力(財サービス、等に基づいて)

5)独立)、高速(反復速度を展開

6)は、集中管理は(統一技術スタックせずに、)選択したサービスまたはチームに応じて柔軟になることはできません

PS:パイオニアNetflixは、マイクロサービス、オープンソースのいくつかの良いマイクロサービスフレームワークは、フォローアップのプレゼンテーションがあるでしょう。

どのように有益なマイクロ不利益サービスを比較検討

リー:

強力なモジュールの境界。(モジュラー進化:クラス - >コンポーネント/ライブラリ(SDK) - >サービス(サービス)、道より柔軟)

これは、独立して展開することができます。

技術的な多様性。

短所:

分散型の複雑さ。

最後の一貫性。(各チームサービス、データ管理が分散化され、矛盾があるでしょう)

運用・保守の複雑さ。

テストの複雑さ。

企業はマイクロサービスの導入を検討するとき

これらの2つの観点のシステムの複雑さと生産性から。同社が開始すると、ビジネスの複雑さが高くありませんが、今回はビジネスがシンプルであるとき、単一のサービスが、高い生産性で、ビジネスモデルことを確認することです。会社が成長するにつれて、徐々に我々はマイクロサービスは、生産性を高めるためにすることができ、今回の事業の複雑さを増します。変態点については、建築家のチームは以上100人の個人的な経験、チーム開発上の措置のさまざまな側面を、実行するために、マイクロサービスの利用は非常に必要です。

いくつかの建築家はそうではなく、ゆっくりとマイクロサービスへと発展し、単一のサービス進化を通してよりも、システムを設計するために直接マイクロサービスとして設計された、マイクロサービスアーキテクチャに能力がある持っています。ここでは初めはビジネスの非常に理解していないとビジネスモデルが検証されていないので、私は、この方法はお勧めしません、マイクロサービスリスクのこの時間は、比較的高く、失敗する可能性があります。我々は、単一のサービスを見つけた場合マイクロのサービスを検討する事業開発、設計とアーキテクチャに適応できない場合に、単一のサービスのアプリケーションの誰もが成熟することを推奨し、事業分野に精通しています。

組織マイクロサービス

マイクロ分析サービスの深い理解(上)


如上图左边,传统的企业中,团队是按职能划分的。开发一个项目时,会从不同的职能团队找人进行开发,开发完成后,再各自回到自己的职能团队,这种模式实践证明,效率还是比较低的。

如上图右边,围绕每个业务线或产品,按服务划分团队。团队成员从架构到运维,形成一个完整的闭环。一直围绕在产品周围,进行不断的迭代。不会像传统的团队一样离开。这样开发效率会比较高。至于这种团队的规模,建议按照亚马逊的两个披萨原则,大概10人左右比较好。

怎么理解中台战略和微服务

中台战略的由来:马云2015年去欧洲的一家公司supersell参观,发现这个公司的创新能力非常强,团队的规模很小,但是开发效率很高。他们就是采用中台战略。马云感触很深,回国后就在集团内部推出了中台战略。

マイクロ分析サービスの深い理解(上)


简单的理解就是把传统的前后台体系中的后台进行了细分。阿里巴巴提出了大中台小前台的战略。就是强化业务和技术中台,把前端的应用变得更小更灵活。当中台越强大,能力就越强,越能更好的快速响应前台的业务需求。打个比喻,就是土壤越肥沃,越适合生长不同的生物,打造好的生态系统。

服务分层

每个公司的服务分层都不相同,有的公司服务没有分层,有的怎分层很多。目前业界没有统一的标准。

下面推荐一个比较容易理解的两层结构。

マイクロ分析サービスの深い理解(上)


1:基础服务: 比如一个电商网站,商品服务和订单服务就属于基础服务(核心领域服务)。缓存服务,监控服务,消息队列等也属于基础服务(公共服务)

2:聚合服务 :例如网关服务就算一种聚合服务(适配服务)。

这是一种逻辑划分,不是物理划分,实际设计的东西很多很复杂。

微服务的技术架构体系

下图是一个成型的互联网微服务的架构体系:

マイクロ分析サービスの深い理解(上)


1:接入层 负载均衡作用,运维团队负责

2:网关层 反向路由,安全验证,限流等

3:业务服务层 基础服务和领域服务

4:支撑服务层

5:平台服务

6:基础设施层 运维团队负责。(或者阿里云)

微服务的服务发现的三种方式

第一种:如下图所示,传统的服务发现(大部分公司的做法)。服务上线后,通知运维,申请域名,配置路由。调用方通过dns域名解析,经过负载均衡路由,进行服务访问。缺点: LB的单点风险,服务穿透LB,性能也不是太好

マイクロ分析サービスの深い理解(上)


第二种:也叫客户端发现方式。如下图所示。通过服务注册的方式,服务提供者先注册服务。消费者通过注册中心获取相应服务。

并且把LB的功能移动到了消费者的进程内,消费者根据自身路由去获取相应服务。优点是,没有了LB单点问题,也没有了LB的中间一跳,性能也比较好。但是这种方式有一个非常明显的缺点就是具有非常强的耦合性。针对不同的语言,每个服务的客户端都得实现一套服务发现的功能。

マイクロ分析サービスの深い理解(上)


第三种:也叫服务端发现方式,如下图所示。和第二种很相似。但是LB功能独立进程单独部署,所以解决了客户端多语言开发的问题。唯一的缺点就是运维成比较高,每个节点都得部署一个LB的代理,例如nginx。

マイクロ分析サービスの深い理解(上)


微服务网关

网关就好比一个公司的门卫。屏蔽内部细节,统一对外服务接口。

マイクロ分析サービスの深い理解(上)


下图是一个网关所处位置的示例图。

マイクロ分析サービスの深い理解(上)


Netflix Zuul网关介绍

マイクロ分析サービスの深い理解(上)


核心就是一个servlet,通过filter机制实现的。主要分为三类过滤器:前置过滤器,过滤器和后置过滤器。

主要特色是,这些过滤器可以动态插拔,就是如果需要增加减少过滤器,可以不用重启,直接生效。原理就是:通过一个db维护过滤器(上图蓝色部分),如果增加过滤器,就将新过滤器编译完成后push到db中,有线程会定期扫描db,发现新的过滤器后,会上传到网关的相应文件目录下,并通知过滤器loader进行加载相应的过滤器。

マイクロ分析サービスの深い理解(上)


整个网关调用的流程

上图从左变http Request开始经过三类过滤器,最终到最右边的Http Response,这就是Zull网关的整个调用流程。

微服务的路由发现体系

通常、2つの部品のサービス・レジストリとゲートウェイによる経路探索全体マイクロシステムサービス、。一例として、ネットフリックス、ユーレカZull二成分と全体経路Netflixの発見システムをサポートします。以下に示すように、要求は最初の外部ゲートウェイに送信され、サービス・レジストリへのゲートウェイは、対応するサービスコールを取得します。第二に、サービス・レジストリを通じて、内部のサービス間のコール

マイクロ分析サービスの深い理解(上)


マイクロサービス設定センター

現在では、ほとんどの企業は、設定ファイルを書き遭遇した状況、高コストの構成を変更するように構成されています。そして、レコードの設定を変更していない、困難な問題がトレースします。コンフィギュレーション・センターは、上記課題を解決するために時間がかかります。

構成可能:データベース接続、サービスパラメータなど

マイクロ分析サービスの深い理解(上)


Configuration Centerのバックページを通じて設定を変更するように構成されたWebサービスである、各サービスは、新しい設定パラメータを取得します。二つの主要な実装があり、一方が他方にはプルで、プッシュです。二つの方法は、それぞれの長所と短所を持っています。リアルタイム性能を押すメッセージが失われる、より良いですが、ネットワークジッタが発生しました。メッセージを失ったが、リアルタイムに悪いことはありません引っ張ります。それは同時に、より良い結果を達成するために二つの方法を使用することができます。以下に示すように、これはよく知られているインターネット企業の物流センターのアーキテクチャ図です。

マイクロ分析サービスの深い理解(上)


RPCはRESTに遭遇しました

マイクロ分析サービスの深い理解(上)


いくつかの内部のコアサービスは、高い性能要件は、一般的に外部サービスの残りの部分を使用して、RPCを使用することができます。

ここで最初の株式の上半分は、ああ、私は懸念を覚えて、毎日のJava関連記事を共有します

 


おすすめ

転載: blog.51cto.com/14456091/2427393