問題タブ [microservices]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby - 同じホストで複数のマイクロサービスをホストするための設計アプローチ
複数のコンテナー化されたマイクロサービスで分離した Web アプリケーションに取り組んでいます。現在、約 20 のサービスがありますが、システム全体で 300 以上のサービスが必要になることは間違いありません。現在のほとんどのサービスと、将来的にはマシン全体を必要としないサービスもあるため、同じホストに複数のサービスを展開します。他の人がサービス間通信をどのように扱っているのか疑問に思っています。私の好みの方法は、REST ベースの通信を使用することでしたが...
同じマシンで複数の Web サーバーを実行するのは重すぎませんか? Ruby で開発していますが、Puma のような軽量の Web サーバーでも大量のメモリを消費する可能性があります。
UNIX ソケットを使用したカスタム通信チャネルの作成を開始しました。したがって、1 つの Web サーバーを開始すると、「ルーター」アプリは、UNIX ソケットを介してそのホストで現在実行中のサービスと通信します。しかし、努力する価値があるかどうかはわかりません。さらに、この種の通信を使用するには、すべてのサービスを作成してカスタマイズする必要があります。Ruby-on-Rails などのフレームワークを使用するのは難しいと思います。マイクロサービス アーキテクチャの全体的な魅力であるさまざまな言語を使用することもできます。車輪を再発明しようとしているような気がします。
それで、誰かがより良いアプローチを提案したり、私の現在のものに投票したりできますか?
助けていただければ幸いです。
ありがとう、
maven - Jenkins で SpringBoot Maven アプリケーションをデプロイする方法は?
組み込みの Tomcat サーブレット コンテナーで実行される Spring Boot アプリケーションがありますmvn spring-boot:run
。そして、プロジェクトを別の戦争としてスタンドアロンのTomcatにデプロイしたくありません。
コードを BitBucket/Github にプッシュするたびに、フックが実行され、Jenkins ジョブ (Amazon EC2 で実行) がトリガーされてアプリケーションがデプロイされます。
Jenkins ジョブにはビルド後のアクションがあります: mvn spring-boot:run
、問題は、ビルド後のアクションが終了したときにジョブがハングすることです。
これを行う別の方法があるはずです。どんな助けでも大歓迎です。
java - Gradle + Dropwizard + Shadow -> メインクラスが見つからないかロードできませんでした
Dropwizard と Gradle をビルド システムとして使用して、単純なマイクロサービスを作成しようとしています。データベースはなく、REST エンドポイントのみを公開します。
だから私はコントローラーを持っています:
私のアプリケーションのメインクラス:
例は、1 つの文字列プロパティを持つ単純な値オブジェクトです。MyConfiguration は現時点では空のクラスです。
そしてbuild.gradle:
しかし、ビルド後、次のように入力すると:
私はまだ得ています:
何か案は?
php - E コマース システムのマイクロサービス アーキテクチャのセッション
概念実証として、マイクロサービスの E コマース システムを開発する予定です。このアーキテクチャは、次の 3 つのコンポーネントで構成されています。
AJAXリクエストをに送信するJavaScriptベースのシングルページアプリケーション
他のサービスを呼び出して受け取った JSON データをフィードする REST API を備えたサーバー (API ゲートウェイ)
3 つのサービス: CatalogProvider、CustomersProvider、CheckoutProvider
今のところ、サービスはすべて Magento Shopsystem の API エンドポイントです。
REST Apiにリクエストを送信してMagentoシステムにユーザーをログインさせようとすると、サーバーは次のリクエストを送信するときにセッションを覚えていません。
また、Magento を使用してサーバー側でショッピング カートを処理し、REST Api 呼び出しによってアイテムを追加/更新/削除します。ここでも、セッションが失われたため、次のリクエストを送信すると追加されたアイテムが失われます。
だから私の質問は:
マイクロサービス アーキテクチャでのセッション処理に関する問題を解決するには、どのようなアプローチが考えられますか?
python - Flask を使用したマイクロサービス
いくつかの異なる REST API を公開し、Mongodb データベース、Redis キャッシュ レイヤー、およびバックエンド計算ライブラリを含むかなり大規模なシステムを構築しています。現在、API の構築に Flask-Restful を使用していますが、さまざまな理由から、データベース リソースを提供する Flask の別のインスタンスと、前面サイトの上に別のレイヤーを実行する必要もあります。ec2 のさまざまなマシンでこれらのさまざまなサービスを分離したい場合があるため、ブループリントは実際にはソリューションではありません。
本番サーバーとして Apache+WSGI を使用することを計画していましたが、各フラスコ サーバーには固有のポートが必要であり、これらすべてのマイクロサービスを管理するのは悪夢です。ゲートウェイ API の概念については聞いたことがありますが、それを実装する方法や実際にどのように見えるかについてのドキュメントを実際に見つけることができませんでした。
最近では、マイクロサービス/SOA は非常に大きな取引のように思えますが、ある意味では、私たちのアーキテクチャはそれに基づいて設計されています。しかし、特に特定の設定で、実際にそれを行う方法に関する情報を見つけるのに苦労しています。これらすべてのサーバーの管理は、潜在的な悪夢のように思えます。Docker を使用することで私たちの頭痛のほとんどが解決できるように思えますが、コンテナーの前に人々が何をしていたかを知りたいと思っています。
TLDR: マイクロサービス アーキテクチャを構成するフラスコ サーバーが多数あります。それを管理する方法がわかりません。