2012-02-19 14 views
5

Obecnie używam szyn do obsługi statycznych stron internetowych i eksperymentuję z NodeJs, aby obsłużyć pewien aspekt czasu w mojej aplikacji.Jak zorganizować komunikację między serwerem Nodejs a szynami?

Udało mi się wykonać jednokierunkową komunikację między Nodejsem a serwerem Rails, dzięki temu, że Nodejs pisze do db i mój serwer railsowy czyta z niego.

Teraz chcę zrobić inaczej, aka akcja w Railsach wywoła akcję w Nodejs. Oczywiście mogę być głupi i mieć węzeł nieprzerwanie odpytujący serwer bazy danych.

Jakie są moje opcje?

  1. Konfigurowanie połączeń między RPC zarówno
  2. założyć gniazda TCP obie strony

Czy istnieją prostsze/szybsze opcje?

Odpowiedz

3

Dobrze technicznie masz wiele sposobów na inter process communication, jeśli chcesz coś łatwego wierzę, powinieneś przyjrzeć się dnode który zapewnia RPC na TCP lub nazwanych potoków i ma ruby implementation. Wykonywanie połączeń RPC jest bardzo łatwe, a ponieważ jest to protokół TCP, można go używać na wielu komputerach.

Możesz także mieć kolejkę wiadomości, taką zeromq, ale uważam, że będzie to niepotrzebne obciążenie. Byłoby dobrze, gdybyś miał ze sobą więcej niż dwie rozmowy.

Oprócz tych wszystkich, jeśli chcesz uzyskać minimalne opóźnienie, jeśli oba procesy działają na jednym komputerze, uważam, że powinieneś używać potoku nazwanego i stdio do komunikacji, ale nie znam żadnego modułu w węźle, który pomoże ci to zlikwidować i musisz zbudować własny moduł RPC na stdio.

+3

Aby dodać do tego, należy rozważyć zeromq, jeśli chcesz ekosystem, w którym musi być agnostyczny język - gdzie różne procesy napisane w różnych językach mają komunikować się ze sobą za pomocą standardowego protokołu. Właśnie to może zapewnić zeromq - uprość warstwę komunikacyjną i spraw, aby procesy naprawdę ze sobą rozmawiały. –

3

Jeśli używasz Redis, niedawno napisał redis_message_capsule:

to zrobić. Możesz go wypróbować lub zmodyfikować zgodnie z własnymi upodobaniami.

+0

+1 To naprawdę fajne rozwiązanie. Dzięki za niesamowitą pracę. – lorefnon

Powiązane problemy