记一下一周中遇到的问题

一、批量服务执行时报bean初始化失败的问题

具体情况:

在批量控制台执行作业时,一直报调用某个common层的服务失败,查看日志发现意思是没有定义该类。这个情况本地执行时没有遇到,部署上服务器才发现。

查问题流程:

1.检查zookeeper地址是否正确,考虑是连错了zookeeper中心。检查后发现没有错。

2.考虑到报错的含义为没有定义该类,应该是该项目缺少调用声明,检查dubbo配置文件中的consumer的定义,检查后发现也是定义了。

3.仍然觉得应该是没有配置好consumer。考虑到可能是读取配置文件失败,虽然该文件存在,但实际启动时没有读取进去。检查pom文件。pom文件内声明的编译阶段没有问题,因为已经部署上服务器,应该也不是这部分出的错。考虑是否为打包过程有问题。

4.检查pom中的打成jar包部分。由于配置文件均是使用统一替换、部署的方法,在打成jar包的时候,并没有将这些xml配置文件打包进去,这也是符合初衷的。

5.考虑到该问题发生在启动阶段(假设真的是配置文件未加载进去),查看启动脚本和启动入口程序。入口程序内配置文件使用得是classpath的相对路径,启动脚本中直接将jar包路径、配置文件路径加入该classpath。

6.回忆到pom中写的打包过程,虽然把xml文件除去,但却保留了这个文件夹,而文件夹的路径正好是jar包内,且classpath的定义中,jar包路径定义在了配置文件路径之前。

7.找到问题,程序启动时读取的文件夹读取错了,读到了classpath中的jar包内的文件夹(正好是dubbo配置文件文件夹还保留在里面,其他的配置文件文件夹没有放在里面,所以启动没有报错,没有涉及到RPC调用的方法也都正常工作)

8.修改pom,打包时将应该读取的配置文件的文件夹统统在打包时除去。重新打包部署一遍,测试执行,执行正常。


二、服务启动时内存溢出

脑壳痛,这个问题出现的情况发生在一台内存为16G的服务器上的,同时启动9个服务,会报内存溢出,无法创建新线程的问题。仅在启动时出现,启动后使用ps命令查看服务所在进程占用内存、free命令查看总内存使用情况都正常。

1.猜测是服务启动时新建线程数量过多,超过系统定义的最大线程数,但使用pstree命令查看发现几乎每个服务进程也只打开了40个左右的线程,总线程数应该远低于62335。应该不是这个原因。

2.因为服务设定的jvm大小是正常的,锅应该不在服务本身的内存占用(9个服务,每个min512,max1024),所以猜测是服务启动时需要加载的大文件过多,导致系统使用了过多的cache空间,同时启动的话释放速度没跟上,用free命令查看后只能看出cache确实占用了很大的内存空间,但是否是这个原因不确定,而且也不知道该如何去改。

3.在这种情况下没有办法只好先改启动策略了。让服务不要同时启动,几个几个服务先后启动。


三、配置中心初始化出错、日志输出中心初始化出错

哇……居然已经忘了这个怎么回事了……明明才过去没有多少天……真的不能太晚想总结啊,全都忘光了


四、程序问题

大部分是些逻辑问题、粗心写错了变量名称这样的问题……写程序时一定要仔细一些

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值