storm拓扑从kafka读取数据并写入cassandra表
在storm中,我正在prepare方法中创建cassandra集群连接和会话。
cassandraCluster = Cluster.builder().withoutJMXReporting().withoutMetrics()
.addContactPoints(nodes)
.withRetryPolicy(DowngradingConsistencyRetryPolicy.INSTANCE)
.withReconnectionPolicy(new ExponentialReconnectionPolicy(100L,
TimeUnit.MINUTES.toMillis(5)))
.withLoadBalancingPolicy(
new TokenAwarePolicy(new RoundRobinPolicy()))
.build();
session = cassandraCluster.connect(keyspace);
在execute方法中,我可以处理元组并将其保存在cassandra表中
假设如果我想将数据从一个元组写入多个表,那么为每个表编写单独的bolt将是一个不错的选择。但是我必须在每个螺栓中创建集群连接和会话表。
但是在这个链接中,每个集群一个连接将是提高性能的好主意http://www.datastax.com/dev/blog/4-simple-rules-when-using-the-datastax-drivers-for-cassandra
你们有没有想过在一个螺栓中创建群集连接并在另一个螺栓中使用此连接?
1条答案
按热度按时间yi0zb3m41#
这取决于风暴如何分配螺栓和喷口的工人。您不能假设可以共享螺栓之间的连接,因为它们可能运行在不同的worker(读:jvms)中,或者完全运行在不同的节点上。
在这里看到我的答案:mongo连接池风暴拓扑
可能类似于以下伪代码: