一个项目托了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框架中的长连接与短连接,并通过提供的Minaclient和MinaHost工程实例进行详细解析。 首先,我们需要了解什么是长连接和短连接。在TCP/IP通信中,短连接是指一次完整的通信过程(如HTTP请求)结束...
总结起来,`Android-MinaSocket` 是一个基于Apache Mina的Android长连接库,它提供了稳定、高效的网络通信功能,适用于需要实时数据交互的Android应用。通过使用这个库,开发者可以专注于业务逻辑,而无需过多关心...
总结来说,Socket通信是网络编程的基础,而MINA长连接则是Socket通信的一种优化实现,尤其适合需要高效处理大量并发连接和实时数据交换的场景。在实际开发中,你可以根据项目需求选择适合的技术栈,例如使用MINA来...
首先,让我们理解"Mina连接"。在Mina中,连接是指客户端与服务端之间建立的通信链路。它支持多种传输协议,如TCP/IP(Socket)、UDP(Datagram)等。Mina提供了一种事件驱动的模型,通过IoSession接口来管理连接,...
### Mina2学习笔记知识点概览 #### 一、Mina入门详解 ##### 第一步:下载使用的Jar包 - **mina-core-2.0.0-M1.jar**:这是Mina核心库,提供了NIO框架的基本功能。 - **slf4j-api-1.5.2.jar**:用于日志记录的高级...
总结来说,mina长连接通过提供一套强大的网络通信框架,简化了Android与服务器之间的交互,实现了高效、安全的长连接通信。对于需要实时数据同步和高并发处理的项目,mina是一个非常优秀的解决方案。通过深入理解和...
总结,MINA2推送Demo客户端,尤其是"echo_client_udp",为我们提供了一个理解MINA2框架和UDP通信的实用工具。通过对这个例子的深入学习和实践,开发者不仅可以掌握MINA2的基本用法,还能了解到如何利用MINA2构建高效...
Apache Mina 2框架通过其丰富的API和灵活的设计,大大降低了网络编程的难度,使得开发者可以专注于业务逻辑的实现,而无需过多关注底层网络细节。无论是对于初学者还是有经验的开发者,Mina都是构建高性能网络应用的...
在MINA框架中,`NioSocketAcceptor` 是一个核心组件,它用于监听和接受来自客户端的连接请求。在提供的代码片段中,`start` 方法初始化了一个 `NioSocketAcceptor` 实例,并设置了相关的配置: 1. 线程池:`...
《mina服务器和客户端实现详解》 Apache Mina(Minimum Asynchronous Network)是一个高度可扩展的网络通信框架,它为开发者提供了构建高性能、高可用性的网络应用程序的基础。在本文中,我们将深入探讨如何利用...
总结,Apache Mina2提供了一套强大的工具,使得开发人员能够轻松构建高性能的网络应用,包括实现远程方法调用。通过理解Mina2的基本原理和使用方法,我们可以构建出稳定、高效且易于维护的分布式系统。提供的"mina2-...
在提供的压缩包中,可能包含了基于Mina2的实例代码,这些代码通常会展示如何创建服务器、连接客户端、定义IoHandler和过滤器、进行数据编码解码等操作。例如,可能会有一个简单的Echo Server示例,它接收客户端发送...
总结来说,Mina通讯框架是Android开发中的重要工具,尤其在处理长连接场景下表现出色。通过使用mina-core-2.0.16.jar和相关文档,开发者可以构建稳定且高效的网络服务,而slf4j-api-1.7.21.jar则提供了方便的日志...
这篇博客“Java学习之IO总结及mina和netty”探讨了Java IO的基础知识,并深入到两个高级网络通信框架——Mina和Netty。Mina和Netty都是基于NIO(非阻塞IO)的高性能网络应用框架,它们简化了复杂网络编程的实现。 *...
总结一下,这个"Mina开发实例"涵盖了如何使用Apache Mina创建服务端和客户端,通过Maven构建项目,并实现长连接通信。通过学习和实践这个DEMO,开发者可以掌握Mina的基本用法,为构建高性能、高并发的网络应用打下...
该文档作为中文用户手册,主要提供了Mina2的全面介绍和技术细节,适合于想要学习和使用Mina2进行网络编程的开发者。 #### 为何使用Mina - **提高性能**:Mina通过采用非阻塞I/O模型显著提高了网络应用程序的性能。...
本文旨在深入剖析Mina2的核心部分,帮助读者更好地理解和掌握Mina2的工作原理及其在实际开发中的应用。 #### 核心包介绍 Mina2的核心组成部分主要包括以下四个包: 1. **org.apache.mina.core.service**:包含服务...
在Android开发中,Mina可以帮助开发者轻松地处理TCP/IP和UDP/IP通信,尤其适用于实现长连接和断线重连功能。下面将详细介绍Mina框架在Android中的应用及其核心概念。 1. **Mina框架基础** Mina源于Java平台,但在...
总结来说,"MINA2 CS客户端服务器通信"涉及到的关键知识点包括MINA2框架的架构、非阻塞I/O、异步事件驱动模式、会话管理和数据编码解码。通过理解和熟练运用这些知识点,开发者能够构建出高效稳定的网络通信应用。