近段时间很忙,可以说是忙成狗了,几乎每天都是在加班中度过。脑子里经常会有很多东西闪现,然后过段时间就会忘记了。估计是到了某个阶段,人类必须得用上备忘录,todo之类的工具来辅助我们的生活。
接下来的一段时间,想把最近遇到的一些问题,来写出来记录一下,就把blog当做是备忘录了。
先把之前一些待解决的问题罗列一下,这样好让自己以后方便解决问题。
1、一次切流量引发的程序无法处理。系统采用的dropwizard+Guice的框架结构,线上已有部分项目使用这个基础框架,运营正常,很流畅。但是前几天的一次切流量动作引起了jetty队列暴增且CPU爆表无法处理业务的情况。
现象:
整个系统处于挂起状态,无任务反应,连系统日志都不会写入。
org.eclipse.jetty.util.thread.QueuedThreadPool: dw{STARTED,64<=256<=256,i=0,q=500} rejected...
An I/O error has occurred while writing a response message entity to the container output stream...
WARNING: Unknown HK2 failure detected:...
怀疑原因:
Jesery 2 和 Guice的搭配引起的系统不兼容, 在此之前已经遇到过类似无法注入,不兼容的问题.
问题待查明
现在先改成spring boot +jetty的方案运行在线上, 因为同是jetty , 所以除了jetty的版本bug 其他的不可知会。
空闲的时候,继续用干净的dropwizard 不适用Guice的方案,来测试一次。若结果正常,再引入Guice 再次测试,如果异常,就可以判断为兼容问题, 然后 jesery 和Guice之间 一直都没人能弄干净,官方也没打算解决的意思。