.net core Maxmind以单音形式注入新的DatabaseReader,以避免一次又一次地重新访问文件

.net core Maxmind以单音形式注入新的DatabaseReader,以避免一次又一次地重新访问文件,.net-core,maxmind,.net Core,Maxmind,在.net核心web应用程序中,我希望以单例形式注入一个新的DatabaseReader。因此,我在Startup类中使用AddSingelton services.AddSingleton(x => new DatabaseReader(pathToFile)); 您认为重用DatabaseReader是个好主意吗? 谢谢单一连接是一个坏主意-如果对连接的访问被正确锁定,这意味着网站/应用程序一次只能为一个用户服务 这意味着您的应用程序可伸缩性受到极大限制,无法获得大量用户 当你的连接

在.net核心web应用程序中,我希望以单例形式注入一个
新的DatabaseReader
。因此,我在Startup类中使用AddSingelton

services.AddSingleton(x => new DatabaseReader(pathToFile));
您认为重用
DatabaseReader
是个好主意吗?

谢谢

单一连接是一个坏主意-如果对连接的访问被正确锁定,这意味着网站/应用程序一次只能为一个用户服务

这意味着您的应用程序可伸缩性受到极大限制,无法获得大量用户

当你的连接没有很好地锁定时,也会出现问题,事情会变得很奇怪

例如,一个线程可能会在另一个线程试图对其执行命令时处理该连接


更好的方法是使用连接池,在需要时创建一个新的连接对象。因此,您可以同时处理多个请求,您的限制应该是数据库。

是的,您应该跨并发请求重用
DatabaseReader
。读卡器是线程安全的,不依赖于锁来实现线程安全