Как использовать java с go

По какой-то причине я должен использовать go в качестве моего нового базового языка веб-проекта.

Однако некоторый apis, который мы будем использовать, написан на Java и упакован в .jar файл.

Я новичок, и как я могу использовать совместное использование Java с тем, что при приеме HTTP-запроса go будет обрабатывать его и делегировать некоторую функцию java, а затем возвращать ответ.

Ответ 1

Какой API вы используете для Java?

Если он предоставляет API RPC, вы можете использовать Go json-rpc module.

Если он предоставляет RESTful API, вы можете использовать Перейти http-модуля.

Вы также можете создать дочерний процесс (ваш Java-код) и поговорить с ним через stdin и stdout. Для этого вы должны использовать модуль exec.

Это не исчерпывающий список сообщений, а только первые три, которые приходят на ум. Вы также можете использовать XML API, общую память или именованные каналы.

Кроме того, очередь сообщений, например 0mq, может быть тем, что вы ищете. 0mq обрабатывает множество хитрых битов IPC, например, отсылает отправители от отправки запросов, если получатель становится перегруженным, кадрирование сообщений и повторное подключение после сбоя.

Существует множество способов взаимодействия между вашим кодом Java и кодом Go. Я думаю, что в конечном итоге это наиболее часто и просто сделать это через HTTP API. Выполните RESTful или RPC API на Java-сервере, запустите его как службу HTTP API, напишите "Go", чтобы обрабатывать входящие HTTP-запросы, а затем подключаться к API Java из "Перейти", чтобы помочь в создании ответа.