锘??xml version="1.0" encoding="utf-8" standalone="yes"?>久久亚洲国产精品五月天婷,亚洲日韩精品射精日,国产乱辈通伦影片在线播放亚洲http://www.tkk7.com/xiaomage234/category/55036.html鐢熷懡鏈氨鏄竴嬈″噭緹庣殑婕傛祦錛岃蹇嗕腑鏀句笉涓嬬殑錛屾案榪滄槸瀛╂彁鏃朵唬鐨勯偅涓浠芥氮婕笌綰湡錛?/description>zh-cnTue, 17 May 2016 07:25:21 GMTTue, 17 May 2016 07:25:21 GMT60dubbo涓殑閭d簺鈥滃潙"(3)-netty4-rpc緗戠粶鎺ュ彛涓殑楂樺茍鍙戠殑bughttp://www.tkk7.com/xiaomage234/archive/2016/05/17/430556.html灝忛┈姝?/dc:creator>灝忛┈姝?/author>Tue, 17 May 2016 07:25:00 GMThttp://www.tkk7.com/xiaomage234/archive/2016/05/17/430556.htmlhttp://www.tkk7.com/xiaomage234/comments/430556.htmlhttp://www.tkk7.com/xiaomage234/archive/2016/05/17/430556.html#Feedback0http://www.tkk7.com/xiaomage234/comments/commentRss/430556.htmlhttp://www.tkk7.com/xiaomage234/services/trackbacks/430556.html

鍦ㄥ嚑涓湀鍓嶆敼閫燿ubbo鏃訛紝netty4宸茬粡紼沖畾寰堜箙浜嗭紝涓鏃舵墜鐥掞紝鎸夌収netty3-rpc鐨勬簮鐮佸厠闅嗕簡涓濂梟etty4錛屽湪淇浜嗗ぇ閲忕殑鍖呫佺被鍨嬩笉鍚屼箣鍚庯紝鍩烘湰淇濇寔浜唍etty3鐨勯鏍鹼紝騫跺彂閲忓皬鎴栬呮暟鎹寘寰堝皬鏃訛紝涓鍒囬兘寰坥k, 鍦ㄨ繘琛屽ぇ騫跺彂嫻嬭瘯鏃訛紝緇撴灉鍜宯etty3瀹屽叏涓嶅悓錛屽熀鏈敤鎯ㄤ笉蹇嶇澒鏉ュ艦瀹廣傜敱浜庡綋鏃舵ヤ簬寮鍙憄hp瀹㈡埛绔紝灝辨妸netty4-rpc褰撳仛涓涓け璐ョ殑緇勪歡瀛樻。璧鋒潵錛?nbsp;鍓嶅嚑澶﹑hp-dubbo寮鍙戝熀鏈畬鎴愪箣鍚庯紝榪斿洖榪囨潵鎬濊僴etty4-rpc鐨勯棶棰橈紝緇忚繃浠旂粏鍒嗘瀽鏁版嵁鍖呯殑瑙f瀽榪囩▼錛屽崟姝ヨ窡韙簮鐮?/p>

NettyCodecAdapter, TelnetCodec, ExchangeCoedec錛屽彂鐜癇yteBuf鐨勭紦鍐插尯涓?024,褰撴暟鎹秴榪?024鏃訛紝浼氳皟鐢ㄥ嬈ecoder.messageReceived鍑芥暟錛岀涓嬈″垎鏋恉ubbo鐨勫崗璁ご鏃訛紝鏄紜殑錛岀浜屾涔嬪悗鏁版嵁灝遍敊璇簡錛岀劧鍚巇ubbo鍐呴儴緙撳啿鍖虹殑鏁版嵁瓚婃潵瓚婇暱錛屼絾鏄粛鐒跺垎鏋愪笉鍒頒竴涓畬鏁寸殑dubbo鏁版嵁鍖?/p>

鍥犳鍘葷湅netty4鐨勬簮鐮侊紝鍙戠幇AbstractNioByteChannel涓湁緗戠粶鏁版嵁鎺ユ敹鐨勪唬鐮佹椂榪欎箞澶勭悊ByteBuf鐨?br style="padding: 0px; margin: 0px;" />

  ByteBuf byteBuf = null;
            int messages = 0;
            boolean close = false;
            try {
                int totalReadAmount = 0;
                boolean readPendingReset = false;
                do {
                    byteBuf = allocHandle.allocate(allocator);
                    int writable = byteBuf.writableBytes();
                    int localReadAmount = doReadBytes(byteBuf);
                    if (localReadAmount <= 0) {
                        // not was read release the buffer
                        byteBuf.release();
                        close = localReadAmount < 0;
                        break;
                    }
                    if (!readPendingReset) {
                        readPendingReset = true;
                        setReadPending(false);
                    }
                    pipeline.fireChannelRead(byteBuf);
                    byteBuf = null;

鐪嬭娌★紝鍐呮牳鏄渶瑕丅yteBuf.release鐨勶紝緇х畫閫氳繃byteBuf鐨勪竴涓疄鐜癙ooledByteBuf鍒嗘瀽婧愮爜錛屽師鏉ユ槸瀹炵幇浜嗕竴涓熀浜庣畝鍗曡鏁板簲鐢ㄨ鏁扮殑寰幆浣跨敤鐨勭紦鍐插尯錛屼竴鏃﹁鏁板彉涓?錛岃緙撳啿鍖鴻褰掕繕鍒皀etty4鍐呮牳錛岃鍚庨潰鐨勬暟鎹鍙栫嚎紼嬮噸鏂頒嬌鐢?/p>

鑰屾垜浠琁nternalDecoder鐨勪唬鐮佷負

      message = com.alibaba.dubbo.remoting.buffer.ChannelBuffers.wrappedBuffer(
                    input.toByteBuffer());

鐩存帴寮曠敤浜咮yteBuf.toByteBuffer錛岀戶緇煡鐪嬫簮鐮乁npooledHeapByteBuf, 鍏秚oByteBuffer瀹為檯鏄鍐呴儴鏁版嵁鐨?/p>

涓涓猲io灝佽鑰屽凡錛屽洜姝わ紝浣跨敤涓婅堪鍑芥暟鏃訛紝瀵艱嚧dubbo鐨刣ecode淇濆瓨浜嗕竴涓煇涓涓狟yteBuffer鐨勫唴閮ㄦ暟鎹紝浣嗘槸铏芥湁璇?/p>

buffer琚綊榪樺埌netty4緙撳啿鍖轟腑琚驚鐜紩鐢紝涓嬩竴嬈″彲鑳借鍏朵粬璇誨啓綰跨▼閲嶆柊鏀瑰啓鏁版嵁錛屽洜姝わ紝楂樺茍鍙戜笅褰撶紦鍐插尯琚噸澶嶄嬌鐢ㄦ椂錛宐ytebuf灝嗙敱浜庤鏁伴棶棰樹笉鏂浣跨敤錛岃岃В鐮佸櫒涓己鍌誨偦絳夊緟銆?/p>

瑙e喅鏂規

1.閫氳繃byteBuf鐨剅etain鍜宺elease鍑芥暟淇濊瘉璁℃暟鐨勬湁鏁堟э紝閫氳繃紼嬪簭渚嬪鎴栬呯紦鍐插尯琚嬌鐢ㄥ畬鎴愭椂鍊欏綊榪楤yteBuf鍒皀etty4鍐呮牳

2.鎷瘋礉鏁版嵁鍒癲ubbo鐨勭紦鍐插尯涓?/p>

鎬濊冿細

netty3 鏄惁涔熸湁璇ラ棶棰樺憿錛燂紵錛?/p>

]]>
dubbo涓殑閭d簺鈥滃潙鈥?1) - 鍏充簬MINA浼犺緭鍗忚鐨刡ug瀹氫綅鍙婁慨澶?/title><link>http://www.tkk7.com/xiaomage234/archive/2016/05/17/430554.html</link><dc:creator>灝忛┈姝?/dc:creator><author>灝忛┈姝?/author><pubDate>Tue, 17 May 2016 07:24:00 GMT</pubDate><guid>http://www.tkk7.com/xiaomage234/archive/2016/05/17/430554.html</guid><wfw:comment>http://www.tkk7.com/xiaomage234/comments/430554.html</wfw:comment><comments>http://www.tkk7.com/xiaomage234/archive/2016/05/17/430554.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/xiaomage234/comments/commentRss/430554.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/xiaomage234/services/trackbacks/430554.html</trackback:ping><description><![CDATA[from:http://my.oschina.net/aruan/blog/351594<br /><br /><p style="padding: 0px; margin: 20px 0px; line-height: 28.8px; letter-spacing: 0.5px; font-size: 16px; word-wrap: break-word; word-break: break-all; font-family: 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', STHeiti, 'WenQuanYi Micro Hei', SimSun, sans-serif; background-color: #ffffff;">鍚屼簨鍒橀槼浣跨敤dubbo鏈嶅姟鍣ㄤ腑閰嶇疆mina浣滀負緗戠粶浼犺緭灞傦紝鍙戠幇澶у茍鍙戞儏鍐典笅錛岃В鐮佸彂鐢熷涓嬪紓甯?/p><p style="padding: 0px; margin: 20px 0px; line-height: 28.8px; letter-spacing: 0.5px; font-size: 16px; word-wrap: break-word; word-break: break-all; font-family: 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', STHeiti, 'WenQuanYi Micro Hei', SimSun, sans-serif; background-color: #ffffff;"><span style="padding: 0px; margin: 0px; font-family: 寰蔣闆呴粦; font-size: 14px; letter-spacing: normal; line-height: 21px; widows: auto;">014-12-01 18:00:44,652 [DubboServerHandler-10.1.19.13:20880-thread-164] WARN  alibaba.dubbo.remoting.exchange.codec.ExchangeCodec (ExchangeCodec.java:596) -  [DUBBO] Fail to encode response: Response [id=8119, version=2.0.0, status=40, event=false, error=Fail to decode request due to: RpcInvocation [methodName=null, parameterTypes=null, arguments=null, attachments={input=242}, headers=null], result=null], send bad_response info instead, cause: null, dubbo version: 2.5.5, current host: 127.0.0.1</span><br style="padding: 0px; margin: 0px;" /><span style="padding: 0px; margin: 0px; font-family: 寰蔣闆呴粦; font-size: 14px; letter-spacing: normal; line-height: 21px; widows: auto;">java.lang.NullPointerException</span><br style="padding: 0px; margin: 0px;" /><span style="padding: 0px; margin: 0px; font-family: 寰蔣闆呴粦; font-size: 14px; letter-spacing: normal; line-height: 21px; widows: auto;">    at com.alibaba.dubbo.rpc.protocol.dubbo.DubboCodec.encodeResponseData(DubboCodec.java:301)</span><br style="padding: 0px; margin: 0px;" /><span style="padding: 0px; margin: 0px; font-family: 寰蔣闆呴粦; font-size: 14px; letter-spacing: normal; line-height: 21px; widows: auto;">    at com.alibaba.dubbo.remoting.exchange.codec.ExchangeCodec.encodeResponse(ExchangeCodec.java:560)</span><br style="padding: 0px; margin: 0px;" /><span style="padding: 0px; margin: 0px; font-family: 寰蔣闆呴粦; font-size: 14px; letter-spacing: normal; line-height: 21px; widows: auto;">    at com.alibaba.dubbo.remoting.exchange.codec.ExchangeCodec.encode(ExchangeCodec.java:104)</span><br style="padding: 0px; margin: 0px;" /><span style="padding: 0px; margin: 0px; font-family: 寰蔣闆呴粦; font-size: 14px; letter-spacing: normal; line-height: 21px; widows: auto;">    at com.alibaba.dubbo.rpc.protocol.dubbo.DubboCountCodec.encode(DubboCountCodec.java:39)</span><br style="padding: 0px; margin: 0px;" /><span style="padding: 0px; margin: 0px; font-family: 寰蔣闆呴粦; font-size: 14px; letter-spacing: normal; line-height: 21px; widows: auto;">    at com.alibaba.dubbo.remoting.transport.mina.MinaCodecAdapter$InternalEncoder.encode(MinaCodecAdapter.java:79)</span><br style="padding: 0px; margin: 0px;" /><span style="padding: 0px; margin: 0px; font-family: 寰蔣闆呴粦; font-size: 14px; letter-spacing: normal; line-height: 21px; widows: auto;">    at org.apache.mina.filter.codec.ProtocolCodecFilter.filterWrite(ProtocolCodecFilter.java:214)</span><br style="padding: 0px; margin: 0px;" /><span style="padding: 0px; margin: 0px; font-family: 寰蔣闆呴粦; font-size: 14px; letter-spacing: normal; line-height: 21px; widows: auto;">    at org.apache.mina.common.support.AbstractIoFilterChain.callPreviousFilterWrite(AbstractIoFilterChain.java:361)</span><br style="padding: 0px; margin: 0px;" /><span style="padding: 0px; margin: 0px; font-family: 寰蔣闆呴粦; font-size: 14px; letter-spacing: normal; line-height: 21px; widows: auto;">    at org.apache.mina.common.support.AbstractIoFilterChain.access$1300(AbstractIoFilterChain.java:53)</span><br style="padding: 0px; margin: 0px;" /><span style="padding: 0px; margin: 0px; font-family: 寰蔣闆呴粦; font-size: 14px; letter-spacing: normal; line-height: 21px; widows: auto;">    at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.filterWrite(AbstractIoFilterChain.java:659)</span><br style="padding: 0px; margin: 0px;" /><span style="padding: 0px; margin: 0px; font-family: 寰蔣闆呴粦; font-size: 14px; letter-spacing: normal; line-height: 21px; widows: auto;">    at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.filterWrite(AbstractIoFilterChain.java:587)</span><br style="padding: 0px; margin: 0px;" /><span style="padding: 0px; margin: 0px; font-family: 寰蔣闆呴粦; font-size: 14px; letter-spacing: normal; line-height: 21px; widows: auto;">    at org.apache.mina.common.support.AbstractIoFilterChain.callPreviousFilterWrite(AbstractIoFilterChain.java:361)</span><br style="padding: 0px; margin: 0px;" /><span style="padding: 0px; margin: 0px; font-family: 寰蔣闆呴粦; font-size: 14px; letter-spacing: normal; line-height: 21px; widows: auto;">    at org.apache.mina.common.support.AbstractIoFilterChain.fireFilterWrite(AbstractIoFilterChain.java:355)</span><br style="padding: 0px; margin: 0px;" /><span style="padding: 0px; margin: 0px; font-family: 寰蔣闆呴粦; font-size: 14px; letter-spacing: normal; line-height: 21px; widows: auto;">    at org.apache.mina.transport.socket.nio.SocketSessionImpl.write0(SocketSessionImpl.java:166)</span><br style="padding: 0px; margin: 0px;" /><span style="padding: 0px; margin: 0px; font-family: 寰蔣闆呴粦; font-size: 14px; letter-spacing: normal; line-height: 21px; widows: auto;">    at org.apache.mina.common.support.BaseIoSession.write(BaseIoSession.java:177)</span><br style="padding: 0px; margin: 0px;" /><span style="padding: 0px; margin: 0px; font-family: 寰蔣闆呴粦; font-size: 14px; letter-spacing: normal; line-height: 21px; widows: auto;">    at org.apache.mina.common.support.BaseIoSession.write(BaseIoSession.java:168)</span><br style="padding: 0px; margin: 0px;" /><span style="padding: 0px; margin: 0px; font-family: 寰蔣闆呴粦; font-size: 14px; letter-spacing: normal; line-height: 21px; widows: auto;">    at com.alibaba.dubbo.remoting.transport.mina.MinaChannel.send(MinaChannel.java:95)</span><br style="padding: 0px; margin: 0px;" /><span style="padding: 0px; margin: 0px; font-family: 寰蔣闆呴粦; font-size: 14px; letter-spacing: normal; line-height: 21px; widows: auto;">    at com.alibaba.dubbo.remoting.transport.AbstractPeer.send(AbstractPeer.java:51)</span><br style="padding: 0px; margin: 0px;" /><span style="padding: 0px; margin: 0px; font-family: 寰蔣闆呴粦; font-size: 14px; letter-spacing: normal; line-height: 21px; widows: auto;">    at <br style="padding: 0px; margin: 0px;" /></span></p><p style="padding: 0px; margin: 20px 0px; line-height: 28.8px; letter-spacing: 0.5px; font-size: 16px; word-wrap: break-word; word-break: break-all; font-family: 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', STHeiti, 'WenQuanYi Micro Hei', SimSun, sans-serif; background-color: #ffffff;">緇忚繃瀵規瘮netty3鍜宯etty4浣滀負浼犺緭灞傦紝鍗撮兘娌℃湁鍙戠幇綾諱技鐨勯棶棰樸?/p><p style="padding: 0px; margin: 20px 0px; line-height: 28.8px; letter-spacing: 0.5px; font-size: 16px; word-wrap: break-word; word-break: break-all; font-family: 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', STHeiti, 'WenQuanYi Micro Hei', SimSun, sans-serif; background-color: #ffffff;">棣栧厛鎺掗櫎涓嶆槸mina鏈韓鐨勯棶棰橈紝mina涔熸病鏈夌垎鍑烘湁榪欎釜闂錛屽垵姝ュ垽鏂璬ubbo鍦ㄤ嬌鐢╩ina鏃舵満鍒舵湁闂</p><p style="padding: 0px; margin: 20px 0px; line-height: 28.8px; letter-spacing: 0.5px; font-size: 16px; word-wrap: break-word; word-break: break-all; font-family: 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', STHeiti, 'WenQuanYi Micro Hei', SimSun, sans-serif; background-color: #ffffff;">緇忚繃瀵規瘮鍙戠幇</p><p style="padding: 0px; margin: 20px 0px; line-height: 28.8px; letter-spacing: 0.5px; font-size: 16px; word-wrap: break-word; word-break: break-all; font-family: 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', STHeiti, 'WenQuanYi Micro Hei', SimSun, sans-serif; background-color: #ffffff;">1.netty鏄負姣忎竴涓猚hannel鍒嗛厤浜嗕竴涓狽ettyCodecAdapter, mina紜疄鍦ㄦ湇鍔″櫒鐩戝惉鍓嶉厤緗簡MinaCodecAdapter</p><p style="padding: 0px; margin: 20px 0px; line-height: 28.8px; letter-spacing: 0.5px; font-size: 16px; word-wrap: break-word; word-break: break-all; font-family: 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', STHeiti, 'WenQuanYi Micro Hei', SimSun, sans-serif; background-color: #ffffff;">2.涔熷氨鏄錛宯etty鐨勬瘡涓涓嫭绔嬬殑閫氶亾鐨凜odec(encoder/decoder錛夋槸閫氶亾瀹夊叏鐨?/p><p style="padding: 0px; margin: 20px 0px; line-height: 28.8px; letter-spacing: 0.5px; font-size: 16px; word-wrap: break-word; word-break: break-all; font-family: 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', STHeiti, 'WenQuanYi Micro Hei', SimSun, sans-serif; background-color: #ffffff;">3.mina鐨勬墍鏈夐氶亾鏄叡浜浉鍚岀殑codec(encoder/decoder)鐨勶紝鍥犳錛岃В鐮佸櫒涓殑瀹炰緥鏁版嵁鏃墮潪channel瀹夊叏鐨?br style="padding: 0px; margin: 0px;" /></p><p style="padding: 0px; margin: 20px 0px; line-height: 28.8px; letter-spacing: 0.5px; font-size: 16px; word-wrap: break-word; word-break: break-all; font-family: 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', STHeiti, 'WenQuanYi Micro Hei', SimSun, sans-serif; background-color: #ffffff;">鍥犳瑙g爜鍣ㄤ腑涓巒etty鐩稿悓鐨勮В鐮佸櫒鐨勭紦鍐叉暟鎹畻娉曞湪騫跺彂鎯呭喌涓嬪皢浼氫駭鐢熸暟鎹鐩栭棶棰樸?/p><p style="padding: 0px; margin: 20px 0px; line-height: 28.8px; letter-spacing: 0.5px; font-size: 16px; word-wrap: break-word; word-break: break-all; font-family: 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', STHeiti, 'WenQuanYi Micro Hei', SimSun, sans-serif; background-color: #ffffff;">4.瑙e喅鏂規<br style="padding: 0px; margin: 0px;" /></p><p style="padding: 0px; margin: 20px 0px; line-height: 28.8px; letter-spacing: 0.5px; font-size: 16px; word-wrap: break-word; word-break: break-all; font-family: 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', STHeiti, 'WenQuanYi Micro Hei', SimSun, sans-serif; background-color: #ffffff;">        1.閰嶇疆acceptor鐨勭洃鍚櫒</p><p style="padding: 0px; margin: 20px 0px; line-height: 28.8px; letter-spacing: 0.5px; font-size: 16px; word-wrap: break-word; word-break: break-all; font-family: 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', STHeiti, 'WenQuanYi Micro Hei', SimSun, sans-serif; background-color: #ffffff;">codecAdapter = new MinaCodecAdapter(getCodec(), getUrl(), this);<br style="padding: 0px; margin: 0px;" />        acceptor.getFilterChain().addLast("codec", new ProtocolCodecFilter(codecAdapter));</p><p style="padding: 0px; margin: 20px 0px; line-height: 28.8px; letter-spacing: 0.5px; font-size: 16px; word-wrap: break-word; word-break: break-all; font-family: 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', STHeiti, 'WenQuanYi Micro Hei', SimSun, sans-serif; background-color: #ffffff;">    acceptor.addListener(new IoServiceListener(){<br style="padding: 0px; margin: 0px;" />            @Override<br style="padding: 0px; margin: 0px;" />            public void serviceActivated(IoService service,<br style="padding: 0px; margin: 0px;" />                    SocketAddress serviceAddress, IoHandler handler,<br style="padding: 0px; margin: 0px;" />                    IoServiceConfig config) {<br style="padding: 0px; margin: 0px;" />            }<br style="padding: 0px; margin: 0px;" /><br style="padding: 0px; margin: 0px;" />            @Override<br style="padding: 0px; margin: 0px;" />            public void serviceDeactivated(IoService service,<br style="padding: 0px; margin: 0px;" />                    SocketAddress serviceAddress, IoHandler handler,<br style="padding: 0px; margin: 0px;" />                    IoServiceConfig config) {<br style="padding: 0px; margin: 0px;" />            }<br style="padding: 0px; margin: 0px;" /><br style="padding: 0px; margin: 0px;" />            @Override<br style="padding: 0px; margin: 0px;" />            public void sessionCreated(IoSession session) {<br style="padding: 0px; margin: 0px;" />                codecAdapter.sessionCreated(session);<br style="padding: 0px; margin: 0px;" />            }<br style="padding: 0px; margin: 0px;" /><br style="padding: 0px; margin: 0px;" />            @Override<br style="padding: 0px; margin: 0px;" />            public void sessionDestroyed(IoSession session) {<br style="padding: 0px; margin: 0px;" />                codecAdapter.sessionDestroyed(session);<br style="padding: 0px; margin: 0px;" />            }<br style="padding: 0px; margin: 0px;" />        });</p><p style="padding: 0px; margin: 20px 0px; line-height: 28.8px; letter-spacing: 0.5px; font-size: 16px; word-wrap: break-word; word-break: break-all; font-family: 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', STHeiti, 'WenQuanYi Micro Hei', SimSun, sans-serif; background-color: #ffffff;">    2.鐩戝惉session鐨刢reate鍜宒estroy浜嬩歡錛屼紶閫掑埌decoder涓紝decoder涓紝閫氳繃session鍜宐uffer鐨勯敭鍊煎淇濆瓨瀵逛笉鍚岄氶亾鐨勬暟鎹殑緙撳瓨錛?/p><p style="padding: 0px; margin: 20px 0px; line-height: 28.8px; letter-spacing: 0.5px; font-size: 16px; word-wrap: break-word; word-break: break-all; font-family: 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', STHeiti, 'WenQuanYi Micro Hei', SimSun, sans-serif; background-color: #ffffff;">private Map<IoSession, ChannelBuffer> buffers = new ConcurrentHashMap<IoSession, ChannelBuffer>();<br style="padding: 0px; margin: 0px;" /><br style="padding: 0px; margin: 0px;" />        // ChannelBuffers.EMPTY_BUFFER;<br style="padding: 0px; margin: 0px;" /><br style="padding: 0px; margin: 0px;" />        public void sessionCreated(IoSession session) {<br style="padding: 0px; margin: 0px;" />            buffers.put(session, ChannelBuffers.EMPTY_BUFFER);<br style="padding: 0px; margin: 0px;" />        }<br style="padding: 0px; margin: 0px;" /><br style="padding: 0px; margin: 0px;" />        public void sessionDestroyed(IoSession session) {<br style="padding: 0px; margin: 0px;" />            buffers.remove(session);<br style="padding: 0px; margin: 0px;" />        }<br style="padding: 0px; margin: 0px;" /><br style="padding: 0px; margin: 0px;" /></p><p style="padding: 0px; margin: 20px 0px; line-height: 28.8px; letter-spacing: 0.5px; font-size: 16px; word-wrap: break-word; word-break: break-all; font-family: 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', STHeiti, 'WenQuanYi Micro Hei', SimSun, sans-serif; background-color: #ffffff;">    3.瑙g爜鏃墮氳繃session鑾峰緱褰撳墠channel鐨勬暟鎹?/p><p style="padding: 0px; margin: 20px 0px; line-height: 28.8px; letter-spacing: 0.5px; font-size: 16px; word-wrap: break-word; word-break: break-all; font-family: 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', STHeiti, 'WenQuanYi Micro Hei', SimSun, sans-serif; background-color: #ffffff;">ChannelBuffer buffer = buffers.get(session);<br style="padding: 0px; margin: 0px;" />            if(buffer == null) return;</p><p style="padding: 0px; margin: 20px 0px; line-height: 28.8px; letter-spacing: 0.5px; font-size: 16px; word-wrap: break-word; word-break: break-all; font-family: 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', STHeiti, 'WenQuanYi Micro Hei', SimSun, sans-serif; background-color: #ffffff;"><br style="padding: 0px; margin: 0px;" /></p><p style="padding: 0px; margin: 20px 0px; line-height: 28.8px; letter-spacing: 0.5px; font-size: 16px; word-wrap: break-word; word-break: break-all; font-family: 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', STHeiti, 'WenQuanYi Micro Hei', SimSun, sans-serif; background-color: #ffffff;">緇忚繃嫻嬭瘯錛岄棶棰樺緱浠ヨВ鍐?/p><img src ="http://www.tkk7.com/xiaomage234/aggbug/430554.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/xiaomage234/" target="_blank">灝忛┈姝?/a> 2016-05-17 15:24 <a href="http://www.tkk7.com/xiaomage234/archive/2016/05/17/430554.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>dubbo涓殑閭d簺鈥滃潙"(2)-hessian-lite瀛楃涓叉暟鎹畾涔夋敼榪?/title><link>http://www.tkk7.com/xiaomage234/archive/2016/05/17/430555.html</link><dc:creator>灝忛┈姝?/dc:creator><author>灝忛┈姝?/author><pubDate>Tue, 17 May 2016 07:24:00 GMT</pubDate><guid>http://www.tkk7.com/xiaomage234/archive/2016/05/17/430555.html</guid><wfw:comment>http://www.tkk7.com/xiaomage234/comments/430555.html</wfw:comment><comments>http://www.tkk7.com/xiaomage234/archive/2016/05/17/430555.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/xiaomage234/comments/commentRss/430555.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/xiaomage234/services/trackbacks/430555.html</trackback:ping><description><![CDATA[<p style="padding: 0px; margin: 20px 0px; line-height: 28.8px; letter-spacing: 0.5px; font-size: 16px; word-wrap: break-word; word-break: break-all; font-family: 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', STHeiti, 'WenQuanYi Micro Hei', SimSun, sans-serif; background-color: #ffffff;">鍏跺疄榪欎釜涓嶇畻鏄竴涓潙錛岄樋閲屽疄鐜扮殑瀛楃涓插崗璁尯濂界殑錛屼絾鏄敱浜庢垜涓漢鐨勫己榪棁鍜屽湪緙栧啓php瀹㈡埛绔繃紼嬩腑瀵瑰瓧絎︿覆鐨勮緭鍑哄拰瑙f瀽鎰熻寰堝埆鎵紝灝ゅ叾鏄瓧絎︿覆鏁版嵁寰堝ぇ鏃訛紝蹇呴』涓涓瓧鑺備竴涓瓧鑺傜殑鍒ゆ柇澶勭悊錛岃鎴戝緢閮侀椃錛屾槑鏄懼拰鎴戝綋騫寸紪鍐欐眹緙栨椂鐨勫摢縐嶇簿鑷翠笉絎︺備綋鐜板湪涓や釜鏂歸潰</p><p style="padding: 0px; margin: 20px 0px; line-height: 28.8px; letter-spacing: 0.5px; font-size: 16px; word-wrap: break-word; word-break: break-all; font-family: 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', STHeiti, 'WenQuanYi Micro Hei', SimSun, sans-serif; background-color: #ffffff;">1.瀛楃涓茬殑鏍煎紡瀹氫箟涓?nbsp;瀛楁瘝S鎴栬匯 + 涓や釜瀛楄妭鐨勬暟鎹暱搴︼紙MSB錛? utf8鏍煎紡鐨勫瓧鑺傛暟緇勶紝S琛ㄧず鏈鍚庝竴涓潡錛屼笂闈㈤偅涓暱搴︽槸unicode <br style="padding: 0px; margin: 0px;" /></p><p style="padding: 0px; margin: 20px 0px; line-height: 28.8px; letter-spacing: 0.5px; font-size: 16px; word-wrap: break-word; word-break: break-all; font-family: 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', STHeiti, 'WenQuanYi Micro Hei', SimSun, sans-serif; background-color: #ffffff;">瀛楃涓茬殑闀垮害錛屼笉鏄嚜宸辨暟緇勭殑闀垮害錛屽嵆"涓浗"榪欎釜璇嶏紝闀垮害鏄?,utf8琛ㄧず鐨勫瓧鑺傛暟緇勭‘瀹?涓瓧鑺?br style="padding: 0px; margin: 0px;" /></p><p style="padding: 0px; margin: 20px 0px; line-height: 28.8px; letter-spacing: 0.5px; font-size: 16px; word-wrap: break-word; word-break: break-all; font-family: 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', STHeiti, 'WenQuanYi Micro Hei', SimSun, sans-serif; background-color: #ffffff;">2.鎴戠殑php瀹㈡埛绔槸鐢╟娣峰悎c++緙栧啓鐨刾hp鎵╁睍錛岃緭鍑哄瓧絎︿覆鏃墮鍏堣皟鐢╨ibmbfl搴撹綆梪nicode瀛楃涓茬殑闀垮害錛岀劧鍚庤緭鍑簎tf8鏁版嵁,鍥犱負鍦╬hp涓紝鎴戜滑榛樿閲囩敤utf8鏍煎紡錛屽瓧絎︿覆zval宸茬粡鏄痷tf8鏍煎紡浜嗭紝騫朵笖闄勫甫涓涓猽tf8闀垮害鐨勬暣鏁幫紝</p><p style="padding: 0px; margin: 20px 0px; line-height: 28.8px; letter-spacing: 0.5px; font-size: 16px; word-wrap: break-word; word-break: break-all; font-family: 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', STHeiti, 'WenQuanYi Micro Hei', SimSun, sans-serif; background-color: #ffffff;">3.璇誨彇搴旂瓟鍒嗘瀽瀛楃涓叉椂錛屾牴鎹笂闈㈢殑闀垮害騫朵笉鐭ラ亾璇ュ垎閰嶅灝戝唴瀛樻潵鎺ュ彈鏁翠釜瀛楃涓詫紝鍥犱負闀垮害鍜寀tf8鐨勫瓧鑺傞暱搴︽牴鏈病鏈夊叧緋伙紝榪樻湁澶氫釜鑺傛椂闃叉utf8瀛楁瘝琚垎閰嶅埌澶氫釜涓嶅悓鐨刢hunk涓婇潰</p><p style="padding: 0px; margin: 20px 0px; line-height: 28.8px; letter-spacing: 0.5px; font-size: 16px; word-wrap: break-word; word-break: break-all; font-family: 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', STHeiti, 'WenQuanYi Micro Hei', SimSun, sans-serif; background-color: #ffffff;">4.鍥犳錛屾垜浠噸鏂板畾涔変簡涓涓瓧絎︿覆鏁版嵁鍗忚錛?E +4瀛楄妭UTF8瀛楄妭闀垮害錛圡SB錛? utf8琛ㄧず涓涓畬鏁寸殑瀛楃涓詫紝4瀛楄妭鏃訛紝琛ㄧず鐨勬暟鎹湁2^31-1涓猽tf8瀛楄妭錛屽彲浠ヨ〃紺哄ソ鍑犵櫨鍏嗙殑姹夊瓧錛屽鐢ㄤ簡錛岃繖鏍鋒垜浠彲浠ヤ嬌鐢╟璇█鐨刴emcpy鍑芥暟榪涜蹇熸暟鎹嫹璐濆拰鏁版嵁緙撳啿鍖哄垎閰嶄簡</p><p style="padding: 0px; margin: 20px 0px; line-height: 28.8px; letter-spacing: 0.5px; font-size: 16px; word-wrap: break-word; word-break: break-all; font-family: 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', STHeiti, 'WenQuanYi Micro Hei', SimSun, sans-serif; background-color: #ffffff;">5.緇忚繃嫻嬭瘯錛屽ぇ閲忓瓧絎︿覆鐨勬暟鎹紶杈撴ц兘鑳芥彁楂?%</p><img src ="http://www.tkk7.com/xiaomage234/aggbug/430555.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/xiaomage234/" target="_blank">灝忛┈姝?/a> 2016-05-17 15:24 <a href="http://www.tkk7.com/xiaomage234/archive/2016/05/17/430555.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Hessian鍜孞ava鍙嶅簭鍒楀寲闂灝忕粨http://www.tkk7.com/xiaomage234/archive/2016/05/17/430553.html灝忛┈姝?/dc:creator>灝忛┈姝?/author>Tue, 17 May 2016 07:24:00 GMThttp://www.tkk7.com/xiaomage234/archive/2016/05/17/430553.htmlhttp://www.tkk7.com/xiaomage234/comments/430553.htmlhttp://www.tkk7.com/xiaomage234/archive/2016/05/17/430553.html#Feedback0http://www.tkk7.com/xiaomage234/comments/commentRss/430553.htmlhttp://www.tkk7.com/xiaomage234/services/trackbacks/430553.html闃呰鍏ㄦ枃

]]>
榪戞湡hessian鍙嶅簭鍒楀寲闂鎬葷粨涓嶵hreadPoolExecutor浣跨敤蹇冨緱http://www.tkk7.com/xiaomage234/archive/2016/05/17/430552.html灝忛┈姝?/dc:creator>灝忛┈姝?/author>Tue, 17 May 2016 07:22:00 GMThttp://www.tkk7.com/xiaomage234/archive/2016/05/17/430552.htmlhttp://www.tkk7.com/xiaomage234/comments/430552.htmlhttp://www.tkk7.com/xiaomage234/archive/2016/05/17/430552.html#Feedback0http://www.tkk7.com/xiaomage234/comments/commentRss/430552.htmlhttp://www.tkk7.com/xiaomage234/services/trackbacks/430552.html

from:http://pfmiles.github.io/blog/recently-hessian-deserialize-problem-and-thread-pool-executor-experience/

鏈榪戝伐浣滀腑閬囧埌涓涓寮傜殑闂錛氬埆浜鴻繙紼嬭皟鐢ㄦ垜浠殑緋葷粺鏆撮湶鐨勬湇鍔★紝鍚屾璋冪敤錛屽簳灞備嬌鐢╤essian鍗忚鍋氬簭鍒楀寲錛?br />璋冪敤鏂圭郴緇熸姤絀烘寚閽堬紝鍙嶅簭鍒楀寲澶辮觸錛?/p>

2013-04-18 16:52:10,308 [AvatarRuleChargeService.java:74] [com.alibaba.itbu.billing.biz.adaptor.avatar.AvatarRuleChargeService] ERROR com.alibaba.itbu.billing.biz.adaptor.crm.ChargeProxy :: avatar charge sys error com.alibaba.dubbo.rpc.RpcException: Failed to invoke the method match in the service com.alibaba.china.ruleservice.RuleService. Tried 3 times of the providers [172.22.6.83:20980, 172.22.6.80:20980, 172.22.9.76:20980] (3/3) from the registry dubbo-reg1.hst.xyi.cn.alidc.net:9090 on the consumer 172.30.118.26 using the dubbo version 2.4.9. Last error is: Failed to invoke remote method: match, provider: dubbo://172.22.6.83:20980/com.alibaba.china.ruleservice.RuleService?anyhost=true&application=billing&check=false&default.reference.filter=dragoon&dubbo=2.4.9&interface=com.alibaba.china.ruleservice.RuleService&methods=match&pid=18616&revision=1.0-SNAPSHOT&side=consumer&timeout=5000&timestamp=1366275108588&version=1.0.0, cause: com.alibaba.com.caucho.hessian.io.HessianProtocolException: 'com.alibaba.china.ruleservice.RuleServiceImpl$DynamicPluginInvocationMatchedResult' could not be instantiated com.alibaba.com.caucho.hessian.io.HessianProtocolException: 'com.alibaba.china.ruleservice.RuleServiceImpl$DynamicPluginInvocationMatchedResult' could not be instantiated     at com.alibaba.com.caucho.hessian.io.JavaDeserializer.instantiate(JavaDeserializer.java:275)     at com.alibaba.com.caucho.hessian.io.JavaDeserializer.readObject(JavaDeserializer.java:155)     at com.alibaba.com.caucho.hessian.io.SerializerFactory.readObject(SerializerFactory.java:396)     at com.alibaba.com.caucho.hessian.io.Hessian2Input.readObjectInstance(Hessian2Input.java:2070)     at com.alibaba.com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:2005)     at com.alibaba.com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:1990)     at com.alibaba.com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:1538)     at com.alibaba.dubbo.common.serialize.support.hessian.Hessian2ObjectInput.readObject(Hessian2ObjectInput.java:94)     at com.alibaba.dubbo.common.serialize.support.hessian.Hessian2ObjectInput.readObject(Hessian2ObjectInput.java:99)     at com.alibaba.dubbo.rpc.protocol.dubbo.DecodeableRpcResult.decode(DecodeableRpcResult.java:83)     at com.alibaba.dubbo.rpc.protocol.dubbo.DecodeableRpcResult.decode(DecodeableRpcResult.java:109)     at com.alibaba.dubbo.rpc.protocol.dubbo.DubboCodec.decodeBody(DubboCodec.java:97)     at com.alibaba.dubbo.remoting.exchange.codec.ExchangeCodec.decode(ExchangeCodec.java:128)     at com.alibaba.dubbo.remoting.exchange.codec.ExchangeCodec.decode(ExchangeCodec.java:87)     at com.alibaba.dubbo.rpc.protocol.dubbo.DubboCountCodec.decode(DubboCountCodec.java:49)     at com.alibaba.dubbo.remoting.transport.netty.NettyCodecAdapter$InternalDecoder.messageReceived(NettyCodecAdapter.java:135)     at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:80)     at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)     at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559)     at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:274)     at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:261)     at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:349)     at org.jboss.netty.channel.socket.nio.NioWorker.processSelectedKeys(NioWorker.java:280)     at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:200)     at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)     at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:44)     at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)     at java.lang.Thread.run(Thread.java:662) Caused by: java.lang.reflect.InvocationTargetException     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)     at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)     at java.lang.reflect.Constructor.newInstance(Constructor.java:513)     at com.alibaba.com.caucho.hessian.io.JavaDeserializer.instantiate(JavaDeserializer.java:271)     ... 28 more Caused by: java.lang.NullPointerException     at com.alibaba.china.ruleservice.RuleServiceImpl$DynamicPluginInvocationMatchedResult.<init>(RuleServiceImpl.java:163)     ... 33 more      at com.alibaba.dubbo.rpc.cluster.support.FailoverClusterInvoker.doInvoke(FailoverClusterInvoker.java:101)     at com.alibaba.dubbo.rpc.cluster.support.AbstractClusterInvoker.invoke(AbstractClusterInvoker.java:226)     at com.alibaba.dubbo.rpc.cluster.support.wrapper.MockClusterInvoker.invoke(MockClusterInvoker.java:72)     at com.alibaba.dubbo.rpc.proxy.InvokerInvocationHandler.invoke(InvokerInvocationHandler.java:52)     at com.alibaba.dubbo.common.bytecode.proxy1.match(proxy1.java)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)     at java.lang.reflect.Method.invoke(Method.java:597)     at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)     at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)     at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)     at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:88)     at com.alibaba.itbu.billing.framework.aop.OpenApiLogAspect.logExecuteTime(OpenApiLogAspect.java:38)     at sun.reflect.GeneratedMethodAccessor199.invoke(Unknown Source)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)     at java.lang.reflect.Method.invoke(Method.java:597)     at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:627)     at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:616)     at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:64)     at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)     at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)     at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)     at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)     at $Proxy107.match(Unknown Source)     at com.alibaba.itbu.billing.biz.adaptor.avatar.AvatarRuleChargeService.chargeByFactor(AvatarRuleChargeService.java:72)     at com.alibaba.itbu.billing.biz.charge.times.RuleChargeByTimesProcessor.getChargeResult(RuleChargeByTimesProcessor.java:62)     at com.alibaba.itbu.billing.biz.charge.times.ChargeByTimesProcessor.charge(ChargeByTimesProcessor.java:117)     at com.alibaba.itbu.billing.biz.task.ChargeByIncInstantTimesTask.charge(ChargeByIncInstantTimesTask.java:174)     at com.alibaba.itbu.billing.biz.task.ChargeByIncInstantTimesTask$1.run(ChargeByIncInstantTimesTask.java:109)     at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)     at java.lang.Thread.run(Thread.java:662) Caused by: com.alibaba.dubbo.remoting.RemotingException: com.alibaba.com.caucho.hessian.io.HessianProtocolException: 'com.alibaba.china.ruleservice.RuleServiceImpl$DynamicPluginInvocationMatchedResult' could not be instantiated com.alibaba.com.caucho.hessian.io.HessianProtocolException: 'com.alibaba.china.ruleservice.RuleServiceImpl$DynamicPluginInvocationMatchedResult' could not be instantiated     at com.alibaba.com.caucho.hessian.io.JavaDeserializer.instantiate(JavaDeserializer.java:275)     at com.alibaba.com.caucho.hessian.io.JavaDeserializer.readObject(JavaDeserializer.java:155)     at com.alibaba.com.caucho.hessian.io.SerializerFactory.readObject(SerializerFactory.java:396)     at com.alibaba.com.caucho.hessian.io.Hessian2Input.readObjectInstance(Hessian2Input.java:2070)     at com.alibaba.com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:2005)     at com.alibaba.com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:1990)     at com.alibaba.com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:1538)     at com.alibaba.dubbo.common.serialize.support.hessian.Hessian2ObjectInput.readObject(Hessian2ObjectInput.java:94)     at com.alibaba.dubbo.common.serialize.support.hessian.Hessian2ObjectInput.readObject(Hessian2ObjectInput.java:99)     at com.alibaba.dubbo.rpc.protocol.dubbo.DecodeableRpcResult.decode(DecodeableRpcResult.java:83)     at com.alibaba.dubbo.rpc.protocol.dubbo.DecodeableRpcResult.decode(DecodeableRpcResult.java:109)     at com.alibaba.dubbo.rpc.protocol.dubbo.DubboCodec.decodeBody(DubboCodec.java:97)     at com.alibaba.dubbo.remoting.exchange.codec.ExchangeCodec.decode(ExchangeCodec.java:128)     at com.alibaba.dubbo.remoting.exchange.codec.ExchangeCodec.decode(ExchangeCodec.java:87)     at com.alibaba.dubbo.rpc.protocol.dubbo.DubboCountCodec.decode(DubboCountCodec.java:49)     at com.alibaba.dubbo.remoting.transport.netty.NettyCodecAdapter$InternalDecoder.messageReceived(NettyCodecAdapter.java:135)     at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:80)     at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)     at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559)     at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:274)     at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:261)     at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:349)     at org.jboss.netty.channel.socket.nio.NioWorker.processSelectedKeys(NioWorker.java:280)     at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:200)     at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)     at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:44)     at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)     at java.lang.Thread.run(Thread.java:662) Caused by: java.lang.reflect.InvocationTargetException     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)     at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)     at java.lang.reflect.Constructor.newInstance(Constructor.java:513)     at com.alibaba.com.caucho.hessian.io.JavaDeserializer.instantiate(JavaDeserializer.java:271)     ... 28 more Caused by: java.lang.NullPointerException     at com.alibaba.china.ruleservice.RuleServiceImpl$DynamicPluginInvocationMatchedResult.<init>(RuleServiceImpl.java:163)     ... 33 more      at com.alibaba.dubbo.remoting.exchange.support.DefaultFuture.returnFromResponse(DefaultFuture.java:190)     at com.alibaba.dubbo.remoting.exchange.support.DefaultFuture.get(DefaultFuture.java:110)     at com.alibaba.dubbo.remoting.exchange.support.DefaultFuture.get(DefaultFuture.java:84)     at com.alibaba.dubbo.rpc.protocol.dubbo.DubboInvoker.doInvoke(DubboInvoker.java:96)     at com.alibaba.dubbo.rpc.protocol.AbstractInvoker.invoke(AbstractInvoker.java:144)     at com.alibaba.dubbo.rpc.listener.ListenerInvokerWrapper.invoke(ListenerInvokerWrapper.java:74)     at com.alibaba.dubbo.monitor.dragoon.filter.DragoonFilter.invoke0(DragoonFilter.java:82)     at com.alibaba.dubbo.monitor.dragoon.filter.DragoonFilter.invoke(DragoonFilter.java:34)     at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)     at com.alibaba.dubbo.monitor.support.MonitorFilter.invoke(MonitorFilter.java:75)     at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)     at com.alibaba.dubbo.rpc.protocol.dubbo.filter.FutureFilter.invoke(FutureFilter.java:53)     at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)     at com.alibaba.dubbo.rpc.filter.ConsumerContextFilter.invoke(ConsumerContextFilter.java:48)     at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)     at com.alibaba.dubbo.rpc.protocol.InvokerWrapper.invoke(InvokerWrapper.java:53)     at com.alibaba.dubbo.rpc.cluster.support.FailoverClusterInvoker.doInvoke(FailoverClusterInvoker.java:77)     ... 32 more 

鐪嬪埌榪欎釜鏃ュ織絎竴鍙嶆槧鏄寰?code style="margin: -1px 0px; padding: 0px 0.3em; border: 1px solid #dddddd; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; font-size: 0.8em; line-height: 1.5em; font-family: Menlo, Monaco, 'Andale Mono', 'lucida console', 'Courier New', monospace; vertical-align: baseline; display: inline-block; color: #555555; border-radius: 0.4em; background: #ffffff;">RuleServiceImpl.java:163鏁版嵁閿欒錛屾姏絀烘寚閽堬紝浣嗘鏌ラ偅鍧椾唬鐮佸彂鐜伴偅涓湴鏂規牴鏈笉鍙兘鎶涚┖鎸囬拡 —— 鎵鏈夌敤鍒扮殑鍙橀噺閮芥槸new鍑烘潵鐨勶紱
鑰屼笖錛屼緷鎹皟鐢ㄦ柟鎻愪緵鐨勯敊璇棩蹇楃殑鎶涘嚭鏃墮棿錛屾垜鍦ㄨ璋冪敤鏂圭郴緇熺殑鎵鏈夋満鍣ㄧ殑鏃ュ織閲屾煡鎵句簡涓閬嶏紝娌℃湁鍙戠幇瀵瑰簲鐨勬湇鍔$鏃ュ織錛涚収鐞嗚鏈嶅姟绔姏絀烘寚閽堬紝鏈嶅姟绔篃浼氭湁瀵瑰簲鏃ュ織錛屼絾娌℃湁浠諱綍綰跨儲…

鍥犳鍙ソ緲誨紑浜?code style="margin: -1px 0px; padding: 0px 0.3em; border: 1px solid #dddddd; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; font-size: 0.8em; line-height: 1.5em; font-family: Menlo, Monaco, 'Andale Mono', 'lucida console', 'Courier New', monospace; vertical-align: baseline; display: inline-block; color: #555555; border-radius: 0.4em; background: #ffffff;">JavaDeserializer.java:275浣滄鏌ワ紝鍙戠幇鏈夎繖涔堜竴孌碉細

  public JavaDeserializer(Class cl)   {     _type = cl;     _fieldMap = getFieldMap(cl);      _readResolve = getReadResolve(cl);      if (_readResolve != null) {       _readResolve.setAccessible(true);     }      Constructor []constructors = cl.getDeclaredConstructors();     long bestCost = Long.MAX_VALUE;      for (int i = 0; i < constructors.length; i++) {       Class []param = constructors[i].getParameterTypes();       long cost = 0;        for (int j = 0; j < param.length; j++) {     cost = 4 * cost;      if (Object.class.equals(param[j]))       cost += 1;     else if (String.class.equals(param[j]))       cost += 2;     else if (int.class.equals(param[j]))       cost += 3;     else if (long.class.equals(param[j]))       cost += 4;     else if (param[j].isPrimitive())       cost += 5;     else       cost += 6;       }        if (cost < 0 || cost > (1 << 48))     cost = 1 << 48;        cost += param.length << 48;        if (cost < bestCost) {         _constructor = constructors[i];         bestCost = cost;       }     }      if (_constructor != null) {       _constructor.setAccessible(true);       Class []params = _constructor.getParameterTypes();       _constructorArgs = new Object[params.length];       for (int i = 0; i < params.length; i++) {         _constructorArgs[i] = getParamArg(params[i]);       }     }   } 

鐪嬪畬榪欐鍚庯紝鍐嶇粨鍚堣繙紼嬭皟鐢ㄧ殑榪斿洖緇撴灉綾誨悗鎭嶇劧澶ф偀錛?br />涓婇潰榪欐浠g爜錛屾槸hessian鍦ㄥ弽搴忓垪鍖栫殑鏃跺欙紝鐢ㄤ簬鍦ㄨ鍙嶅簭鍒楀寲鐨勭被閲岄潰鎵句竴涓?#8220;寰楀垎鏈浣?#8221;鐨勬瀯閫犲嚱鏁幫紝鍙嶅簭鍒楀寲鏃朵細鍔犱互璋冪敤;
鏋勯犲嚱鏁扮殑“寰楀垎”瑙勫垯澶ц嚧鏄細鍙傛暟瓚婂皯寰楀垎瓚婁綆錛涘弬鏁頒釜鏁扮浉鍚屾椂錛屽弬鏁扮被鍨嬭秺鎺ヨ繎JDK鍐呯疆綾誨緱鍒嗚秺浣?br />鑰屾垜浠殑璋冪敤榪斿洖鐨勭被鍙湁涓涓瀯閫犲嚱鏁幫紝褰撶劧鍙湁榪欎釜鏋勯犲嚱鏁頒細琚変腑
浣嗘槸錛宧essian鍙嶅簭鍒楀寲璋冪敤琚変腑鐨勬瀯閫犲嚱鏁版椂錛屾槸榪欐牱鏉ュ垱閫犺鏋勯犲嚱鏁伴渶瑕佺殑鍙傛暟鐨勶細

protected static Object getParamArg(Class cl)   {     if (! cl.isPrimitive())       return null;     else if (boolean.class.equals(cl))       return Boolean.FALSE;     else if (byte.class.equals(cl))       return new Byte((byte) 0);     else if (short.class.equals(cl))       return new Short((short) 0);     else if (char.class.equals(cl))       return new Character((char) 0);     else if (int.class.equals(cl))       return new Integer(0);     else if (long.class.equals(cl))       return new Long(0);     else if (float.class.equals(cl))       return new Float(0);     else if (double.class.equals(cl))       return new Double(0);     else       throw new UnsupportedOperationException();   } 

鍙互鐪嬪埌錛屽鏋滃弬鏁頒笉鏄?code style="margin: -1px 0px; padding: 0px 0.3em; border: 1px solid #dddddd; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; font-size: 0.8em; line-height: 1.5em; font-family: Menlo, Monaco, 'Andale Mono', 'lucida console', 'Courier New', monospace; vertical-align: baseline; display: inline-block; color: #555555; border-radius: 0.4em; background: #ffffff;">primitive綾誨瀷錛屼細琚?code style="margin: -1px 0px; padding: 0px 0.3em; border: 1px solid #dddddd; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; font-size: 0.8em; line-height: 1.5em; font-family: Menlo, Monaco, 'Andale Mono', 'lucida console', 'Courier New', monospace; vertical-align: baseline; display: inline-block; color: #555555; border-radius: 0.4em; background: #ffffff;">null浠f浛錛涗絾涓嶅閥鐨勬槸鎴戜滑鐨勬瀯閫犲嚱鏁板唴閮ㄥ璇ュ弬鏁拌皟鐢ㄤ簡涓涓柟娉曪紝鍥犳鎶涘嚭浜嗙┖鎸囬拡…
涔熷氨鏄榪欎釜絀烘寚閽堟槸鎶涘湪瀹㈡埛绔弽搴忓垪鍖栫殑鏃跺欒屼笉鏄湇鍔$鍐呴儴錛屽洜姝ゆ湇鍔$褰撶劧鎵句笉鍒板搴旂殑閿欒鏃ュ織浜嗭紱
瑙e喅鐨勫姙娉曚篃寰堢畝鍗曪細鍙互鏂板涓涓棤鍙傛瀯閫犲嚱鏁?鏃犲弬鏋勯犲嚱鏁拌偗瀹?#8220;寰楀垎”鏈浣庝竴瀹氫細琚変腑)錛涙垨鑰呬慨鏀逛唬鐮佷繚璇佷換鎰忓弬鏁頒負null鐨勬椂鍊欓兘涓嶄細鍑洪棶棰?/p>


涓嬮潰榪欎釜闂鏇存湁鎰忔濓紝璇寸殑鏄?code style="margin: -1px 0px; padding: 0px 0.3em; border: 1px solid #dddddd; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; font-size: 0.8em; line-height: 1.5em; font-family: Menlo, Monaco, 'Andale Mono', 'lucida console', 'Courier New', monospace; vertical-align: baseline; display: inline-block; color: #555555; border-radius: 0.4em; background: #ffffff;">ThreadPoolExecutor鐨?code style="margin: -1px 0px; padding: 0px 0.3em; border: 1px solid #dddddd; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; font-size: 0.8em; line-height: 1.5em; font-family: Menlo, Monaco, 'Andale Mono', 'lucida console', 'Courier New', monospace; vertical-align: baseline; display: inline-block; color: #555555; border-radius: 0.4em; background: #ffffff;">RejectedExecutionHandler鐨勪嬌鐢細

threadPool = new ThreadPoolExecutor(5, maxThreadNum, 5, TimeUnit.MINUTES, new SynchronousQueue<Runnable>(), tf,             new RejectedExecutionHandler() {                 public void rejectedExecution(Runnable r, ThreadPoolExecutor e) {                     logger.error("Ep thread pool exhausted, epId: " + id + "!!");                     r.run();                 }             }); 

榪欎釜浠g爜鏄錛屽綋鎴戣繖涓猅hreadPool涓嶅鐢紝鍙堜笉鑳藉啀鏂板綰跨▼鏁扮殑鏃跺欙紝鐢辮皟鐢ㄦ柟綰跨▼鑷繁鏉ユ墽琛岃繖涓?code style="margin: -1px 0px; padding: 0px 0.3em; border: 1px solid #dddddd; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; font-size: 0.8em; line-height: 1.5em; font-family: Menlo, Monaco, 'Andale Mono', 'lucida console', 'Courier New', monospace; vertical-align: baseline; display: inline-block; color: #555555; border-radius: 0.4em; background: #ffffff;">Runnable浠誨姟…
鏈潵榪欑湅涓婂幓娌′粈涔堥棶棰橈紝闂鍑哄湪榪欎釜Runnable鏈韓鐨勫疄鐜頒笂 —— 瀹冨唴閮ㄥ皢鎵ц瀹冪殑綰跨▼block鍒頒簡涓涓猙locking queue涓婇潰錛屽綋璋冪敤鏂逛富綰跨▼浜茶嚜鏉ユ墽琛屽畠鏃訛紝浣垮緱涓葷嚎紼嬪啀涔熷洖涓嶅幓鍋氬畠鑷繁璇ュ仛鐨勪簨鎯呬簡錛屽洜姝や細鍑哄ぇ闂…
鎵浠ヨ繖涔堢湅鏉ワ紝“褰撶嚎紼嬫睜涓嶅鐢ㄥ氨璁╄皟鐢ㄦ柟綰跨▼鑷繁鏉ュ共”鐨勮繖涓瓥鐣ュ湪瀹為檯浣跨敤鏃惰闈炲父璋ㄦ厧

榪欎釜闂鏄氳繃涓涓柟渚跨殑thread dump鍒嗘瀽宸ュ叿: tda鏉ユ煡鎵劇殑錛屽洜涓哄嚭闂鐨勮繖涓簲鐢ㄦ槸涓綰跨▼紼嬪簭錛屾湁1600澶氫釜甯擱┗綰跨▼錛宼hread dump闈炲父涔嬪ぇ錛岃倝鐪肩洿鎺ョ湅寰堜笉鏂逛究錛屼絾tda鑳藉皢thread dump鍙樺緱鏇村弸濂芥槗璇伙紝鏂逛究鎺掓煡闂錛屽湪姝ゆ帹鑽愪竴涓?/p>



]]>
主站蜘蛛池模板: 一本大道一卡二大卡三卡免费| 日本精品久久久久久久久免费| 日韩在线永久免费播放| 久久久青草青青国产亚洲免观| 五级黄18以上免费看| 亚洲а∨天堂久久精品| 国产精品亚洲精品日韩电影| 国产成人综合久久精品免费| 国产亚洲成在线播放va| 国产hs免费高清在线观看| 污视频网站在线免费看| 国产亚洲精品a在线观看 | 久久久久亚洲av无码专区| 亚洲视频免费在线观看| 亚洲国产美女福利直播秀一区二区 | 成年女人男人免费视频播放| 亚洲欧美国产日韩av野草社区| 日韩人妻无码免费视频一区二区三区| 亚洲AV女人18毛片水真多| 亚洲国产精品丝袜在线观看| 中文字幕av无码不卡免费| 亚洲香蕉免费有线视频| 国产美女精品视频免费观看| 一级做a爰黑人又硬又粗免费看51社区国产精品视 | 亚洲免费观看网站| 亚洲色成人四虎在线观看| 国产乱弄免费视频| 野花香高清在线观看视频播放免费 | 午夜网站在线观看免费完整高清观看| 亚洲国产成人精品青青草原| 国产美女精品久久久久久久免费| 亚美影视免费在线观看| 91亚洲精品视频| 国产老女人精品免费视频| 国色精品va在线观看免费视频| 亚洲午夜国产精品| 亚洲国产精品成人网址天堂| 9420免费高清在线视频| 337p日本欧洲亚洲大胆人人 | 国产午夜亚洲精品| 久久久久噜噜噜亚洲熟女综合|