web
houbin0912
这个作者很懒,什么都没留下…
展开
-
tomcat websocket 并发问题解决(四)
又产生的问题自从上次做过优化之后,貌似程序跑的还行,但是,最近发现日志中有报这样的错:java.lang.IllegalStateException: The remote endpoint was in state [TEXT_PARTIAL_WRITING] which is an invalid state for called method at org.apache.tomcat.websocket.WsRemoteEndpointImplBase$StateMachin转载 2020-12-11 17:13:50 · 1739 阅读 · 0 评论 -
tomcat websocket 并发问题解决(三)
其实这个只是解决这个问题时引出来的知识点,自己顺带看了代码而已,不过我还是厚着脸皮写在一个系列了。Spring 的解决方案Spring 的解决方案是把原来的 WebSocketSession 封了一层,即org.springframework.web.socket.handler.ConcurrentWebSocketSessionDecorator,下面我们就看看大厂是怎么做的。类成员首先来看一下这个类中都有哪些属性 /** 这两个限制条件默认值参见 - org..转载 2020-12-11 17:12:46 · 935 阅读 · 0 评论 -
tomcat websocket 并发问题解决(二)
现在的问题现在问题回到最开始了,上一篇文章说过,因为 tomcat 的 session.sendMessage() 方法在并发环境下会抛出异常,我们为了保证程序的正确性,在 session 上加了同步限制。然而这种做法会因对 session 的竞争导致所有的消息事实上是同步进行的,系统中的全部消息形成了一个超长队列,造成了性能上的问题,下边我就讲讲我的解决思路和方法。解决思路首先,我想到的有两点:session.sendMessage() 方法仅提供了最小的线程安全保证,同时发送多条消息时虽转载 2020-12-11 17:11:33 · 1189 阅读 · 0 评论 -
tomcat websocket 并发问题解决(一)
工作这么多年了,从来没写过博客,2018 年打算改变一下自己,于是打算平时工作解决问题后整理一下,写成博客发出来,这个想法有一段时间了,但是因为拖延症,所以今天才写,希望这是一个好的开始。问题起源公司应用内有一个基于websocket的聊天室功能,一直有用户反应高峰时段聊天信息延迟的厉害,终于找时间抽空解决了一下。首先通过日志发现,聊天室/直播间内用户稍微多一点的情况下(30-50人),广播一条消息就会非常耗时,常常达到 10-20s检查代码发现 SessionUtil 的 sendMess转载 2020-12-11 17:09:45 · 1325 阅读 · 0 评论 -
websocket error code 错误码说明 (CloseEvent事件说明)
CloseEvent会在连接关闭时发送给使用WebSockets的客户端. 它在WebSocket对象的onclose事件监听器中使用.构造器EDITCloseEvent()创建一个CloseEvent.属性EDIT该接口也继承了其父类Event的属性.CloseEvent.code只读返回一个 unsigned short 类型的数字, 表示服务端发送的关闭码, 以下为已分配的状态码.状态码 名称 描述 0–999 保留...转载 2020-12-08 19:06:11 · 12434 阅读 · 0 评论 -
log4j.properties 详解与配置步骤
一、log4j.properties 的使用详解1.输出级别的种类ERROR、WARN、INFO、DEBUGERROR 为严重错误 主要是程序的错误WARN 为一般警告,比如session丢失INFO 为一般要显示的信息,比如登录登出DEBUG 为程序的调试信息2.配置日志信息输出目的地log4j.appender.appenderN转载 2016-10-11 19:53:08 · 313 阅读 · 0 评论 -
ssm框架使用druid数据库连接池(带事务配置和session监听)
一、druid简介 Druid首先是一个数据库连接池。Druid是目前最好的数据库连接池,在功能、性能、扩展性方面,都超过其他数据库连接池,包括DBCP、C3P0、BoneCP、Proxool、JBoss DataSource。Druid已经在阿里巴巴部署了超过600个应用,经过一年多生产环境大规模部署的严苛考验。同时Druid不仅仅是一个数据库连接池,它包括四个部分:Druid是转载 2017-12-05 09:12:16 · 4787 阅读 · 0 评论 -
QuartZ Cron表达式
CronTriggerCronTriggers往往比SimpleTrigger更有用,如果您需要基于日历的概念,而非SimpleTrigger完全指定的时间间隔,复发的发射工作的时间表。CronTrigger,你可以指定触发的时间表如“每星期五中午”,或“每个工作日9:30时”,甚至“每5分钟一班9:00和10:00逢星期一上午,星期三星期五“。即便如此,SimpleTrigger转载 2017-11-03 16:34:15 · 187 阅读 · 0 评论 -
ibatis传入数组或List类型参数小结
小结一下ibatis框架下,传入参数为数组类型或者是List类型的sql写法。特别说明,iterate标签仅支持数组和List类型,如果传入Set,Map或其它集合类型,Ibatis会抛异常。 1.传入数组类型,不需要标明parameterClasss,数组和List类型对象一样都可以用标签进行遍历。[sql] view plain copy转载 2017-08-15 18:45:11 · 1210 阅读 · 0 评论 -
Windows下的修改Tomcat的可用内存
tomcat默认可以使用的内存为128MB,在较大型的应用项目中,这点内存是不够的,轻微时,会使系统性能急剧下降,严重时,将导致系统无法运行,影响系统的稳定性。当内存不够用时,常见的问题就是报tomcat内存益处错误,从儿导致客户端包500错误的,如下:当用户执行一个大数据的应用时,系统会提示出错:前台错误为:HTTP Status 500-Dispatch[EAITool] to m转载 2017-05-11 16:41:10 · 675 阅读 · 0 评论 -
登录时session与用户
登陆session情况:同一session不同用户同一session相同用户不同session相同用户不同session不同用户通过给用户设置心跳开始时间,比如一小时。可以使用定时任务比如每分钟,去检查当前时间减去心跳开始时间是否已经超过心跳存活时间,如果超过清除此登陆用户session,需要重新登陆。在系统页面,每次用户去h原创 2017-04-19 16:15:54 · 1103 阅读 · 0 评论 -
org.quartz定时格式
格式: [秒] [分] [小时] [日] [月] [周] [年]序号说明是否必填允许填写的值允许的通配符1秒是0-59, - * /2分是0-59, - * /3小时是0-23, - * /4日是1-31, - * ? / L W5月是转载 2017-04-19 16:05:17 · 382 阅读 · 0 评论 -
Ehcache详细解读
Ehcache 是现在最流行的纯Java开源缓存框架,配置简单、结构清晰、功能强大,最初知道它,是从Hibernate的缓存开始的。网上中文的EhCache材料以简单介绍和配置方法居多,如果你有这方面的问题,请自行google;对于API,官网上介绍已经非常清楚,请参见官网;但是很少见到特性说明和对实现原理的分析,因此在这篇文章里面,我会详细介绍和分析EhCache的特性,加上一些自己的理解和思考转载 2017-01-19 17:31:00 · 273 阅读 · 0 评论 -
Tomcat8启动闪退问题的解决办法
首先感谢博主“六号码头”,本文是在他的原创文章《Apatch Tomcat8.0 的配置遇到问题全面总结》的基础上又做的补充。此文章默认已经安装并配置好了Android开发环境。这里少说两句关于Tomcat8的下载及安装。直接上Tomcat官网上下载Windows64位的zip版下载并解压,我的放到了D盘,解压目录为D:\apache-tomcat-8.0.转载 2017-06-10 15:22:46 · 3722 阅读 · 2 评论 -
Tomcat内存设置详解
一、常见的Java内存溢出有以下三种: 1. java.lang.OutOfMemoryError: Java heap space ----JVM Heap(堆)溢出JVM在启动的时候会自动设置JVM Heap的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)不可超过物理内存。可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置。He转载 2017-05-11 16:37:26 · 242 阅读 · 0 评论 -
https原理及tomcat配置https方法
一、 什么是HTTPS在说HTTPS之前先说说什么是HTTP,HTTP就是我们平时浏览网页时候使用的一种协议。HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全。为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。SSL目前的版本是3.转载 2017-04-15 19:52:25 · 497 阅读 · 0 评论 -
理解 RESTful WebService
RESTful 服务遵循REST(Representational State Transfer)的架构风格,中文翻译为:表现层状态转化对于所有的CRUD(Read/Create/Update/Delete),RESTFul架构基于HTTP的简单动作(GET,POST,PUT,And DELETE)来实现。它简单而且轻巧,比基于SOAP消息的WebService简单的多的一种轻量级Web服转载 2017-03-20 18:47:28 · 245 阅读 · 0 评论 -
android ksoap2调用cxf webservice
1.activity Java代码 package com.first; import org.ksoap2.SoapEnvelope; import org.ksoap2.serialization.SoapObject; import org.ksoap2.serialization.SoapSerializationEnvelope转载 2016-12-09 18:22:51 · 1074 阅读 · 0 评论 -
Struts1,2,Servlet,Spring MVC单例多例 线程安全
Struts 1单例,线程不安全,在请求的时候被第一次初始化 action中的service对象为何不会出现数据存储的错误,大体意思就是每一个用户发出一次请求后就有一个独立的线程与之绑定,且有一个对应的servlet实例,你在其之上做的操作只属于当前servlet实例,不会受其他servlet实例的影响,反之也不会影响其他线程的servlet实例。Struts 2默认多转载 2016-10-27 13:34:10 · 650 阅读 · 0 评论 -
同是流行MVC框架,比较Strtus2和SpringMVC的区别
Struts2和SpringMVC是比较流行的MVC框架,二者的工作流程大体相似,从下面两张图就可以看出。SpringMVC工作流程图图二 SpringMVC的工作流程描述 1. 用户向服务器发送请求,请求被Spring前端控制Servelt DispatcherServlet捕获; 2. DispatcherServle转载 2016-10-23 18:59:06 · 235 阅读 · 0 评论 -
Ant 下载、安装、使用、教程全面了解
Eclipse 内置了 Ant 。 Ant 是一种类似于批处理程序的软件包,它主要繁琐的工作是编写和调试自动处理脚本(一个 XML 文件),但只要有了这个脚本,我们就可以一键完成所有的设定工作。本节还是以 myswt 这个应用程序项目的打包为例,用 Ant 来完成“编译->打成 JAR 包->复制项目引用库->复制本地化文件 swt-win32-3063.dll ->输出 API 文档”这五步转载 2016-10-11 19:54:36 · 3426 阅读 · 1 评论 -
JNDI学习总结(三)——Tomcat下使用Druid配置JNDI数据源
com.alibaba.druid.pool.DruidDataSourceFactory实现了javax.naming.spi.ObjectFactory,可以作为JNDI数据源来配置。一、下载Druid的jar包 下载地址:http://mvnrepository.com/artifact/com.alibaba/druid/1.0.9,如下图所示: d转载 2016-09-14 11:03:11 · 7250 阅读 · 2 评论 -
JNDI学习总结(二)——Tomcat下使用C3P0配置JNDI数据源
一、C3P0下载 C3P0下载地址:http://sourceforge.net/projects/c3p0/files/?source=navbar 下载完成之后得到一个压缩包。二、使用C3P0配置JNDI数据源 Tomcat6.x中配置JNDI数据源时默认使用的是Tomcat6.x自带的DBCP连接池,Tomcat6.x使用DBCP连接池配置J转载 2016-09-14 11:01:36 · 415 阅读 · 0 评论 -
JNDI学习总结(一)——JNDI数据源的配置
一、数据源的由来 在Java开发中,使用JDBC操作数据库的四个步骤如下: ①加载数据库驱动程序(Class.forName("数据库驱动类");) ②连接数据库(Connection con = DriverManager.getConnection();) ③操作数据库(PreparedStatement stat = con.prepar转载 2016-09-14 10:33:14 · 586 阅读 · 0 评论 -
Apache + Tomcat +mod_jk- win7与linux下实现负载均衡与集群-
本文作者:陈超允chenchaoyun0写在前面的知识:1、关于mod_jkmod_jk简称JK,是Apache服务器的一个可插入模块,用于为Apache服务器提供处理JSP/SERVLET的能力。Apache作为一个很强大的Web服务器,本身缺乏处理JSP/SERVLET的能力,为了能够处理对JSP/SERVLET的请求,必须使用JSP/SERVLET容器,如转载 2017-11-03 18:44:39 · 422 阅读 · 0 评论 -
nutch和solr
nutch就是用于分布式采集数据源,solr用于建索引和搜索服务。nutch是分布式爬虫系统,solr是搜索引擎。lucene是一个做搜索用的类库。nutch和solr都是基于lucene的,二者都是可直接运行的应用程序。solr是lucene的服务器化,内嵌了jetty,提供REST接口,用户可以直接post数据给solr,然后由solr进行索引。solr不包含下载系转载 2017-06-09 17:25:59 · 341 阅读 · 0 评论 -
Netty 能做什么?
Netty是什么?1)本质:JBoss做的一个Jar包2)目的:快速开发高性能、高可靠性的网络服务器和客户端程序3)优点:提供异步的、事件驱动的网络应用程序框架和工具通俗的说:一个好使的处理Socket的东东如果没有Netty?远古:java.net + java.io近代:java.nio其他:Mina,Grizzly转载 2017-06-09 17:17:47 · 1255 阅读 · 0 评论 -
utf-8的中文,一个字符占几个字节
utf-8的中文,一个字符占几个字节https://blog.csdn.net/kindsuper_liu/article/details/80202150英文字母和中文汉字在不同字符集编码下的字节数英文字母:·字节数 : 1;编码:GB2312字节数 : 1;编码:GBK字节数 : 1;编码:GB18030字节数 : 1;编码:ISO-8859-1字节数 : 1;编码:UTF-8字节数 : 4;编码:UTF-16字节数 : 2;编码:UTF-16BE字节数 :.转载 2020-06-19 14:56:13 · 3913 阅读 · 0 评论 -
跨域策略文件crossdomain.xml的配置方法
一、crossdomain.xml文件的作用 跨域,顾名思义就是需要的资源不在自己的域服务器上,需要访问其他域服务器。跨域策略文件是一个xml文档文件,主要是为web客户端(如Adobe Flash Player等)设置跨域处理数据的权限。打个比方说,公司A部门有一台公共的电脑,里面存放着一些资料文件,专门供A部门内成员自己使用,这样,A部门内的员工就可以访问该电脑,其他部门人员则不允许...转载 2018-08-22 15:06:56 · 27000 阅读 · 0 评论 -
各种类型文件的Content Type,基本全部都有
CONTENT_TYPE = { 16 '.load': 'text/html', 17 '.123': 'application/vnd.lotus-1-2-3', 18 '.3ds': 'image/x-3ds', 19 '.3g2': 'video/3gpp', 20 '.3ga': 'video/3gpp', 21转载 2017-09-20 10:22:55 · 2868 阅读 · 0 评论 -
二进制流和文本流区别
在C中引入了流(stream)的概念。它将数据的输入输出看作是数据的流入和流出,这样不管是磁盘文件或者是物理设备(打印机、显示器、键盘等),都可看作一种流的源和目的,视他们为同一种东西,而不管其具体的物理结构,即对他们的操作,就是数据的流入和流出。这种把数据的输入输出操作对象,抽象化为一种流,而不管它的具体结构的方法很有利于编程,而涉及流的输出操作函数可用于各种对象,与其具体的实体无关,即具有通用转载 2017-07-06 11:03:38 · 5565 阅读 · 0 评论 -
Nginx+Tomcat搭建高性能负载均衡集群
Nginx+Tomcat搭建高性能负载均衡集群原创2015年08月19日 11:45:2364781一、 工具 nginx-1.8.0 apache-tomcat-6.0.33二、 目标 实现高性能负载均衡的Tomcat集群:原创 2017-11-03 19:39:15 · 281 阅读 · 0 评论 -
单点登录原理与简单实现
(2017-09-22更新)GitHub:https://github.com/sheefee/simple-sso一、单系统登录机制1、http无状态协议 web应用采用browser/server架构,http作为通信协议。http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关联,这个过程用下图说明,三次请求/响应对之间没有任何联系 但这原创 2018-04-13 19:00:58 · 300 阅读 · 0 评论 -
HTTP和HTTPS协议,看一篇就够了
https://blog.csdn.net/xiaoming100001/article/details/81109617转载 2019-06-12 10:25:24 · 316 阅读 · 1 评论