Chúng tôi có cấu trúc liên kết bão, trong đó chúng tôi đã định cấu hình một vòi và hai bu lông. Spout truy vấn dữ liệu từ DB liên tục và gửi tuples nó đến bu lông đầu tiên cho một số xử lý. Bulông đầu tiên thực hiện một số xử lý và gửi các bộ xử lý tới bu lông thứ hai gọi dịch vụ web của bên thứ ba và gửi dữ liệu. Vì vậy, những gì đang xảy ra sau một thời gian, bu lông cuối cùng không nhận được bất kỳ bộ dữ liệu nào và nếu chúng ta khởi động lại cấu trúc liên kết thì nó hoạt động tốt. Chỉ bu-lông cuối cùng là vấn đề ở đây. Vòi khác và bu lông đầu tiên đang chạy tốt, và tôi không sử dụng khuôn khổ acking. Tôi đã cấu hình chỉ một công nhân trong trường hợp này`.Tác vụ của Apache Storm Bolt không nhận được thông báo sau một thời gian
TopologyBuilder builder = new TopologyBuilder();
builder.setSpout("messageListenrSpout", new MessageListenerSpout(), 1);
builder.setBolt("processorBolt", new ProcessorBolt(), 20).shuffleGrouping("messageListenrSpout");
builder.setBolt("notifierBolt", new NotifierBolt(),40).shuffleGrouping("processorBolt");
Config conf = new Config();
conf.put(Config.TOPOLOGY_SLEEP_SPOUT_WAIT_STRATEGY_TIME_MS, 10000);
//conf.setMessageTimeoutSecs(600);
conf.setDebug(true);
StormSubmitter.submitTopology(TOPOLOGY, conf, builder.createTopology());
Xin chào Chris, tôi không sử dụng khung công tác acking. Liệu cơn bão vẫn còn thời gian chờ tin nhắn? Nếu thông báo đang hết thời gian chờ, chúng tôi có thể kiểm tra nhật ký. Và tôi đã đưa ra gợi ý song song với 30 của bu-lông cuối cùng. –