首先,我正在收集有关此问题的信息,以便我能够以更优雅的方式实现此功能。
目标服务器(绿色圆圈)
这是我用来获取一些数据的api服务器。
特点:
https
连接get
个请求吗? ] 代理控制器(蓝色方块)
这是一个存储代理列表的简单服务器;发送和接收一些数据;我想谈谈我将在其上运行的软件。
特点:
如果我想扩展我的应用程序,我认为它应该是hashmap
存储ip =>令牌列表或数据库表。
工
只需分析json响应并将数据传递给db。
让我们更接近代理控制器服务器。
第一个想法:
newFixedThreadPoolExecutor
但在我看来,这个解决方案非常庞大且难以维护,我希望使用端点来收集统计数据,杀死或产生新工作人员等等。
第二个想法:
这个解决方案在我看来相当hacky。例如,如果工作者已经死了,代理服务器会向死亡工作者发送大量请求,这可能会导致数据丢失。
第三个想法:
与第二个相同,但代理控制器不是直接向工作人员发送数据,而是将其传递给某个总线。我找到一些关于apache camel的信息,允许我组织这个解决方案。在这种情况下,死亡工人是死亡工人,数据等于零(可能)。
当然,这三种情况都不能处理错误。通过使用其他数据重新发送请求可以解决一些错误。通过重新跨越工人可以解决一些错误。
所以在您看来,这种情况下最好的解决方案是什么?我是否会错过以后可能出现的隐藏问题?我应该使用哪些工具?
由于
答案 0 :(得分:0)
试图达到什么目标? 也许你考虑使用这种架构: NGINX(代理+负载平衡) - >工作服务员 - > DB SERVER(可能使用像Cassandra这样的NoSQL)