我有一个原型风暴应用程序,它读取STOMP流并将输出存储在HBase上.它有效,但不是很灵活,我试图以与我们的其他应用程序更一致的方式设置它,但没有太多运气搞清楚当前使用Storm的方式.我们使用spring-jms类,但不是以标准spring方式使用它们,而是在运行时创建它们,并手动设置依赖项.
这个项目:https://github.com/granthenke/storm-spring看起来很有前景,但由于风暴罐被带入apache孵化器并重新包装,因此几年内没有被触及并且没有正确构建.
有没有我想念的东西,或者将这些东西整合在一起是不值得的?
最佳答案
事实上,风暴春天似乎是你正在寻找的,但它没有更新,并有限制(例如,不能在螺栓/喷口上定义任务等).也许你应该推动自己的整合?
原文链接:https://www.f2er.com/spring/432717.html不要忘记你的目标:一个拥有许多工人的集群.当您在另一个工作人员上使用storm api(例如,重新平衡)部署拓扑时,spring的行为如何?是否意味着在Storm部署目标螺栓/喷口并定义执行程序之前,必须在启动时在工作者JVM上实现新的Spring上下文?
恕我直言,如果你只在Spring配置中定义Storm组件它应该工作(拓扑的启动配置然后风暴只管理对象)但是如果你依靠Spring来管理其他组件(对于spring-jms来说似乎如此),那么它可以例如,在拓扑重新平衡上变得混乱(每个worker / jvm单身?还是整个拓扑?).
由你来决定是否值得这么麻烦,我对Spring配置的关注是你很容易忘记风暴拓扑(它似乎是一个JVM,但可以更多).我个人每个类加载器定义自己的单例(例如静态final或者如果我需要延迟instanciation,则使用双重检查锁定),因为它不会隐藏(中高)复杂性.