一个项目托了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、。。。。其他(不说了)
分享到:
相关推荐
MINA入门实例,实现长连接,短连接通讯。
基于Apache Mina实现的TCP长连接和短连接实例.doc
Mina长连接短连接实例包含Minaclient工程和MinaHost工程,另外还有几个文档,相信对理解这两个工程有很大的帮助
本库是对我在项目中使用的Mina和长连接的一个封装,亲测有效,在网络良好的情况下,几乎能够保证100%的连接和通讯;
mina 通讯 实现server端与基于Android系统的client端通讯
使用MINA实现长连接
mina连接,mina心跳连接,mina断线重连。其中客户端可直接用在android上。根据各方参考资料,经过自己的理解弄出来的。CSDN的资源分太难得了。
mina 长连接 客户端+服务端 实现长连接可以收发消息正确部署可以使用需要的朋友可以下载看看
是跟手机进行推送功能的时候整理的工具,有长连接也有socket短连接,代码能直接运行,jar包和代码都有 直接放到项目里可以用,有mian测试方法
内容整合了好多前辈们的代码,感谢贡献者。当我遇到问题没法解决的时候,我深深的...注:由于时间问题,加了心跳机制,但是没加客户端回应,也没加服务端接收到心跳以后对长连接的处理。 菜鸟代码,欢迎提出宝贵意见。
Mina长连接框架实现Android客户端与服务器端通信
Android长连接神器框架Mina之服务器和客户端,跟慕课教程的一样。
Mina长连接(Android客户端-Java服务器)简单应用
mina2学习笔记
2.mina若有空闲连接则使用已有连接,若无则新建mina连接; 3.mina空闲连接超过保活时间25分钟后,自动删除; 4.mina发送指令后,接收指定时长内收到的消息; <groupId>org.apache.mina <artifactId>mina-core ...
mina2技术知识非常实用的 不用自己写多线程的东西的
mina2源码
nio的经典框架mina 在此基础上发展的netty是nio经典之中的经典
mina2核心框架5000个并发