2012-06-23 28 views
5

Python'da iki sunucuyu birbirine bağlamanın en iyi yolu nedir?Python'a iki tane bağ kurma

A ve B daemonlarım var. A modülünde B tarafından üretilen verileri almak istiyorum (belki çift yönlü). Her iki daemon eklentileri destekler, bu yüzden eklentilerdeki iletişimi kapatmak isterim. Bunu yapmanın en iyi ve çapraz platform yolu nedir?

Düşük seviyeli çözümler (paylaşılan bellek (C/C++), linux boru, soketler (TCP/UDP), vb.) Ve birkaç üst düzey - kuyruk (JMS, Tavşan), RPC'den birkaç mekanizma biliyorum.

Her iki sunucunun da aynı ana bilgisayarda çalışması gerekir, ancak açıkçası daha iyi bir yaklaşım, bağlantı türünden soyutlanmaktır.

Python'da tipik çözümler/kütüphaneler nelerdir? Zarif ve hafif bir çözüm arıyorum. Harici sunucuya ihtiyacım yok, sadece iki süreç birbiriyle konuşuyor.

Bunu yapmak için python'da ne kullanmalıyım? ne kadar ağır trafik olmakla http://code.google.com/p/protobuf/ https://developers.google.com/protocol-buffers/docs/pythontutorial

+1

Bir ileti sırası büyük olasılıkla en zarif çözümdür. – ThiefMaster

+0

Hmm mesaj sırasına göre RabbitMQ/JMS'yi anlıyorum vb. Tüm iletişimi yürütmek için harici üçüncü sunucu/sunucudan kaçınmak istiyorum. İletişimin çok yoğun olacağı gibi, belki de sıra en şık yol olsa bile, daha basit bir şeyin daha iyi olabileceğini düşünüyorum. – Simon

+1

Dbus diyorum ama şimdi dbus'un windows versiyonu var. – dav1d

cevap

2

Sen süreç iletişim için girişleri kullanabilirsiniz asyncore paketini öneriyorum. Kullanımı oldukça basit ve prizlere dayanmaktadır.

Uzun zaman önce bir komut deseni yaptım. Eğer ilgilenirsen kodu bulabilirim.