今天和运维在一起测试我写的一个程序时,在日志中发现了一个error,然而我写完程序后自测时是OK的,想起测试之前我拍着胸脯打包票说“我的程序肯定没问题”时,红扑扑的小脸没地儿搁了。
有问题那就解决!
先说下程序背景,我的程序的目的是从Cassandra
集群中取数据,然后根据取得的数据生成一个配置文件供别的程序使用。程序结构还蛮简单的,用Python
来写。
Cassandra集群有6台,这里就用编号1-6表示。连接的代码如下:
# 设置登陆Cassandra的用户、密码
auth = PlainTextAuthProvider(_config['username'], _config['password'])
cluster = Cluster(_config['addresses'], auth_provider = auth)
session = cluster.connect(_config['keyspace'])
具体使用cql
语句的时候就像session.execute(cql)
这样子使用。
好了,以上代码在自己的测试环境中跑毫无问题。
but,运维跑得时候就有问题了,日志如下:(这里只贴了关键日志)
2016-12-13 15:26:42,725 - cassandra.pool - DEBUG - 76 - create_file_for_mbw : Host 1 is now marked up
2016-12-13 15:26:42,725 - cassandra.pool - DEBUG - 76 - create_file_for_mbw : Host 2 is now marked up
2016-12-13 15:26:42,725 - cassandra.pool - DEBUG - 76 - create_file_for_mbw : Host 3 is now marked up
2016-12-13 15:26:42,725 - cassandra.pool - DEBUG - 76 - create_file_for_mbw : Host 4 is now marked up
2016-12-13 15:26:42,726 - cassandra.pool - DEBUG - 76 - create_file_for_mbw : Host 5 is now marked up
2016-12-13 15:26:42,725 - cassandra.pool - DEBUG - 76 - create_file_for_mbw : Host 6 is now marked up
2016-12-13 15:26:42,970 - cassandra.cluster - DEBUG - 76 - create_file_for_mbw : [control connection] Finished fetching ring info
###### 到这里是收集完成Cassandra集群信息
2016-12-13 15:26:42,970 - cassandra.cluster - DEBUG - 76 - create_file_for_mbw : [control connection] Rebuilding token map due to topology changes
2016-12-13 15:26:43,077 - cassandra.cluster - DEBUG - 76 - create_file_