0

問題 :

私は複数のgrailsプロジェクトを持っています(appA、appB、appCとしましょう):正確にはサービス

それらを単一のgrails-appで実行したい..おそらくwarデプロイメントですが、どうすればこれを行うことができますか?

要件 :

クラウドにデプロイしていて、これらすべてのサービス インスタンスを個別に保持するのに十分なメモリがないため、これを単一のアプリにしたいと考えています。

複数の grails プロジェクトの理由はスケーラビリティです。そのため、後で appA の 10 個のインスタンス、appB の 3 個のインスタンス、および aapC の 1 個のインスタンスを実行したい場合。私はそれができるはずです。

編集:0mqのようなものを使用できますか?サービスを互いに分離しておくのに役立ちますか? サービスをどのようにパッケージ化しますか? また、0mq のドキュメントを読むと、インプロセスと外部プロセスの両方で機能するようです。HTTP での非同期 grails リクエストは、0mq in process/外部 mq 呼び出しで動作します。0mq は使用していませんが、最初のドキュメントからは機能しているようです。このシナリオでは、いくつかの体験呼び出しが必要です。

他の代替案または mq の代替案はありますか?

4

2 に答える 2

1

サービスがすでに分離されている場合は、それらをプラグインにする必要があります。

grails プラグインは、通常の grails アプリケーションによく似ており、ドメインクラス、コントローラー、サービスなどを追加できるため、現在のアプリケーションをプラグインに変換する作業はほとんどないでしょう。ほとんどの場合、構成を少しいじる必要があります。

次に、3 つのプラグインを含む 1 つの大きなアプリケーションを作成できます。後でそれらを個別のアプリケーションとしてデプロイする場合はいつでも、各プラグインを 1 つに含む 3 つの個別のアプリケーションを作成できます。

Grails plugins のドキュメントを確認してください。

于 2013-06-30T14:01:33.910 に答える
1

大規模な webapp を構築する場合は、DataSources プラグインを利用して、同じアプリ内の個別の接続を管理できます。遭遇する問題は、データソースのいずれかにアクセスできなくなると、jdbc 接続が確立されるまでプロジェクト全体が失敗することです。

于 2013-06-30T17:19:21.860 に答える