Maxmind以单调方式注入新的DatabaseReader,以避免一次又一次地重新访问文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Maxmind以单调方式注入新的DatabaseReader,以避免一次又一次地重新访问文件相关的知识,希望对你有一定的参考价值。

在.net核心Web应用程序中,我想将new DatabaseReader作为单例注入。因此,我在启动类中使用AddSingelton。

services.AddSingleton(x => new DatabaseReader(pathToFile));

您认为重用DatabaseReader是个好主意吗?谢谢

答案

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

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

如果连接没有很好地锁定,也会出现问题,这可能会变得很奇怪。

例如,一个线程可能会释放连接,而另一个线程试图对它执行命令。

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

以上是关于Maxmind以单调方式注入新的DatabaseReader,以避免一次又一次地重新访问文件的主要内容,如果未能解决你的问题,请参考以下文章

MaxMind 免费 GeoLiteCity.dat 文件大小问题

如何解决这个 MaxMind GeoIP 重定向问题?

如何在 MySQL 中创建数据库以导入 Maxmind GeoLite2 city csv

我的 IP 地址的 Maxmind GeoIP 重定向异常

在 SQL Server 中查询 Maxmind GeoLite2 City Blocks csv 以获取 IPv6 和 IPv4 地址的 geoname_id

单调栈以及单调队列