0 0

mina2多线程疑问30

<div class="iteye-blog-content-contain" style="font-size: 14px">在mina2中,如果在代码中使用了dfcb.addLast("executor", new ExecutorFilter(Executors.newCachedThreadPool()));拦截器,并且开了很多的客户端测试,发现后台的pool-3-thread线程会很多,有时候这个线程过多会出现内存溢出了说不能创建新的线程,最后会把客户端关闭了一部分或者自己停了;如果不加这个拦截器发现后天的NioProcessor会随着时间的增加阻塞总数也不断变大,不知道最后会不会回崩掉?mina2的线程到底该如何设置啊,网上也看了很多资料也了解了上面两种方式配与不配的区别。说一下我的业务:1、接收客户端数据,2、解析数据3、数据入库</div>
2014年4月29日 08:51

2个答案 按时间排序 按投票排序

0 0

采纳的答案

回答一下问题:
如果不加这个拦截器发现后天的NioProcessor会随着时间的增加阻塞总数也不断变大,不知道最后会不会回崩掉?

不加拦截器的话,接收客户端数据与业务处理均在IoProcessor引用的线程池里处理,可能会产生阻塞,客户端延迟严重,最终会导致工作队列不断累积,内存不断增长

解决办法:

通用的做法是修改dfcb.addLast("executor", new ExecutorFilter(Executors.newCachedThreadPool()));

将cachedThreadPool修改为有上限的线程池,防止线程无限增长。

2014年4月29日 09:10
0 0

1、首先将Executors.newCachedThreadPool()替换为自定义的ThreadPoolExecutor
设置合理的核心线程数、线程总数、采用定长阻塞容器、设置失败策略

2、解决接收和处理能力不匹配问题,主要是你接收速度快,处理速度慢,这个是和你业务有关系的,所以还要从业务上优化下

2014年5月01日 12:20

相关推荐

    mina多线程

    根据给定的信息,我们可以从标题“mina多线程”、描述“mina java多线程开发框架 NIO”以及部分给出的内容中提炼出一系列与Mina框架相关的知识点。 ### Mina框架简介 Mina(Multipurpose Infrastructure Networked...

    深入理解Apache_Mina_(5)----_配置Mina的线程模型[归类].pdf

    2. **Connector Thread**:在客户端端,对应的线程模型称为Connector thread。它的功能与Acceptor线程相似,负责在客户端和服务器之间建立连接,并将其导向I/O Processor线程。同样,这个线程模型也是由Mina客户端...

    mina2技术知识

    MINA2的强大之处在于它为开发者提供了异步事件驱动的网络通信框架,免去了处理底层网络编程的复杂性,如多线程管理和数据缓冲等。 MINA2的核心概念包括: 1. **IoSession**:IoSession 是 MINA 中的核心接口,它...

    mina2核心框架

    5. **线程池管理**:MINA2内置了线程池管理,根据系统资源动态调整线程数量,平衡了CPU使用率和响应时间,确保服务的稳定性。 6. **丰富的API**:MINA2提供了丰富的API,使得开发者可以方便地控制网络连接的生命...

    Mina客户端示例

    2. **配置Connector**: 设置连接器的参数,如端口号、超时时间、缓冲区大小等。 3. **创建CodecFactory**: 这是编码器和解码器的工厂,用于在建立连接时指定数据的编码和解码方式。 4. **设置事件处理器**: 你需要...

    MINA2与Netty4比较分析

    接下来将根据标题和描述的要求详细分析Mina2与Netty4的区别,重点从它们的线程模型、Buffer使用以及Netty4中集成的序列化工具ProtoBuf等方面进行比较。 首先,Mina2和Netty4都是异步事件驱动的网络应用框架。Netty4...

    mina2推送demo客户端

    MINA2基于NIO(Non-blocking I/O)模型,允许在单个线程中处理多个连接,提高了系统并发能力。在"echo_client_udp"中,当客户端发送数据后,MINA2会异步等待服务器的响应,这样可以有效地避免线程阻塞,提高系统...

    mina2 源码 mina

    6. **Asynchronous I/O**:MINA基于NIO(Non-blocking I/O)模型,允许多个连接同时处理,而无需为每个连接创建新的线程,大大提升了服务器性能。 7. **Event-driven Model**:MINA采用事件驱动的设计,当网络事件...

    Java mina2源码

    Java Mina2是一个高度可扩展且高性能的网络通信框架,主要用在开发基于TCP、UDP等协议的服务端应用。它提供了简单而强大的API,使得开发者能够轻松构建网络应用程序,如服务器端的聊天室、游戏服务器或者任何需要...

    mina2资料-各种教程

    MINA提供了多种线程模型,如简单的单线程模型、多线程模型以及Event-driven模型。选择合适的线程模型可以根据应用的并发需求来调整性能和资源消耗。 了解以上知识点是掌握Apache MINA的基础,通过提供的学习资料,...

    mina2 实例程序(socket通讯调用远程方法)

    为了提高性能,可以利用Mina2的多线程模型,实现并发处理多个连接。此外,还可以结合Spring框架,将Mina2集成到Spring Boot应用中,实现更灵活的服务注册和发现。 总结,Apache Mina2提供了一套强大的工具,使得...

    mina2.x开发示例

    在Mina2.x版本中,引入了更多的优化和改进,使得开发过程更为高效。 在Mina2.x开发示例中,通常会涉及到以下几个关键知识点: 1. **I/O模型**:Mina基于NIO(Non-blocking I/O)模型,允许单个线程处理多个连接,...

    MINA2 用户手册(中英文2个版本)加API(英文)

    这种模型能有效利用多线程,提高并发处理能力。 6. **API文档**:英文版的MINA2 API文档详细列出了框架中的类、接口和方法,是开发者查阅和学习MINA2功能的参考手册。通过API,开发者可以了解如何创建服务端、...

    Apache MINA 线程模型配置

    每个 `Acceptor` 或 `Connector` 都关联着一个或多个线程,这些线程用于处理 I/O 事件。 对于 NIO 模式来说,线程模型的配置尤为重要。可以通过下面的方式进行配置: ```java IoAcceptor acceptor = new ...

    mina2+spring结合实例

    《Mina2与Spring整合应用实战》 在Java开发领域,Apache Mina和Spring框架的结合使用能够构建高效、可扩展的网络应用。Mina2作为一个轻量级的网络通信框架,提供了高度抽象的API,使得开发者可以方便地处理网络I/O...

    springboot 深度整合mina开箱即用

    同时,Mina提供了异步编程模型,可以通过多线程和事件循环来提高处理能力。 总结来说,Spring Boot深度整合Mina可以帮助我们快速构建高性能的网络服务,降低了开发复杂性。这个开箱即用的方案对于新手开发者来说,...

    服务端基于MINA2的UDP双向通信Demo演示(MINA2服务端)

    5. **过滤器(Filter)**:MINA2中的过滤器是处理输入和输出数据的组件,可以添加多个过滤器形成过滤器链,每个过滤器执行特定的任务,如解码、加密、日志记录等。 6. **Echo服务器**:Echo服务器是一种简单的...

    Mina2中文文档

    根据提供的信息,我们可以详细解析与"Mina2中文文档"相关的各个关键知识点: ### Mina2中文文档概述 #### Introduction Mina2是一个基于NIO(Non-blocking I/O)的高效网络通信框架,由Apache软件基金会维护。该...

Global site tag (gtag.js) - Google Analytics