ちょっと、そこ!私はシャッターの春のサプライヤーです。今日は、シャッター製品の春のマイクロサービス通信を管理する方法についておしゃべりしたいと思います。それはちょっとした技術的なトピックですが、私はそれを理解しやすい方法でそれを分解するために最善を尽くします。


まず、Shutter Businessの春にとってマイクロサービスコミュニケーションが非常に重要である理由について話しましょう。シャッター製造の世界では、さまざまなコンポーネントとプロセスがたくさんあります。たとえば、ローラーシャッターサイドフレーム90°、ローラーシャッタートランスミッションクラウン、そしてローラーシャッタークランクホイール。これらの各部品は、スプリングベースのシステムの異なるマイクロサービスによって管理される場合があります。
これらのマイクロサービスがうまくコミュニケーションできないとき、それは工場にたくさんの人々が互いに話しかけないようなものです。あなたは遅延、間違い、そしてたくさんの頭痛になります。したがって、これらのマイクロサービスが情報をスムーズに共有できるようにする必要があります。
春にマイクロサービス通信を管理する重要な方法の1つは、Restful APIを使用することです。 REST(表現状態転送)は、Webサービスを構築する非常に人気のある方法です。春のシャッターシステムでは、各マイクロサービスの安らかなエンドポイントを作成できます。たとえば、[ローラーシャッターサイドフレーム90°]のインベントリを管理するマイクロサービスがある場合、他のマイクロサービスが在庫レベルを確認するために使用できるREST APIを公開できます。
春にRestful APIを作成する方法の簡単な例を次に示します。 Spring Bootは、Springベースのアプリケーションをすばやく構築するための優れたフレームワークです。
Import org.springframework.boot.springApplication; Import org.springframework.boot.autoconfigure.springbootapplication; Import org.springframework.web.bind.annotation.getMapping; org.springframework.web.bind.annotation.restControllerをインポートします。 @springBootApplication @RestController public class shutterinventoryService {public static void main(string [] args){springApplication.run(shutterinventoryservice.class、args); } @getMapping( "/Inventory/Roller-Shutter-Side-Frame-90")public int getRollerShutterSideFrame90Inventory(){//ここでは、実際にデータベースをクエリしてインベントリカウントを返すようにします。 }}
このコードでは、[ローラーシャッターサイドフレーム90°]のインベントリカウントを返す単純なRESTFUL APIを作成しました。他のマイクロサービスは、HTTP GETリクエストを使用してこのAPIを呼び出して、必要な情報を取得できます。
マイクロサービス通信のもう1つの重要な側面は、メッセージベースのコミュニケーションです。 Springは、Spring Cloud Streamなどのテクノロジーを通じて、メッセージをベースにしたシステムを非常にサポートします。メッセージベースの通信により、マイクロサービスはメッセージを非同期に送信および受信できます。
[ローラーシャッタークランクホイール]の注文を処理するマイクロサービスがあるとしましょう。注文が行われると、このマイクロサービスはメッセージブローカーにメッセージを送信できます(KafkaやRabbitmqなど)。インベントリ管理マイクロサービスなどの他のマイクロサービスは、これらのメッセージを聞き、それに応じてインベントリを更新できます。
スプリングクラウドストリームを使用してメッセージを送信して受信する方法の例を次に示します。
org.springframework.cloud.stream.annotation.enableBindingをインポートします。 org.springframework.cloud.stream.annotation.inputをインポートします。 Import org.springframework.cloud.stream.annotation.output; org.springframework.cloud.stream.annotation.streamlistenerをインポートします。 Import org.springframework.messaging.messageChannel; org.springframework.messaging.support.messageBuilderをインポートします。 org.springframework.stereotype.serviceをインポートします。 java.util.logging.loggerをインポートします。インターフェイスShutterOrderChannels {String input = "Shutter -Order -input"; string output = "shutter -order -output"; @input(input)org.springframework.messaging.subscribablechannel input(); @output(output)mesagechannel output(); } @EnableBinding(ShutterOrderChannels.class)@Service public class shutterorderService {private static final logger logger = logger.getLogger(shutterorderservice.class.getName());プライベート最終シャッターオーダーチャネルチャネル。 public shutterorderservice(shutterorderchannelsチャネル){this.channels = channels; } public void sendOrderMessage(string order){channels.output()。send(messagebuilder.withpayload(order).build()); } @streamListener(shutterorderchannels.input)public void handle ordermessage(string order){ogger.info( "receive order:" + order); //ここで、更新インベントリのように注文で何かをすることができます}}
このコードでは、シャッター注文に関連するメッセージを送信および受信できるサービスを作成しました。このようにして、異なるマイクロサービスは、非同期で分離された方法で互いに通信できます。
実際の世界シナリオでマイクロサービスの通信を管理することになると、サービスの発見についても考える必要があります。シャッターシステムの大きな春には、数十または数百のマイクロサービスがある可能性があります。各マイクロサービスが通信するために必要な他のすべてのマイクロサービスの正確な場所(IPアドレスとポート)を知ることは実用的ではありません。
Spring Cloud Netflix Eurekaは、サービスの発見に最適なツールです。マイクロサービスはEurekaサーバーに登録でき、他のマイクロサービスはEurekaサーバーを介して必要なサービスの場所を調べることができます。
Spring BootでEurekaサーバーをセットアップする方法は次のとおりです。
Import org.springframework.boot.springApplication; Import org.springframework.boot.autoconfigure.springbootapplication; Import org.springframework.cloud.netflix.eureka.server.EnableTeureKaserver; @SpringBootApplication @ENABLESEUREKASERVER PUBLIC CLASS SHUTTEREUREKASERVER {public Static void Main(String [] args){springApplication.run(shuttereurekaserver.class、args); }}
そして、マイクロサービスがユーレカサーバーに登録する方法は次のとおりです。
Import org.springframework.boot.springApplication; Import org.springframework.boot.autoconfigure.springbootapplication; Import org.springframework.cloud.netflix.eureka.EnableTeureKaclient; @springBootApplication @ENABLESEUREKACLIENT PUBLIC CLASS SHUTTERMICROSERVICE {public static void main(string [] args){springApplication.run(shuttermicroservice.class、args); }}
Eurekaを使用することにより、当社のマイクロサービスは、サービスの場所をコーディングすることなく、困難な必要なく簡単に互いに通信できます。
結論として、シャッター製品の春のマイクロサービス通信の管理は、当社のビジネスのスムーズな運用に不可欠です。 Restful API、メッセージベースのコミュニケーション、またはサービスの発見を介している場合でも、多くのツールが自由に使用できます。
Shutter製品の高品質のスプリングの市場にいて、トップの品質と効率性を確保するためにマイクロサービスを管理する方法に興味がある場合は、あなたとチャットしたいと思います。私たちはあなたの特定のニーズと、当社の製品があなたのビジネスにどのように適合するかについて議論することができます。調達の議論に手を差し伸べることをheしないでください。
参照
- スプリングブートドキュメント
- スプリングクラウドドキュメント
- RESTFUL APIデザインのベストプラクティス
- メッセージ - 分散システムのベースの通信




