然后为了迎合clustermap配置的这种设计,在clustermap的模版配置文件也需要改一下:
- <?xml version="1.0"?>
- <clustermap>
- <!-- 关于Merger的配置,这里我暂时不考虑merger多台的情况 -->
- <merger_list>
- <merger_cluster name=m1 level=1>
- <merger ip=${merger["host"]} port=${merger["port"]} protocol=http/>
- </merger_cluster>
- </merger_list>
-
- <!-- 下面是searcher的多行行列的配置,是一个二维数组 -->
- <search_list>
- <%
- id = 1 # 这个值是纪录searcher列的名字
- %>
- <!-- 第一个纬度,同一列的 -->
- % for searcher in searchers:
- <search_cluster name=c${id} docsep=false level=1 partition=0>
- <!-- 第二个纬度,同一行的 -->
- % for server in searcher["servers"]:
- <search ip=${server["host"]} port=${server["port"]} protocol=tcp type=mix />
- % endfor
- </search_cluster>
- <%
- id += 1
- %>
- % endfor
- </search_list>
-
- <merger_cluster_list>
- <merger_cluster name=m1>
- % for i in range(1, id):
- <search_cluster name=c${i} />
- % endfor
- </merger_cluster>
- </merger_cluster_list>
- </clustermap>
|
这样比如1行2列渲染出来成了:
- <?xml version="1.0"?>
- <clustermap>
- <merger_list>
- <merger_cluster name=m1 level=1>
- <merger ip=10.20.137.22 port=6088 protocol=http/>
- </merger_cluster>
- </merger_list>
-
- <search_list>
- <search_cluster name=c1 docsep=false level=1 partition=0>
- <search ip=10.20.150.60 port=6322 protocol=tcp type=mix />
- </search_cluster>
- <search_cluster name=c1 docsep=false level=1 partition=0>
- <search ip=10.20.150.61 port=6322 protocol=tcp type=mix />
- </search_cluster>
- </search_list>
-
- <merger_cluster_list>
- <merger_cluster name=m1>
- <search_cluster name=1 />
- </merger_cluster>
- </merger_cluster_list>
- </clustermap>
|
总结
上述就是我在测试中,对分布式环境的自动更新和批量性能测试,这样大大减少了我们来回捣固机器、修改配置的时间。而且对测试结果的自动收集和解析也可以帮助我们来分析测试结果。我觉得这是一个不错的尝试,大家可以都可以试试看。