何らかの理由で、新しいWebプロジェクトのバックエンド言語としてgoを使用する必要があります。
ただし、使用する一部のAPIはJavaで記述され、.jarファイルにパッケージ化されています。
私は行くのが初めてですが、HTTPリクエストが来ると、goがそれを処理して関数をJavaに委任し、応答を返すという一貫した方法で、goを使用してJavaと連携するにはどうすればよいですか。
JavaはどのようなAPIを公開していますか?
RPC APIを公開している場合は、Goのjson-rpcモジュールを利用できます。
それがRESTfulAPIを公開している場合は、Goのhttpモジュールを利用できます。
子プロセス(Javaコード)を生成し、stdinおよびstdoutパイプを介してそれと通信することもできます。そのためにexecモジュールを使用します。
これは完全なコミュニケーションリストではなく、頭に浮かぶ最初の3つだけです。XML API、共有メモリ、または名前付きパイプを使用することもできます。
また、0mqのようなメッセージキューがあなたが探しているものかもしれません。0mqは、受信者が過負荷になった場合に送信者が要求の送信を取り消す、メッセージフレーミング、障害後の再接続など、IPCの多くのトリッキーなビットを処理します。
JavaコードとGoコードの間で通信する方法はたくさんあります。結局、HTTPAPIを介してこれを行うのが最も一般的で簡単だと思います。JavaサーバーでRESTfulまたはRPCAPIを公開し、HTTP APIサービスとして実行し、着信HTTPリクエストの処理にGoを記述してから、GoからJava APIに接続して、応答の作成を支援します。