java web项目。每个用户登录都会开启几个线程,这样登录用户多了会不会导致线程太多

问题描述

java web项目。每个用户登录都会开启几个线程,这样登录用户多了会不会导致线程太多

使用的socket通讯,一个用户登录都开启一个socket并无限接收或发送报文信息,如果登录用户超过一定数量线程是否会达到服务器可开启的线程数?,如果会,该怎么优化?实在没有分了,求各位帮忙

解决方案

 如果你用的是Tomcat的话,那么它默认的处理请求的方式就是开启线程去处理用户请求的,所以当用户数量达到Tomcat的最大并发数临界时,它就会拒绝再处理超额的请求了,而且这种方式是socket阻塞模式。所以大并发管理下优化建议使用nio方式处理请求。具体是修改Tomcat的配置处理协议为nio方式。

解决方案二:

没有办法么?我看了好多例子和技术,好像都是对服务端进行了优化,客户端连接也挺多啊!要开启的线程也不少,本来我想的是启动的时候就开启1个socket,
然后拿这个接收到的报文信息分发给相应的登录用户,但是服务端需要做一些登录用户的控制,必须1个登录用户开启1个socket链接

解决方案三:

如果我使用websocket是不是能避免掉线程连接的问题?

解决方案四:

每个连接对应一个线程是肯定的,如果要合理安排线程的话使用线程池就行了

解决方案五:

客户端做定时断开重连的方式释放资源,不一定要一直保持长链接的

时间: 2024-10-09 14:37:45

java web项目。每个用户登录都会开启几个线程,这样登录用户多了会不会导致线程太多的相关文章

java web项目部署之后,运行几天会不正常,登录页面可以打开,但是进行任何数据库操作都会特别卡

问题描述 java web项目部署之后,运行几天会不正常,登录页面可以打开,但是进行任何数据库操作都会特别卡 java web项目部署之后,运行几天会不正常,登录页面可以打开,但是进行任何数据库操作都会特别卡,比如登录. 查了tomcat日志,宕机前只有一个MySQLSyntaxErrorException错误 大神分析一下 还有没有需要提供的东西?? 用的是java,tomcat7,springmvc,spring3.0,hibernate,mysql 解决方案 数据库连接使用完成后有没有关闭

封装-java web项目中用户实体类定义

问题描述 java web项目中用户实体类定义 在java web项目中,都有用户信息封装在用户实体类中.然后在控制类中多个方法都需要调用这个用户实体类.那么,第一种方案:我可以将这个用户实体类定义成全局变量,并在第一次登录的时候赋值,然后在之后的方法中就可以直接调用该全局变量.第二种方案:在登录的时候将用户实体类存入session中,然后在其他方法调用时,从session中取出该实体.请问这两种方案应该用哪种?如果是第二种,那是否应该将该用户实体定义为全局变量,然后在每次需要调用时,从sess

详解CentOS安装tomcat并且部署Java Web项目_Linux

1.准备工作 a.下载tomcat linux的包,地址:http://tomcat.apache.org/download-80.cgi,我们下载的版本是8.0,下载方式如图: b.因为tomcat的安装依赖于Java jdk,所以我们需要在判断linux系统下面是否安装jdk b.1 使用(Xshell)连接到Linux系统下面 b.2 输入命令:java -version,如果显示jdk版本号,则证明已经安装,如果不显示,则证明没有安装,如果没有安装,请参考下面地址进行安装:http://

eclipse上搭建maven多模块Java Web项目

1.模块化需求及项目模块说明 手头上有个已上线的系统,但因老板的特殊要求,系统需要不断的修改.还有就是公司市场部不定期地在举行一些微信活动,每一个活动都是周期性的,活动完了这个功能就要在系统中移除. 系统中就有三种模块:已经在系统中正常运行不需要再变更的模块.经常性变更的模块.用完就要移除的活动模块. 所以,我们需要把项目分成了下面几个模块. 简单说明一下: timetable-common是常用工具包存放的模块. wechat-api是微信接口模块,此模块用到了timetable-common

云服务器 ECS 建站教程:手工部署Java Web项目

手工部署Java Web项目 Tomcat 一个开源的且免费的 Java Web 服务器,常用来作为 web 开发的工具.它可以托管由 servlet,JSP 页面(动态内容),HTML 页面,javascript,样式表,图像(静态内容)组成的 Java Web 应用程序. 此外,将来随着业务的扩展,您可以利用阿里云强大的产品平台,平滑地横向和纵向扩展服务容量,例如: 扩展单个 ECS 实例的 CPU 和内存规格,增强服务器的处理能力. 增加多台 ECS 实例,并利用负载均衡,在多个实例中进行

Intellij IDEA采用Maven+Spring MVC+Hibernate的架构搭建一个java web项目

原文:Java web 项目搭建 Java web 项目搭建 简介 在上一节java web环境搭建中,我们配置了开发java web项目最基本的环境,现在我们将采用Spring MVC+Spring+Hibernate的架构搭建一个java web项目 Spring MVC+Spring+Hibernate结构介绍如下: Spring MVCSpring MVC的职责是作为web层框架,实现了我们常见的MVC模式 SpringSpring 作为服务层,利用自身特性IOC.AOP,提供数据从DA

java web项目答辩答辩题总结(书本网上语言答辩+自己的语言答辩)

答辩每个人的总分为1.5分.每个人主要问3个问题. 开发流程===>系统架构====>项目模块+功能===>项目得失重定向与转发:?九个隐式对象?get与post的区辨:?jsp有静态包含,动态包含,两者的区辨:?什么是MVC:?web系统架构:? java web项目答辩总结试题 注释:用楷体写的就是用自己组织的话来回答老师的问题. 1 http协议全名和特点 (答辩老师:你对HTTP的是怎么理解的: 答辩同学:首先HTTP是一种超文本传输协议,也是一种无状态的协议.        

使用Spring Boot来加速Java web项目的开发

我想,现在企业级的Java web项目应该或多或少都会使用到Spring框架的.   回首我们以前使用Spring框架的时候,我们需要首先在(如果你使用Maven的话)pom文件中增加对相关的的依赖(使用gradle来构建的话基本也一样)然后新建Spring相关的xml文件,而且往往那些xml文件还不会少.然后继续使用tomcat或者jetty作为容器来运行这个工程.基本上每次创建一个新的项目都是这么一个流程,而我们有时候仅仅想快速的创建一个Spring web工程来测试一些东西,或者是希望能节

阿里云部署Java web项目初体验(转)

          林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka          摘要:本文主要讲了如何在阿里云上安装JDK.Tomcat以及其配置过程.最后以一个实例来演示在阿里云上部署Java web项目. 本文实例访问:http://120.24.19.24:8080/JavaHelloWorld-0.0.1-SNAPSHOT/ (到2016.3.9就不能访问了) war包有需要的可以来这里下载:http://download.