問題タブ [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.
meteor - 外部 meteor アプリケーションからフロントエンド メソッドを呼び出す
Docker 化されたサービス ベースのアプリケーションを作成しています。一部のサービスは meteor で記述されますが、そうでないものもあります。
サービスの 1 つは、ユーザーがプラットフォームに登録できる登録サービスです。
マイクロサービスを行うときは、通常、次のことを行います。
私がやりたいことは、loginWithFacebook
メソッドを使用することです。問題は、フロントエンドで使用Meteor.loginWithFacebook
すると、メインのフロントエンド サーバーでバックエンド メソッドが呼び出されることです。
ただし、RegistrationService サーバー (関連するパッケージがある) でそのバックエンド メソッドを呼び出したいと考えています。その理由は、Accounts.onCreateUser
フックを使用して余分なことを行っているためであり、登録サービスをフロントエンドから分離したいからです。
明確にするために、たとえそれが正しくなくても、私がこれを持っていると想像してください:
ただし、クライアント側のメソッド .loginWithFacebook を呼び出すときに、loginWithFacebook
メソッドでサーバー側のメソッドを使用する必要があるため、実際には次のような効果をもたらしたいと考えています。RegistrationService
これに関するヘルプは大歓迎です。ありがとうございました!
authentication - クロスマイクロサービスの承認と認証
多数の (ステートレス、HTTP ベースの) (マイクロ) サービスと多数の「デーモン」があり、これらのサービスを実際に使用してあらゆる種類のバックグラウンド処理を行うとします。
ここで、サービスとデーモンが相互に認証および承認できるようにする方法が必要です。たとえば、Orders のフルテキスト インデックス作成を実行するデーモンには、次のものが必要です。
- Orders、Customers (それ自体はCompaniesサービスへの読み取り専用アクセスが必要)、およびInventoryサービスへの読み取り専用アクセス
- フルテキスト インデックスを更新できるようにするための、 OrdersSearchサービスへの読み取りおよび書き込みアクセス。
ユーザーの「代わりに」動作するアプリケーションもあります。たとえば、Inventory Web アプリには Inventory Service への読み取りおよび書き込みアクセスが必要ですが、 Inventory Service自体は、アプリケーションを操作するユーザーのアクセス許可を確認する必要があります。
とはいえ、今説明したことをどのように達成できますか? 巨大なエンタープライズ フレームワークや標準は使用したくありません。私が読んだことから、Two-Legged OAuth2 が必要なものですが、正確にはわかりません。
「こんにちは、私は在庫サービスです。今私を呼んでいるカスタマーサービスは私にどのような権限を持っていますか?」のような質問に答えるために使用される承認サービスを確立することを考えていましたが、それには配布に関する 2 つの主要な弱点があります。共有秘密。
ejb - マイクロサービス アーキテクチャ パターンは EJB 1.0 と似ていますか?
マイクロサービスで見られるのは、分離されたコンポーネントであり、そのコンポーネントの親コンシューマーとネットワーク経由でプロトコルを介して通信します。
EJB 1.0 と非常によく似たパターンが見られます。
私の質問は、マイクロサービス アーキテクチャ パターンは EJB 1.0 と似ていますか?
mysql - 他のサービスと共有されるマイクロサービス データベース
私が検索したものの、直接的な答えが見つからないのは次のとおりです。
特定のサービスについて、そのサービスの 2 つのインスタンスが 2 台のマシンにデプロイされている場合、それらは同じ永続ストアを共有していますか、それとも何らかの同期メカニズム (マスター/スレーブ、クラスタリング) を備えた個別のストアを持っていますか?
たとえば、MySQL に裏打ちされた OrderService があります。多くの注文を受けているので、このサービスをスケールアップする必要があるため、2 つ目の OrderService をデプロイします。そのデータはどこから来たのですか?
ばかげているように聞こえるかもしれませんが、私には、すべての議論が、サービスとデータベースがパッケージ化されたユニットであり、一緒にデプロイされているように思えます。しかし、2 番目のサービスを展開するとどうなるかについて言及している議論はほとんどありません。
web-services - 複数の .Net サービスを接続する論理層
これが適切な場所であるかどうかはわかりませんが、ロジックアウトを個々のサービスに分離して、ほぼプラグアンドプレイタイプのシナリオを可能にする「概念的な」モジュラー設計アーキテクチャを考え出しました。サービス。機能のリストを考えて、必要なものだけを有効にします。
これを容易にするために、これらすべてを接続してデータの流れを制御する何らかのタイプのミドルウェアが必要になることに気付きました。ただし、これを達成するために何が適切かについての詳細はわかりません。
.NET SOAP ベースのサービスを使用してサービスを実装する予定ですが、これは Tibco のようなものを使用するケースですか?
何が最も適切であるか、またはどこから探し始めるかについての提案は素晴らしいでしょう.
上記の説明が意味をなさない場合、うまくいけば、この画像はサービス間の関係を説明する際に少し明確になります.
ありがとう。
git - マイクロサービス: 多くのマイクロサービスのソース コードを保存する方法は?
現在、1 つのプロジェクトに20 のマイクロサービスがあります。そして、すべてのマイクロサービスは個別の GIT リポジトリに保存されます。その後、サービスの数は200 (またはそれ以上) に増加します。
すべてのサービスには、単体テストと統合テストがあります。すべてのサービスには、TeamCity (継続的統合サーバー) が組み込まれています。
質問: 1 つのプロジェクトで 200 個のマイクロサービスのソース コードを保存するにはどうすればよいですか? 1 つのリポジトリにあるのか、別のリポジトリにあるのか?