您的位置:首页 > 运维架构

2016-01-26部署openfire踩坑汇总

2016-01-26 14:29 183 查看

前言:

本来以为是个很简单的活,就是加两个节点的服务器即可。哪儿想到搞了我和泉哥一上午。。。

当然大多是泉哥的功劳,我还有待提高啊。

在此记录今天踩到的坑:

一是提醒自己下次别再犯二了。一定不能马虎。。虽然我已经很认真了,但还是遗漏了一些点。

二是记录一些奇怪的未解之谜留待以后分析。

任务:在原有系统上加入一个集群的2台openfire服务器(节点3)

需改动的地方:

1.web服务端代码的xmpp连接池加入登录新集群的一个客户端

2.openfire源码配置文件连接redis,这里修改成新的名称。和web服务端代码里面的设置保持一致

准备工作:

1.copy openfire至两个节点,并修改openfire的redis配置文件

2.内存设置

3.服务器简单调优

4.服务器防火墙设置

5.老大修改端口及进一步优化服务器

6.web代码修改

开始部署:

1.关服务,防火墙Deny客户端连接端口

2.修改上次的遗留问题,Hazelcast插件没设置member

3.启动所有openfire,成功。padian登录,成功!

4.登录管理控制台查看状态。

问题1:
新的集群中有一台openfire管理控制台登录错误。

解决:
查看错误日志,发现端口被占用,进而查看端口占用情况,发现遗留的mysql。
进入mysql的配置文件查看,发现确实占用了相同的端口。
干掉mysql,问题解决。


5.感觉服务器正常。替换应用服务器代码的相应少数class(并未重新部署war)

启动应用服务器tomcat(接下来才是蛋碎的开始。。。)

问题2:
tomcat启动失败,错误日志是spring无法注入Bean A

解决:
前面干了些无用功。后来认真看了日志,怀疑是环境问题。即class替换过程中引起的问题,不属于错误。
于是重新替换整个工程的class。此问题解决。
然依旧报错,后来各种排查,定位问题出在我的本机环境为JDK1.8,而服务器是JDK1.7。于是整了重新再来,依旧报错。
继续排查问题,找到了一个我马虎的错误。
ExecutorService pool = Executors.newFixedThreadPool(2);此时3节点应该是3.

又弄了一些,启动成功了,调试程序。发现新节点的消息收不到。


问题3:
此时问题定位到openfire,开始查看openfire源码。
继续定位问题,发现是新节点的openfire没有注册进入redis。
查看error.log日志未报异常。


问题4:
继续各种找啊查啊,最后决定改源码加打印。

解决:
问题定位到了,SingletonHolder这个内部类NoSuchClass
思索了半天,认定这是个和前面Bean A一样的环境问题,不想重新部署了。于是把这个内部类单例模式干掉,使用了静态工厂模式创建单例,替换这个class,问题解决。


上述情况有个需要注意的是:

在替换class的时候一定要注意这个class的内部类也要一起替换!

问题5:
尼玛,还是不行啊。redis里面没写进去啊

解决:
又给openfire一次性加了一大堆打印,一步步调试,发现是openfire读取redis配置文件有问题啊,尼玛。
这台服务器拷贝的其他服务器的好嘛?我TM什么都没干就改了一个字母,还审视了很久没有空格之类的多余啊。
好吧,搞了半上午了,蛋碎了。本来我想试试new一个properties重新试试的。但是泉哥烦躁了,直接就Jedis池那写死了,不用配置文件了。好了,改了重新部署。OK!


继续测试,某个功能OK,某个接口的功能不OK。

问题X:
WARN PageNotFound:194 - Request method 'POST' not supported

解决:
这个问题是说SpringMvc的某个路径POST请求没成功。
泉哥的马虎:之前调试的时候
@RequestMapping(value = "/msg/xxx", method = RequestMethod.POST)
多加了这个/msg,干掉之后异常消失.


蛋碎的一上午。

总结一下吧。

1.千万要仔细仔细再仔细,无论是我还是泉大神都犯了个2.特别是在部署服务这种事情上,一定要再三检查,不然是给自己挖坑啊!!!

2.环境问题,有大神说的好,出问题了重启,重换war!虽然不全对,但是真的咱这行这个是真理啊。

N次了,都是因为只替换class出的问题。再三警戒!

3.有些问题咱是无能为力的~~,比如同样的配置文件为何最后在这个系统读不出来啊 我去?路径打印出来是没错的啊?没办法,只好绕道了,以后再研究吧。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: