2

我下载了 GeoLite City 数据库,我可以使用 Java 访问该数据库,以通过以下方式获取 IP 地址的相应位置信息:

File file = new File("C:\\GeoLiteCity.dat");
LookupService lookup = new LookupService(file, LookupService.GEOIP_MEMORY_CACHE);
Location location = lookup.getLocation("123.123.12.34");

我的问题:在生产环境中,以上述方式为每个 IP 地址打开文件显然是不可取的。如何以生产方式使用此数据库(假设使用 GeoLiteCity.dat)?

任何输入或指针都非常感谢。

谢谢并恭祝安康!

4

1 回答 1

1

两个建议:

1. Make the LookupService static (lookup) and available in the memory (Singleton)
2. Load this file (or CSV file version) into a database (New tables, columns etc...)

我不确定数据库是否会大大提高性能,而不是仅仅将服务加载到内存中并对其进行搜索。随着这些 GeoLite 每周文件发布,也会有额外的清理/加载/索引数据库的开销。

于 2014-06-17T00:12:30.107 回答