マイクロサービスは、複雑なビジネスチームや大規模な開発チームがいるプロジェクトに特に適しています。マイクロサービスは、パーツに分割し、個々のサービスを簡素化し、通信コストを削減する効果を実現できます。ただし、マイクロサービスのパフォーマンスは単一サービスのパフォーマンスよりも低く、データの冗長性の問題も発生します。独自の条件を組み合わせて、盲目的に崇拝しないでください。
この記事では、簡単なマイクロサービステクノロジーアーキテクチャを紹介します。マイクロサービスを展開および開発する方法を全員が予備的に理解できるようにします。
シンプルなマイクロサービスアーキテクチャ
展開図は次のとおりです
nginx:
統合された外部入口、URLに従ってさまざまなマイクロサービスに要求を配布し、ip:portを使用してさまざまなマイクロサービスを区別します。また、Webサーバー自体である一部の静的リソースへのアクセスも直接処理します。
スプリングブーツ+ダボ:
スプリングブートは現在、Webサービスを開発するための最も人気のあるフレームワークです(jsp、ejb、およびsshは古すぎます)。必ずしもマイクロサービスに関連しているわけではありませんが、dubboと組み合わせてマイクロサービスを開発できます。スプリングブートプロジェクトはdubboをインポートする必要があります。 .jarまたはmavenを使用してdubboをインポートします。dubbo-application.xmlを構成し、zookeeperサービスのアドレスポートと、プロバイダーとコンシューマーが登録する必要のあるインターフェイスメソッドを記述します。
あるマイクロサービスから別のマイクロサービスのメソッドを呼び出すには、\ @ Autowiredを使用してインターフェイスクラスのオブジェクトを登録し、そのオブジェクトを使用してメソッドを呼び出すだけです。厄介な点は、各マイクロサービスが同じインターフェイスメソッドに対して一貫したインターフェイス記述javaファイルを持っている必要があることです。mavenを使用してインターフェイスを記述するjarパッケージを管理すると、一貫したインターフェイスの問題を効果的に解決できます。
最後に、jarパッケージをクリックすると、java -jar ***。jarマイクロサービスが開始されます。
動物園の飼育係:
Springbootにはdubboが必要であり、dubboの最も推奨されるサービス登録センターは、掲示板に相当するzookeeperです。各マイクロサービスは、上記で登録されたプロバイダーとコンシューマーのインターフェイスメソッドを確認できます。
DB:
MySQL Oracle
繰り返す:
セッションデータ、およびキャッシュする必要のあるその他のビジネスデータをキャッシュする
tomcat + dubbo-admin:
ダボ管理システムは、監視とトラブルシューティングに使用され、tomcatの下にデプロイされます。ブラウザで各マイクロサービスの実行ステータスを表示して、メソッドを正常に呼び出すことができるかどうかを確認できます。
ポイントは、マイクロサービスを理解するのに役立つビジネスシナリオを照会します。
Bサービスは、ログイン状態を確認する機能を提供します。Aサービスは、アカウントポイントを照会する機能を提供します。
ユーザーがクリックしてアプリ内のポイントをクエリすると、nginxはURLにクエリポイントキーワードがあることを確認し、nginx.confの構成に従ってAサービスにリクエストを送信し、アプリはセッションIDをAサービスに送信し、AサービスはリモートでBサービスを呼び出しますインターフェイスのログインステータスを確認し、セッションIDをインターフェイスに渡します。Bサービスインターフェイスが呼び出され、sessionidを使用してredisのユーザー情報を確認します。redisに対応するユーザー情報がある場合は、ユーザー情報が返され、Aサービスはリモートコールインターフェイスからの戻りを受け取ります。ユーザー情報userid、そしてユーザー情報に従ってデータベースDBクエリポイント。
これは、アーキテクチャ図のすべてのユニットを使用して、2つのマイクロサービスが連携してビジネスを実装する例です。ログインステータスを照会するための要件は各ビジネスに存在するため、Bサービスのインターフェイスをリモートで呼び出す必要がある多くのマイクロサービスがあります。同時に、各マイクロサービスはプロバイダーとコンシューマーの両方になることができます。
Windowsでマイクロサービス開発環境の完全なセットを構成します。
nginx
D:\ Program Files \ nginx-1.8.1> start nginx.exe
成功後、ブラウザは次のようになります
MySQL
D:\ Program Files \ mysql-8.0.12-winx64 \ bin> mysqld --console
繰り返す
D:\ Program Files \ Redis-x64-3.0.504> redis-server.exeredis.windows.conf
画像切り忘れた
動物園の飼育係
zkServer.cmdをダブルクリックします
tomcat和dubbo-admindubbo-admin
githubにダウンロードしてから、dubbo-adminを個別にコンパイルしてwarパッケージを再生する必要があります。warパッケージはtomcatのwebappsディレクトリに配置されます。tomcatが起動すると、次のようにフォルダが自動的に解凍されます。
tomcat / binディレクトリでstartup.batが正常に実行された後、ブラウザは次のようになります。
http://127.0.0.1:8080/dubbo-admin-2.5.8/を開きます (最初にページを開いたときにスタックしましたが、tomcat / logのすべてのログを削除した後、正常でした)
ユーザー名rootパスワードroot
マイクロサービスは開始されていないため、上の図のすべての項目は空です。Intellij IDEAで2つのマイクロサービスを実行します(cmdのjava-jarはmicroservicejarパッケージを開始できますが、コードをデバッグおよび変更するのは便利ではありません)。dubbo
管理システムが2つのサービスを認識できることがわかります。1つはプロバイダーで、もう1つはコンシューマーです。沿って。名前、ステータス、および内部のログを表示できます。これは、トラブルシューティングに役立ちます。
dubugをテストする
ブラウザにログインURLを入力して、開いているログインページを確認します。
この時点で、マイクロサービスシステムの開発およびデバッグ環境は完了です。バックエンドサービスのみをテストし、ブラウザとアプリインターフェイスの機能を気にしない場合は、postmanツールを使用してURLをサーバーに直接送信し、返されたjsonデータが期待される要件を満たしているかどうかを確認できます。