发表于: 2017-02-17 23:40:15

1 1861


今天完成的事情:

1、部署两台WEB,使用NginxUpstream来做负载。重新压测。

2、学习Redis

明天计划的事情:

1、将Memcache替换成Redis

2、开始任务8

遇到的问题:

1IDEA新建项目task6,把原来的项目原样复制过来、用tomcat启动后报错:

                                   

这个问题昨天就遇到了,一直没有解决,从报错信息上看是说com.danga.MemCached.SockIOPool类有一个方法getSockString[])返回了错误类型,但是我确定我的代码是没问题的,这个问题比较奇怪,没找到原因,最后把原来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、进行负载均衡时访问页面发现页面引用的cssjs和资源图片有失效了:

这种问题一看肯定就是资源路径不对了:

这个是因为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,启动也更方便。



返回列表 返回列表
评论

    分享到