我读到了这样的评论:“根本不要使用JDBCRealm :它根本不缩放,因为有一个JDBC连接对象用于所有数据库通信。您最好使用DataSourceRealm。”
更详细地说,这意味着什么?
发布于 2016-03-01 20:29:19
如果您不知道为什么和什么领域-对于JAVA应用程序,身份验证和授权可以由应用程序或容器(Tomcat等)处理。如果选择使用容器,则需要指定一个用户存储区(一个存储用户名、希望加密的密码、角色等的地方)。在Tomcat的情况下,这甚至可能是Tomcat用户的xml。或者您可以使用数据库(MYSQL等)或目录(等)。Tomcat使用JDBC (您的JDBC领域)连接到数据库,使用JNDI(您的DataSourceRealm)连接到目录。
来问您的问题,JDBC连接是昂贵的,有池限制,并且存在高度同步,这意味着在高负载应用程序中,由于无法使用JDBC,某些请求的身份验证可能会失败。JNDI有更好的池读取优化,因此提供了更好的性能。
https://stackoverflow.com/questions/35732482
复制相似问题