我正在使用 Graphite.NET 记录到 statsD。在底层,它使用 UdpClient 写入 statD 服务器。来源。我认为将其创建为单例是有意义的,因为我会经常记录,而且每次我想记录时创建这个客户端和连接似乎都会有很多开销。这样做有什么缺点吗?如果连接中断会发生什么:会抛出异常吗?下次我尝试使用记录器时,StuctureMap 会重新创建记录器吗?这是我的 SM 配置的样子:
x.For<IStatsDClientAdapter>()
.Singleton()
.Use<StatsDClientAdapter>()
.Ctor<string>("hostname").EqualToAppSetting("GraphiteHostname")
.Ctor<int>("port").EqualToAppSetting("GraphitePort")
.Ctor<string>("keyPrefix").EqualToAppSetting("GraphiteKeyPrefix");