Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 并发登录和并发会话之间有什么区别? 背景资料_Java_Sql Server_Azure_Spring Data_Hikaricp - Fatal编程技术网

Java 并发登录和并发会话之间有什么区别? 背景资料

Java 并发登录和并发会话之间有什么区别? 背景资料,java,sql-server,azure,spring-data,hikaricp,Java,Sql Server,Azure,Spring Data,Hikaricp,使用连接到业务关键型Azure SQL Server实例的Hikari连接池处理Spring应用程序 委员会: 200名工人 200次登录 3万次会议 我们有3台应用服务器部署了Hikari CP 据我所知: 应用程序的Hikari连接池正在根据需要打开新的TCP连接,并将它们用于spring data/hibernate/等 来自应用程序POV的SQLConnection使用Connectionstring构建到服务器的TCP连接,协议数据(包括身份验证)和sql查询将通过该连接进行传输 根据

使用连接到业务关键型Azure SQL Server实例的Hikari连接池处理Spring应用程序

委员会:

  • 200名工人
  • 200次登录
  • 3万次会议
  • 我们有3台应用服务器部署了Hikari CP

    据我所知:

  • 应用程序的Hikari连接池正在根据需要打开新的TCP连接,并将它们用于spring data/hibernate/等
  • 来自应用程序POV的SQLConnection使用Connectionstring构建到服务器的TCP连接,协议数据(包括身份验证)和sql查询将通过该连接进行传输
  • 根据上面列出的限制,TCP连接的数量不受限制
  • 在我的理解中,worker实际上是对数据库执行SQL查询并检索结果的进程/线程
  • 如果可以并行化,一个查询/语句可能会使用多个辅助对象
  • (虽然还没有找到文档)很容易看出登录是由worker限制的,因为无论是谁登录并希望与DB交互,都需要一个worker来执行登录用户的安全上下文提供的语句
  • :“会话是指一次允许到SQL数据库的并发连接数。工作进程可以被视为SQL数据库中处理查询的进程。允许的最大会话数和工作进程数取决于数据库的服务层。”
  • 问题
  • spring应用程序是否可以使用相同的用户名和密码进行总共约30k个连接或约200个连接(假设没有其他应用程序连接到数据库)
  • 在此上下文中,Azure SQL登录/Azure SQL会话应如何解释

  • 注意:我知道我可以通过启动N个应用程序来连接和监控行为来测试这一点,但令我感到沮丧的是,我无法找到可以帮助我自己回答问题的相关文档。

    您对工人的理解是正确的

    登录是指使用服务器的用户。很少会遇到这个问题,但如果您的体系结构涉及大量断开/重新连接类型的操作,就会发生这种情况。用户名/密码在此上下文中并不重要。您只是不想尝试同时启动200个应用程序实例


    虽然遇到登录限制的情况非常罕见,但遇到会话限制是需要注意的。Hikari在池中创建的每个连接都算作Azure SQL端的一个会话。也就是说,只有3台服务器,您就可以在每个池中打开10k连接,一切正常。可能现在对你来说不是问题,除非你做了一些事情,阻止Hikari在需要时正确关闭连接。我对Hikari不太熟悉,所以我不能给出一个具体的例子说明是什么导致了这种情况。

    SQL Server如何区分来自同一应用程序的HikariCP的2个JDBC连接与来自两个不同应用程序的HikariCP的2个JDBC连接。我还没有找到任何明确说明这一点的文件。您能指出文档中描述了登录过程及其限制吗?SQL Server是如何处理它们的,因为即使在阅读了引用的论坛帖子之后,它仍然有点模糊。假设您有10名开发人员在您的应用程序上工作,他们都使用SSM连接到Azure SQL。他们将在Azure SQL中创建10个并发登录/工作和10个会话。现在让我们假设您的应用程序正在使用一个登录连接到Azure SQL,并且您的应用程序上有100个concurent用户。这将在Azure SQL中创建一个concurrent login/worker和100个并发会话。JDBC SQL驱动程序编程指南: