2012-12-27 12 views
10

Z jakiegoś powodu, muszę użyć go jako mojego nowego języka backend projektu internetowego.jak korzystać z java z go

Jednak niektóre apisy, których będziemy używać, są napisane w Javie i spakowane w pliku .jar.

Jestem nowy i jak używać go do współpracy z Javą w spójny sposób, że gdy przychodzi żądanie HTTP, go obsłuży i przekaże niektóre funkcje do java, a następnie zwróci odpowiedź.

+0

Nie mam zbyt dużej wiedzy na temat języka programowania Go - jednak informacje te mogą być przydatne. http://programmers.stackexchange.com/questions/157536/how-can-i-write-a-set-of-functions-at-can-be-voked- from-almost-any- program –

+0

Spróbuj się zakwalifikować "użyj" lepiej (w tytule i poście). –

Odpowiedz

11

Jakiego interfejsu API udostępnia Twoja Java?

Jeśli udostępni interfejs API RPC, można użyć Go's json-rpc module.

Jeśli naraża REST API można wykorzystać Go's http module.

Można również zapoczątkować proces potomny (kodzie Java) i porozmawiaj z nim za pośrednictwem rur stdin i stdout. Do tego celu użyłbyś exec module.

To nie jest wyczerpująca lista komunikatów, tylko pierwsze trzy, które przychodzą na myśl. Można również użyć interfejsu API XML, pamięci współużytkowanej lub nazwanych potoków.

Również kolejka komunikatów, taka jak 0mq, może być tym, czego szukasz. 0mq obsługuje wiele trudnych bitów IPC, np. Sprawia, że ​​nadawcy odsyłają żądania wysyłania, jeśli odbiornik jest przeciążany, kadrowanie wiadomości i ponowne łączenie po awarii.

Istnieje wiele sposobów komunikacji między kodem Java a kodem Go. Myślę, że w końcu jest to najbardziej powszechne i proste dzięki HTTP API. Ujawnij RESTful lub RPC API na serwerze Java, uruchom go jako usługę HTTP API, napisz Go do obsługi przychodzących żądań HTTP, a następnie połącz się z Java API od Go, aby pomóc w tworzeniu odpowiedzi.

+0

Dziękuję za odpowiedź. Interfejs API to niektóre funkcje REST-ful API z HTTPS, ale nie sądzę, żebym mógł ponownie zawinąć cały API przy użyciu Go for Zestaw API jest zbyt duży. Ale myślę, że stdin i stdout może być dobrym sposobem, jeśli wydajność spełnia wymagania. Dam temu szansę. – nius

+0

Prawie zapomniałem kolejki wiadomości! – nius

+0

@nius, zaznacz tę odpowiedź jako zaakceptowaną. – kostix