Goプラットフォームを備えたアプリケーションサーバーで実行されているモジュラーコンポーネントに基づく設計を活用することは可能でしょうか?
Goでこの設計を不可能にする制限はありますか?
Goプラットフォームを備えたアプリケーションサーバーで実行されているモジュラーコンポーネントに基づく設計を活用することは可能でしょうか?
Goでこの設計を不可能にする制限はありますか?
Javaまたは.NETで利用できるアプリケーションサーバーに似たものはありませんが、GoをサポートするGoogleAppEngineがあります
Javaや.NETのようにGoでコードをロード/アンロードする方法はありません
別のGoアプリでロードするライブラリとしてgoをコンパイルすることはできません。
とにかく、Goでアプリケーションサーバーを作成できます。複数のプロセスがあり、プロセスを開始/停止することでコードをロード/アンロードします。
また、サーバー固有のコードをモジュールに埋め込むことにより、サーバー上でコードをコンパイルする場合もあります。たとえば、そのような追加のコードは、AppServerプロセス間通信を実装する場合があります。
この目的のために、XATMIサービスの概念に完全に適合します。これにより、個別の実行可能バイナリがステートレスサービスとして作成されます。また、アプリケーションサーバーは、ミドルウェアを介したIPC通信の管理、プロセススタチューの管理(すべてのプロセスの稼働を維持)、プロセスのリロード用のツールの提供などを行います。例として、Enduro / X ASGプロジェクト(https://github.com/ )について説明します。 endurox-dev / endurox-go)、これらすべてのタスクを実行します。また、分散トランザクション処理フレームワークを提供します。
私の理解では、Goの主な機能の1つは、アプリケーションサーバーを必要とせず、実行時にコードを追加/ロードできないことです。Goはコンパイルされ、(ほぼ)静的にリンクされ、実行可能ファイルを実行する準備が整います。
実行時のこのモジュールはすべて便利なように見えますが、特に展開と依存関係の複雑さが増すという大きな欠点があります。
Goコミュニティがモジュールシステムを「レバレッジ」と見なすのではないかと思います。