`
swen00
  • 浏览: 62516 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

xsocket nio随笔

    博客分类:
  • java
阅读更多
最近很忙,怕时间长了忘记,多做笔记.
问题从xfire的异常开始
webservice一直也没出过问题,但是最近接口数据量变大,总频繁的偶尔抛出异常,无奈
1)对比xfire jar包,是否有少了或者版本太低或者太高,无果
2)搜索网上的一些解决办法,无果
问题连接http://www.iteye.com/problems/39873
无奈改由socket通讯,采用xsocket,只有一个jar包,实在忍受不了像mina那么多jar,怕对现有的lib库有冲突。
xsocket使用简单,10分钟就能搭建好。
OK,采用短连接,发送完数据后就关闭连接,服务器端采用NIO方式接收。
本地测试OK,可能还是测试不够,一放到现场,问题来了,数据量处理过大,经常出现本地已经发送成功,对端确没有收到数据,日志没有显示,本地也一点异常没有,日志打印发送成功。
第一反应是线程池开的不够大,后加大线程池,并用了LinkedBlockingQueue排队,还是不能解决,后仔细研究了下NIO机制,原因大致为:
举个例子:
NIO通讯好比送包裹,当一个包裹过来,送到,并要签收。
偶的短连接,就是包裹送到,但是没有签收,就断开连接了,本地只认为包裹送到了,至于是否签收他就不关心了,所以本地就不会抛出异常。
xsocket NIO构造的服务器端,selector负责接收read channel,默认是2个,当你设置了setWorkerpool(20),20个线程用完,那么channel只能等待,客户端就会认为包裹送到了,等有空闲线程之后,read channel由于客户端连接关闭,也就不会读到任何数据。
明白之后改进也就简单,短连接发送数据后,一定要得到返回值才认为数据接收成功,再关闭连接。

可能有理解不当之处,还望牛人指出,一些细节并没有去深究。
希望对大家设计接口协议有一定帮助。

相关文章
http://www.blogjava.net/adapterofcoms/articles/314560.html
http://xsocket.sourceforge.net/

分享到:
评论

相关推荐

    xsocket NIO框架示例

    xsocket NIO框架示例 resources 中有相关的 资料。telnet服务测试教程。和相关jar

    NIO网络框架 xSocket

    NIO网络框架 xSocket

    基于java的开发源码-NIO网络框架 xSocket.zip

    基于java的开发源码-NIO网络框架 xSocket.zip 基于java的开发源码-NIO网络框架 xSocket.zip 基于java的开发源码-NIO网络框架 xSocket.zip 基于java的开发源码-NIO网络框架 xSocket.zip 基于java的开发源码-NIO网络...

    java源码:NIO网络框架 xSocket.rar

    xSocket是一个基于Java NIO实现的网络通信框架,它旨在提供简单易用、性能卓越的网络编程接口,适用于开发高并发、低延迟的网络应用。 1. **Java NIO基础** Java NIO的核心组件包括通道(Channel)、缓冲区...

    NIO网络框架 xSocket.7z

    xSocket是一款基于Java NIO实现的高性能网络框架,它为开发者提供了一种简单、高效的网络编程接口。 在BIO模型中,每个连接都需要一个独立的线程进行处理,当并发连接数量增大时,服务器需要创建大量线程,这不仅会...

    JAVA源码NIO网络框架xSocket

    JAVA源码NIO网络框架xSocket

    基于java的NIO网络框架 xSocket.zip

    xSocket是一款基于Java NIO实现的高性能网络通信框架,它为开发者提供了更简单、更高效的网络编程接口。 在Java NIO中,核心概念包括通道(Channel)、缓冲区(Buffer)和选择器(Selector)。通道是数据传输的途径...

    基于Java的NIO网络框架 xSocket.zip

    xSocket通过使用NIO的多路复用器(Selector)来监听多个套接字通道,当有数据可读或可写时,Selector会唤醒线程进行相应的处理,而不是一直阻塞等待。这种方式使得xSocket可以在一个线程中管理大量的连接,减少了...

    基于Java的源码-NIO网络框架 xSocket.zip

    xSocket是一个基于Java NIO实现的高性能、轻量级的网络通信框架,它为开发人员提供了构建网络应用的强大工具。 首先,让我们深入理解Java NIO的核心组件: 1. **通道(Channels)**:通道是数据传输的路径,它可以...

    java资源NIO网络框架 xSocket

    java资源NIO网络框架 xSocket提取方式是百度网盘分享地址

    基于Java的实例开发源码-NIO网络框架 xSocket.zip

    通过解压“NIO网络框架 xSocket.zip”,你可以得到xSocket的源码,这将有助于深入理解NIO在网络编程中的应用,以及如何通过Java NIO实现一个高效的网络框架。 源码分析和学习可以涉及以下几个方面: 1. **通道...

    基于Java的实例源码-NIO网络框架 xSocket.zip

    xSocket是一个基于Java NIO实现的网络通信框架,它提供了高性能、稳定可靠的网络连接管理。 1. **Java NIO基础**: - **通道(Channels)**:通道是数据传输的路径,可以连接到不同类型的I/O设备,如文件、套接字...

    xsocket使用指南

    xSocket 是一个轻量级的基于 NIO 的服务器框架,用于开发高性能、可扩展、多线程的服务器。该框架封装了线程处理、异步读写等方面。下面是 xSocket 的一些核心功能和使用指南: 核心功能 xSocket 的核心功能支持...

    xsocket 2.5.4 源代码

    xSocket-2.5.4-sources.jar , 2.5.4版的源代码jar包,引入项目即可查看

    xSocket-2.8.1.jar

    xSocket是一个轻量级的基于nio的服务器框架用于开发高性能、可扩展、多线程的服务器。该框架封装了线程处理、异步读/写等方面。

    xSocket api 2.6.6version

    xSocket api 2.6.6version

    xsocket.jar包

    socket通讯框架xsocket所需的jar包

    轻量级JAVA scoket 服务器XSOCKET

    轻量级JAVA scoket 服务器XSOCKET

Global site tag (gtag.js) - Google Analytics