mina2和https长连接总结

一个项目托了2年了,坑爹啊。郁闷啊

上次需求修改之后,这次通过了st的时候,发现公网不让使用socket。这里解释下为什么不让:项目是银行项目,名称就不说了,后台部署在行内,客户端部署在客户公网,各个银行的前置机也是部署在公网和客户端一起,我们的客户端负责和各个银行的前置机通信做查余额或者支付等的业务。

第一个版本设计的时候,老大们拍胸部说客户端可以和我们的后台socket通信的,然后由于种种原因,第一个版本不行,都已经到ST阶段了啊,没办法,老大说改我们就改,需求重新来过,第二个版本又到了st阶段,tmd说公网不让使用socket与行内联网,要使用Https,郁闷啊,https下面不就是socket么。

没办法,改呗。

现在使用https长连接,使用jdk里面的exchanger对象实现。方法很简单,客户端上来,服务器不给相应,等后台业务过来了,然后再返回给客户端,底层的压力现在都在web容器上。然后我们接着压力测试。

业务是另外一个系统(行内的)通过mina2发给我们后台的,因为是行内,所以可以用socket,就是Mina2,。

测试发现了很多问题啊:

1、数据库连接不够,因为我们的框架设计是从servlet进入就开始数据库连接创建,到业务结束才会关闭,中间又有很多过滤器,过滤器里面又有自己创建连接,导致后台经常死掉,死的位置就是创建数据库连接。然后大范围的整理后台代码。

2、如果并发很高,后台会死,死的位置是在mina2,网上找了很多资料,有一个哥们说:如果mina2接收到之后处理业务需要很长时间,最好另起线程,然后释放mina2的接收线程。接着改。。。

3、。。。。其他(不说了)

猜你喜欢

转载自smallbee.iteye.com/blog/1160073