【发布时间】:2020-08-13 16:49:04
【问题描述】:
我在一个解决方案中有 4 个依赖的工作 Windows 服务,并使用 cassandrasharp 3.1.4 和 cassandra 2.0.6。
在第一个中,我使用以下命令初始化 clusterManager; (此代码仅适用于第一个服务,当我尝试在每个服务中配置 clusterManager 时,这些服务无法启动。)
CassandraSharp.Config.XmlConfigurator.Configure();
这是我的 app.config;
<configSections>
<section name="CassandraSharp" type="CassandraSharp.SectionHandler, CassandraSharp.Interfaces" />
</configSections>
<CassandraSharp>
<Cluster name="main">
<Endpoints>
<Server>kml-vm-cas-001.cloudapp.net</Server>
</Endpoints>
</Cluster>
</CassandraSharp>
和每个服务的 OnStop;
ClusterManager.Shutdown();
过程很简单,这些服务中的每一个都从不同的直播流中读取字符串,反序列化并推送到 cassandra。
string query = null;
ICqlCommand pocoCommand = null;
Task task = null;
using (ICluster iCluster = ClusterManager.GetCluster("main"))
{
query = string.Format("insert into Tvr.Zools (Part, Name, Ticks) values ('zools', '{0}', {1}) using ttl 86400;",
this.zools[i].Name,
dateTime.Ticks,
);
pocoCommand = iCluster.CreatePocoCommand();
task = pocoCommand.Execute(query).AsFuture();
task.Wait();
query = string.Format("insert into Tvr.Temps (Part, Name, Ticks) values ('zools', '{0}', {1}) using ttl 10800;", this.zools[i].Name, dateTime.Ticks);
pocoCommand = iCluster.CreatePocoCommand();
task = pocoCommand.Execute(query).AsFuture();
task.Wait();
}
这适用于小流,但是当这些服务开始捕获大量流时,我得到了这些异常;
System.ArgumentException: Can't find any valid endpoint
对于某些服务;
System.InvalidOperationException: ClusterManager is not initialized
我在每个服务中都尝试过,但没有成功;
CassandraSharp.Config.XmlConfigurator.Configure();
//push process..
ClusterManager.Shutdown();
很抱歉有任何遗漏的信息,如果有的话我会编辑。
已经谢谢了。
【问题讨论】: