发表于: 2017-02-17 23:40:15
1 1861
今天完成的事情:
1、部署两台WEB,使用Nginx的Upstream来做负载。重新压测。
2、学习Redis
明天计划的事情:
1、将Memcache替换成Redis
2、开始任务8
遇到的问题:
1、IDEA新建项目task6,把原来的项目原样复制过来、用tomcat启动后报错:
这个问题昨天就遇到了,一直没有解决,从报错信息上看是说com.danga.MemCached.SockIOPool类有一个方法getSock(String[])返回了错误类型,但是我确定我的代码是没问题的,这个问题比较奇怪,没找到原因,最后把原来IDEA配置的tomcat移除后,又重新添加解决问题,
2、部署两台web,一个部署在tomcat上,端口号为8080,一个部署到jetty上,端口号为8085,在IDEA上用Jetty部署后,访问路径需要加上项目名称,比如访问首页的路径为:
http://localhost:8085/task6/index.html
但是这样就碰到一个问题,页面跳转使用的路径还是原来的路径,都是不带项目名的路径,导致其他页面都会报404,例如访问职业列表:
端口号后面没有项目名报了404错误,这个的解决方案是需要在pom.xml文件中配置jetty插件:
配置contextPath,这个是应用的上下文,我们的请求路径应该是:
协议+://+主机名:+端口号/+contextPath/
不设置这个的话默认为项目名称,但是这样的话,访问该项目的默认首页或者其他请求路径时,都需要在访问路径前加上项目名称,这也是我遇到的问题,这里把contextPath设置为“/”,这样就可以把项目名称省略。
用命令mvn jetty:run启动Jetty,这次又报错了:
这个的原因是org.eclipse.jetty.server.nio.SelectChannelConnector只能用在jetty7.0.0.1beta3之前的版本,我这里使用的jetty版本是旧版本,要用org.mortbay.jetty.nio.SelectChannelConnector:
port是端口号,改为8085,再次启动:
启动成功,端口号也已经改为了8085
3、进行负载均衡时访问页面发现页面引用的css、js和资源图片有失效了:
这种问题一看肯定就是资源路径不对了:
这个是因为task是我配置的upstream后面接的参数,nginx.conf配置文件修改一下:
收获:
1、添加upstream负载均衡后,再次压力测试:
这次进行应该对比的是用负载均衡和不用负载均衡的效果,
测试环境:
准备时长:10
循环次数:1
线程数每次增加
测试结果:
1)不用负载均衡的结果:
2)通过nginx负载均衡的结果:
用负载均衡时要注意一下,我nginx的端口默认为80,没有改动,之前用badboy录制时访问的端口是8080,现在就需要把各个页面的端口都改成80,这样才能通过访问nginx实现负载均衡:
对比两次结果发现,使用负载均衡和不使用负载均衡都会在线程增加到600时,出现Error,并且使用负载均衡的错误率还更高,负载均衡并没有带来理想的效果。关于这个的原因,看过老大在另一篇日报的回答,借用一下:
2、今天对jetty有了新的了解,jetty可以本地配置,也可以在IDE中当插件来配置,
以前对pom.xml中配置
的作用不是很了解,有时候不配置也能正常运行,其实这样配置的jetty是当插件来使用的,而且这种配置启动是用mvn命令启动的:mvn jetty:run
jetty本地配置时,并不需要在pom.xml文件中配置什么,而这种配置可以把项目war包放在jetty/webapps目录下,使用java -jar start.jar的方法启动jetty,当然也可以通过IDE配置本地jetty,启动也更方便。
评论