我想设置一个休息api端点作为风暴喷口,即每当请求端点url(例如
http://example.com/search?q=test)时,我想用某些螺栓执行风暴拓扑.
问题是并非所有的时间请求都是,也应该在一定的时间间隔内调用spout的nextTuple()方法,并且不知道这个时间间隔是什么.我怎么能听到一个http url请求,并在发出请求时执行拓扑?如何控制并发请求以及如何确定否.工作人员执行拓扑,因为该网址的流量不确定.
一种替代解决方法是,我想到在请求发出时将请求推送到kafka队列,然后使用kafka spout.没有使用kafka这样做的任何其他想法?
我需要做两个工作:将请求处理成json格式,然后将json字符串生成为kafka队列.风暴是一个更好的解决方案吗?
我是否必须考虑像Spark那样的替代框架来做到这一点?
最佳答案 你需要看看
Storm DRPC.简单来说,Storm DRPC就像一个函数,你提供params,你会得到一个结果.您的Storm拓扑将用于提供答案.
让您的REST端点将请求发送到Storm DRCP.