`
shootyou
  • 浏览: 81793 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论
文章列表
还是一个异常引发的故事: 需要实现一个手机客户端行为分析的需求,手机客户端需要上传一些数据文件。手机客户端通过http协议post方式上传数据文件的时候,我们发现在服务器端无法通过request.getInputStream()获取到相应的数据,调用request.getInputStream()读取数据里头啥都木有。 经过各种尝试我们注意到如下的情况: 1.在不做任何修改的情况下,调用request.getParameter()可以获取到部分数据,即url拼接参数的数据。 2.在不做任何修改的情况下,如果在之前任何地方都不调用request.getParameter(),而 ...
写shell免不了要远程执行shell命令,自然就要实现免登陆。免登陆的原理: 首先说明一下处理机制: 1.非对称密钥就是一对密钥-公钥和私钥。 2.私钥由系统中没个人自己持有,一般保存在自己的电脑里或u盘里。 3.公钥则在网络上传递,就是可以传递给通信中的对方,也就意味这可以被黑客截获。 4.用某个人的私钥加密的数据只有用那个人的公钥解密,同样用公钥加密的数据也只有用私钥解密。 这样我们在信息处理中的应用一般的流程可以是这样: 假设我们有两个消息方a和b 1.a要b发消息,首先得到或者由b传递给a一个b的公钥。 2.然后a用b的公钥加密消息 ...
WAP页面访问速度慢的问题已经基本解决,目前WAP页面访问速度已经正常。 原因是经过优化后的Linux内核参数在CMWAP访问时会出现问题。 影响CMWAP访问的两个参数是: net.ipv4.tcp_tw_reuse=1表示开启重用。允许将TIME-WAITsockets重新用于新的TCP连接,默认为0,表示关闭; net.ipv4.tcp_tw_recycle=1表示开启TCP连接中TIME-WAITsockets的快速回收,默认为0,表示关闭。 这两个参数如果设置为1 开启,服务器性能会得到优化,但是却会影响 ...
第一种方案,当然是写一个后台运行的脚本一直循环,然后每次循环sleep一段时间。 while true ;do command sleep XX //间隔秒数 done 第二种方案,使用crontab。 我们都知道crontab的粒度最小是到分钟,但是我们还是可以通过变通的方法做到隔多少秒运行一次。 以下方法将每20秒执行一次 crontab -e * * * * * /bin/date * * * * * sleep 20; /bin/date * * * * * sleep 40; /bin/date 说明:需要将/bin/date更换成你的命令即 ...
大家都知道默认情况下linux的1024以下端口是只有root用户才有权限占用,于是我们的tomcat,apache,nginx等等程序如果想要用普通用户来占用80端口的话就会抛出permission denied的异常。 解决办法有两种: 1.使用非80端口启动程序,然后再用iptables做一个端口转发。 2.假设我们需要启动的程序是nginx,那么这么做也可以达到目的。 一开始我们查看nginx的权限描述: -rwxr-xr-x 1 nginx dev 2408122 Sep 5 16:01 nginx 这个时候必然是无法正常启动的。 首先修改文件所属用户为roo ...
昨天解决了一个HttpClient调用错误导致的服务器异常,具体过程如下: http://blog.csdn.net/shootyou/article/details/6615051 里头的分析过程有提到,通过查看服务器网络状态检测到服务器有大量的CLOSE_WAIT的状态。   在服务器的日常维护过程中,会经常用到下面的命令:   netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
今天解决了一个HttpClient的异常,汗啊,一个HttpClient使用稍有不慎都会是毁灭级别的啊。 这里有之前因为route配置不当导致服务器异常的一个处理:http://blog.csdn.net/shootyou/article/details/6415248 里面的HttpConnectionManager实现就是我在这 ...
  转载注明出处,谢谢~ http://blog.csdn.net/shootyou     前段时间帮助公司解决了一次tomcat环境服务器的异常,今天有时间过来总结一下。   问题的表现: tomcat服务在重启之后,短时间内会承受大量访问,由于这个时候缓存 ...
starling是一个ruby写的开源的消息队列服务器,具体介绍和安装可以参见: http://www.ooso.net/archives/506   今天为服务器安装starling的时候出现了下面的异常。简单说下解决方法。   执行gem install memcache-client starling的时候出现了: ERROR: http://gems.rubyforge.org/ does not appear to be a rep ERROR: could not find gem mysql locally or in a repository   原因是伟大的G ...
我们经常会在JSP页面上使用: <%@ page trimDirectiveWhitespaces="true" %>这个命令可以使jsp输出的html时去除多余的空行(jsp上使用EL和tag会产生大量的空格和空行)。   但是这个命令是从JSP2.1规范以后才得到支持。 所以在tomcat 6.0之前的版本上如果使用这个命令就会抛出异常: Page directive has invalid attribute: trimDirectiveWhitespaces   解决方法是: 1.升级tomcat至6.0以上版本 2.Tomcat 5.5 ...
转载请注明出处,谢谢~ http://blog.csdn.net/shootyou/archive/2011/05/12/6415248.aspx   在一次服务器异常的排查过程当中(服务器异常排查的过程我会另起文章),我们决定使用HttpClient4.X替代HttpClient3.X或者HttpConnection。 为什么使用HttpClient4?主要是HttpConnection没有连接池的概念,多少次请求就会建立多少个IO,在访问量巨大的情况下服务器的IO可能会耗尽。 HttpClient3也有连接池的东西在里头,使用MultiThreadedHttpConnectionM ...
使用Nginx作为反向代理服务器的时候会发生这种情况。   客户端请求 -> Nginx转发 -> tomcat服务器     默认配置的情况下,tomcat服务器拿到的头信息都会变成Nginx服务器代理之后的头信息,例如Host将会变为Nginx服务器的IP。   那么tomcat服务器在分析服务器日志的时候就拿不到真实客户端的ip了。所以需要在nginx配置如下信息。   server_name www.mydomain.com; location /myproj/repos { set $fixed_destination $http_des ...
背景: 企业环境下使用域名轮询 + 多台tomcat 来平衡负载,tomcat之间共享数据库,因为没用到session所以并没有做tomcat集群的配置。多个tomcat之间会使用rsync文件同步来同步工程文件,举例说来就是,用一台服务器作为主服务器, ...
问题描述: 使用JSP自定义标签时,发现标签内的私有变量在页面第一次请求之后就不会发生变化了。而且不同的页面同样的标签变量值不一样。 问题猜想: 原以为JSP自定义标签在JSP编译的时候会被new出来,但是看样子JSP在编译的时候用了缓存池来存放解析后的标签的对象。并且这个缓存池针对同一个页面是共享的。 问题原因跟踪: 查看JSP编译成的servlet代码,发现标签的实例果然不是new出来的,而是这么创建的: com.xxx.tag.XXTag _jspx_th_xxx_005fxx_005f0 = (com.xxx.tag.XXTag) _005fjspx_005ftagPool_ ...
为了给高并发情况下的mysql进行更好的优化,有必要了解一下mysql查询更新时的锁表机制。一、概述MySQL有三种锁的级别:页级、表级、行级。MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking);BDB存储引擎采用的是页面锁(page-levellocking),但也支持表级锁;InnoDB存储引擎既支持行级锁(row-level locking),也支持表级锁,但默认情况下是采用行级锁。MySQL这3种锁的特性可大致归纳如下: 表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。 行级锁:开销大,加锁慢;会出 ...
Global site tag (gtag.js) - Google Analytics