Zrozumienie ZeroMQ - zeromq

Tak jak prosiłem w poprzednim poście, chciałbym móc tworzyć programy lub funkcje napisane w różnych językach, aby komunikować się między nimi.

Ostatnio spotkałem się z zeromq i próbujęaby dowiedzieć się, czy jest to coś, co może mi pomóc, ponieważ zapewnia jakieś gniazda. Czy na przykład zeromq może wymieniać dane (lub przekazywać argumenty) między programem napisanym w Pythonie a programem lub funkcją napisaną w C ++ lub czy jest to funkcja zupełnie inna?

Odpowiedzi:

1 dla odpowiedzi № 1

Odp .: O tak, właśnie taka jest moc ZeroMQ lub nanomsg ramy

Oba są nie gniazda ale raczej ZACHOWANIE tworzone w kontekście a Zero-* - zestaw odważnych maksymów Scaleable faormal dokomunikacja Pattern faramework został zaprojektowany, opracowany i dostosowany do potrzeb.

Umożliwi to utworzenie własnej, szybkiej i inteligentnej warstwy komunikatów.

P: Jaki jest najlepszy następny krok?

Pomimo pierwszego wrażenia, zapomnij o wszystkim, co wiesz o gniazdach i wielowątkowych trikach synchronizacji.

Tak, raczej zapomnij i zbuduj nowe zrozumienie na "zielonym polu".

Weź Pietera HINTJENSA " książka "Code Connected, Volume 1" (dostępny w PDF ) i spędzić kilka tygodni na zrozumieniu zarówno motywacji, jak i typowych błędów, które Pieter wbił w tę przeczytaną biblię ZeroMQ.

Fragmenty kodu są niebezpieczny na wypadek, gdybyś nie dostał się lub całkowicie przegapił pełny kontekst z większy obraz.

Uwierz mi. Nie mogłem dać ci lepszej rady. Możesz sprawdzić moje inne posty w ZeroMQ i nanomsg, aby zobaczyć różnicę.

Z pewnością skorzystasz z tej książki, a ZeroMQ da ci wiele mocy, których nigdy (i nigdy nie uwierzysz) byłby gotowy do samodzielnego programowania od zera. Moc jest tak ogromna (jeśli dobrze wykorzystana).


nota bene

Do rzeczywistej komunikacji między procesami,jest jeden drobny problem, o którym należy pamiętać. Różne wersje ZeroMQ "Tak, moc ZeroMQ jest ogromna, niemniej jednak konieczne jest utrzymywanie kontroli wersji wbudowanej w warstwę wiadomości, aby rozwiązywać sytuacje, w których niektóre platformy nie mają ścieżki aktualizacji" nowsze "wydania dostępne." Poszedłem do tego problemu z ponowną integracją systemu transakcyjnego z komponentem, w którym tak stary jak zmq.__version__ == 2.1.11 było konieczne, podczas gdy ostatnie są wersjami znacznie powyżej 14.x.y, aby być pewnym, że będzie w 100% kompatybilny wstecz.

Mimo to ogólny potencjał jest tak ogromny, że rozsądnie jest wytrwać i wykonać zadanie. G / L na tym.


1 dla odpowiedzi nr 2

ZeroMQ to abstrakcja gniazd. Jest to platforma krzyżowa i wiele powiązań językowych: ja osobiście nie znam żadnego języka, który nie ma powiązań ZeroMQ.

Tak, możesz użyć ZeroMQ do komunikacji pomiędzy programem napisanym w Pythonie i programem napisanym w C ++.

Polecam przejść przez zguide ponieważ zawiera los bardzo przydatnych informacji o ZeroMQ.

PyZMQ może być używany jako powiązanie w Pythonie, oraz zmqpp dla twojego kodu C ++. Zauważ, że dla kodu C ++ możesz również użyć cppzmq lub bezpośrednio z API C zmq. Polecam używanie zmqpp jako jego wyższego poziomu i (imho) łatwiejszego w użyciu.