JDBCRealm 和 DataSourceRealm 有什么区别?

What is the difference between JDBCRealm and DataSourceRealm?

我读了这条评论:"don't use JDBCRealm at all: it does not scale at all since there is a single JDBC Connection object used for all database communication. You are better off using DataSourceRealm"

更详细的意思是什么?

如果您不知道为什么以及什么领域 - 对于 JAVA Web 应用程序,身份验证和授权可以由应用程序或容器(Tomcat 等)处理。 .如果选择使用容器,则需要指定用户存储(存储用户名、希望加密的密码、角色等的地方)。这甚至可能是 tomcat-users xml incase of Tomcat。或者您可以使用数据库(MYSQL 等)或目录(Active Directory 等)。 Tomcat 使用 JDBC(您的 JDBC 领域)连接到数据库,并使用 JNDI(您的 DataSourceRealm)连接到目录。

关于您的问题 JDBC 连接很昂贵,有池限制,并且受到高同步的影响,这意味着在高负载应用程序中,由于不可用 JDBC,某些请求的身份验证可能会失败。 JNDI 具有更好的池读取优化,因此提供更好的性能。