?????????????
????????????????????110ms
????300?????300???????????????????????????????
???????????:
????????????????
????Cpu?4??? 2400mhz
?????????cpu: 4??? 3000Mhz
????????????
?????????10?????????????????μ?tps
????Tps:2332????
?????????Cpu:90%
?????????cpu??250%
???????????????????????????????????????????????????tcp????????????
?????????????????
????tcp???????????
??????????

???????socket??????????????????????????????????????????????????????????????????????????
???????????????????????????????????????????????????????????????????????????????
????????????????????????????????????????????????????????????
??????????
???????÷?????????????????????????request1??request2??request3??????????????????????????
???????????????д??????п???request3????request1?????????????????request????????????response??
??????????????????request??response?????????????????????к????????????????汣???
?????????????????к??????????????????
????????????:
????1.??????????tcp????
????2.????session.write()?????????????????????к???????Result????
????result??????????map
????3.????????????????????result??????????????
????4.?????????????????к??map??????result????????????????result??????????
??????????????????????
public TransInfo send(TransInfo info) throws InterruptedException {
Result result = new Result();
result.setInfo(info);
//???socket????
ConnectFuture connectFuture = ConnectFutureFactory
.getConnection(result);
IoSession session = connectFuture.getSession();
//??result????ConcurrentHashMap
ConcurrentHashMap<Long?? Result> resultMap = (ConcurrentHashMap<Long?? Result>)session.getAttribute("resultMap");
resultMap.put(info.getId()?? result);
//???????
session.write(info);
//?????????????
return result.synGetInfo();
}
?????????????????
public synchronized TransInfo synGetInfo() {
//??????????
//????????????????????
while (!done) {
try {
wait();
} catch (InterruptedException e) {
log.error(e.getMessage()?? e);
}
}
return info;
}
public synchronized void synSetInfo(TransInfo info) {
this.info = info;
this.done = true;
notify();
}
??????????????????
????public void messageReceived(IoSession session?? Object message)
????throws Exception {
????TransInfo info = (TransInfo) message;
????//???????к??resultMap?л??result
????ConcurrentHashMap<Long?? Result> resultMap = (ConcurrentHashMap<Long?? Result>)session.getAttribute("resultMap");
????//???result
????Result result = resultMap.remove(info.getId());
????//???????????
????result.synSetInfo(info);
????}
?????????????
????????????????????110ms
????300?????10???????????????????????????????
???????????:
????????????????
????Cpu?4??? 2400mhz
?????????cpu: 4??? 3000Mhz
????????????
?????????10?????????????????μ?tps
????Tps:2600????
?????????Cpu:25%
?????????cpu??250%
????????????????????????????tcp????????????Ч???????????????????????????
???????д??????