我读到这条评论:"根本不要使用JDBCRealm:它根本不可扩展,因为有一个JDBC连接对象用于所有数据库通信。你最好使用DataSourceRealm"
更详细地说,这意味着什么?
如果您不知道为什么以及领域是什么 - 对于 JAVA Web 应用程序,身份验证和授权可以由应用程序或容器(Tomcat 等)处理。如果选择使用容器,则需要指定用户存储(存储用户名,希望加密的密码,角色等的地方)。这甚至可能是你的雄猫用户xml,以防Tomcat。或者你可以使用数据库(MYSQL等)或目录(Active Directory等)。Tomcat 使用 JDBC(您的 JDBC 领域)连接到数据库,并使用 JNDI(您的数据源领域)连接到目录。
回答您的问题,JDBC 连接价格昂贵,具有池化限制,并且存在高同步性,这意味着在高负载应用程序中,由于 JDBC 不可用,某些请求的身份验证可能会失败。JNDI 具有更好的池化被读取优化,因此提供更好的性能。