我创建了一个简单的程序来读取文件并生成一个文件,它的工作完美。我担心如何使它实时拓扑。我想如果我修改源文件意味着添加一个新的记录它应该进来我的目标文件我怎么会做它无需重新部署在cluster.What我的拓扑结构一样,我需要配置来实现这一behavior.Below是本地提交拓扑代码: -如何让我的风暴拓扑实时工作?
Config conf= new Config();
conf.setDebug(false);
conf.put(Config.TOPOLOGY_MAX_SPOUT_PENDING,1);
TopologyBuilder builder = new TopologyBuilder();
builder.setSpout("file-reader",new FileReaderSpout(args[0]));
builder.setBolt("file-writer",new WriteToFileBolt(args[0])).shuffleGrouping("file-reader");
LocalCluster cluster= new LocalCluster();
cluster.submitTopology("File-To-File",conf,builder.createTopology());
Thread.sleep(10000);
cluster.shutdown();
thanx您reply..if我的源是一个数据库表和目标文件,那么我如何能实现实时processing.can我实现,而无需使用任何其他第三方的jar(即卡夫卡) – user2435082
根据我对实时做任何事情的理解,您需要确保持续处理数据(数据流)来源。这就是队列的概念。你可以查询一个数据库并检索一组信息(结果集/行)并处理它们(比如批处理),但是如果有人向db中添加新记录,你会怎么做?那么您需要某种机制来检测并使其可用于处理。你可以请分享你到底想要达到什么 – user2720864
我完全想要你说的相同的东西,如果有人向db中添加一条新的记录,那么我需要什么机制来检测它,并使它可用于processing.i只是想知道对于这种检测,Storm提供了什么(类名等) – user2435082