2016-04-11 12 views
1

Yani, girişin sırasının Tweet belgesinin olduğu bir çerçevem ​​var. Topolojimin onu okuması ve üç farklı harici API'sine çarpması gerekiyor.Fırtına I/O görevleri için en iyi topoloji tasarım desenleri

Her üçünün de ilerlemeden önce yapıldığından emin olmanın bir yoluna ihtiyacım var. BatchBolt'un iyi bir çözüm olduğunu düşünmüyorum, değil mi? Buna yardım eden var mı?

Düzenleme/Açıklama

üç API isabet sonuç gerekir. Belgenin bir sonraki bolt'a iletilmesinden önce bu yanıtları işlemek zorundayım.

cevap

0

Seni doğru anlarsam. Mesaj gönderen kafka emzik var. Ve her mesajın üç farklı sistemde teslim edilmesi gerekiyor. Bu, topolojiyi yapılandırmadan önce yapılabilir.

TopologyBuilder topologyBuilder = new TopologyBuilder(); 
topologyBuilder.setSpout("Generator", spout, 1); 
topologyBuilder.setBolt("External1", bolt1, 1).localOrShuffleGrouping("Generator"); 
topologyBuilder.setBolt("External2", bolt2, 1).localOrShuffleGrouping("Generator"); 
topologyBuilder.setBolt("External3", bolt3, 1).localOrShuffleGrouping("Generator"); 

Bu basit örnekte, 1 kafka ağzına 3 farklı cıvata bağlı. Emzik yaydığında mesaj her üç cıvataya aynı zamanda gider. Cıvatalardan biri tuple acknoledge değilse, başarısız olur ve tüm bu civatalara yeniden.

+0

Aah, no. Hepsinin harici bir API'ye basması ve sonucu bir sonraki civataya gönderilmeden önce geri göndermesi gerekiyor. – SarthakDev

+0

Yani bu 3 API sıralı olarak çağırmanız gerekiyor? – f1sherox

+0

Sıralı değil, ancak bir sonraki adıma geçmeden önce her üç sonuçtan da sonuçlara ihtiyacım var. – SarthakDev

İlgili konular