Java 跨多个tomcat服务器拆分一个请求,以从Cassandra DB获取数据

Java 跨多个tomcat服务器拆分一个请求,以从Cassandra DB获取数据,java,spring,tomcat,cassandra,Java,Spring,Tomcat,Cassandra,我们有6台tomcat服务器在这个环境中运行,我的应用程序war部署在每台服务器上。在当前场景中,我使用分页从cassandra获取所需数据。假设数据库中有10000条记录,它将首先获取1-1000条记录,然后获取下一组数据。重要的一点是,它只使用一个tomcat服务器,因为这是一个等待时间更长的请求 现在,我想把这个请求分成6个不同的tomcat服务器,比如第一个tomcat将获取1-1000行,然后是第二个1001-2000行,等等。然后将所有响应聚合为单个响应。所以,在Camel中是否有任

我们有6台tomcat服务器在这个环境中运行,我的应用程序war部署在每台服务器上。在当前场景中,我使用分页从cassandra获取所需数据。假设数据库中有10000条记录,它将首先获取1-1000条记录,然后获取下一组数据。重要的一点是,它只使用一个tomcat服务器,因为这是一个等待时间更长的请求


现在,我想把这个请求分成6个不同的tomcat服务器,比如第一个tomcat将获取1-1000行,然后是第二个1001-2000行,等等。然后将所有响应聚合为单个响应。所以,在Camel中是否有任何方法可以使用springdsl将单路由请求分散到多个tomcat服务器上,这样我就可以利用所有服务器来提高性能。感谢您的宝贵意见。谢谢。

不幸的是,无法一次以不同的偏移量在单个分区内翻页。定义从每个查询返回的分页状态。然后使用该分页状态检索下一页的行。分页状态被视为内部状态,不应进行操作。在java驱动程序2.0.10/2.1.6中,有一种机制可以设置语句的分页状态,但它非常严格,因为分页状态必须从原始查询中派生出来,因此您可以在以后保留该状态,并在其他时间继续查询

但是,如果你正在做范围查询,因为你有很多行,一个选项是要考虑的是,它有一个将范围查询分解成令牌范围的机制,并将令牌范围的查询委派给提交给火花工作者的任务。如果您可以在每个tomcat实例中运行spark worker,这可能是一个选项。

您可以结合使用聚合策略。后者可用于将来自子消息的回复组合成来自拆分器的单个传出消息。您可能还想查看这个组件,因为它非常灵活和健壮