NIO通讯框架之Mina】的更多相关文章

      在两三年前,阿堂在技术博客(http://blog.sina.com.cn/heyitang)上曾经写过"JAVA新I/O学习系列笔记(1)"和"JAVA新I/O学习系列笔记(2)"两篇学习笔记和网友们分享过.事实上,阿堂现在和网友们分享这篇学习笔记中Mina(还有Netty.Grizzly等)实际上都是将NIO作为底层框架后再封装的一个开发高性能和高可用性的网络应用程序的框架.Apachemina也称为 NIO框架 或 客户端/服务端框架(典型的C/S…
BIO & NIO BIO - Blocking IO - 同步式阻塞式IO --- UDP/TCP NIO - New  IO - 同步式非阻塞式IO AIO  - AsynchronousIO - 异步式非阻塞式IO - jdk1.8 BIO的缺点: 1.会产生阻塞行为 --- receive/accept/connect/read/write 2.一对一的连接:每连接一个客户端,在服务器端就需要开启一个线程去处理请求.在客户端较多的情况下,服务器端就会产生大量的线程 - 耗费内存 3.连接…
http://www.blogjava.net/ghostdog/archive/2008/06/10/MinaVsXsocket.html实在无聊,考虑把当前应用的通讯模式由http移植为socket, 服务器这块因为对NIO并不熟悉,所以考虑使用现成的网络通讯框架进行移植,花了点时间测试比较流行的mina和xsocket.== 相同点 ==  1. 都对nio进行了有效屏蔽, 可以简化开发过程, 对于文本流模式的应用,两者都非常简单,实现一个基本的handle就可以  2. 提供了一些常见的…
NIO框架之MINA源代码解析(一):背景 MINA的底层还是利用了jdk提供了nio功能,mina仅仅是对nio进行封装.包含MINA用的线程池都是jdk直接提供的. MINA的server端主要有accept.processor.session三部分组成的.当中accept主要负责在指定的port监听.若有新连接则建立一个新的session.processor则负责处理session相应的发送数据和接收数据并调用上层处理:session则缓存当前连接数据. MINA採用了线程懒启动的技术,即…
 "你们的agent占了好多系统的port.把我们的非常多业务系统都给整死了,给我们造成了非常大的损失.要求你们的相关领导下周过来道歉"   --   来自我们的一个客户.  怎么可能呢,我们都不相信,我们的agent仅仅占一个port啊! 事实胜过雄辩.经过查证.确实是因为我们的agent占了好多系统的port.我看了一下日志.基本把系统可用的port占完了! watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2hhb2ZhbndlaQ=…
Apache MINA(Multipurpose Infrastructure for Network Applications) 是 Apache 组织一个较新的项目,它为开发高性能和高可用性的网络应用程序提供了非常便利的框架.当前发行的 MINA 版本支持基于 Java NIO 技术的TCP/UDP 应用程序开发.串口通讯程序. Mina 的应用层: 一个设计成熟的开源框架,总是会仅可能的减少侵入性,并在整个项目中找到合适的位置,而不应对整个项目的构架设计产生过多的影响,图 1 就是 MIN…
[连载]<C#通讯(串口和网络)框架的设计与实现>-1.通讯框架介绍 [连载]<C#通讯(串口和网络)框架的设计与实现>-2.框架的总体设计 目       录 C#跨平台物联网通讯框架ServerSuperIO(SSIO)正式开源... 1 1.      SSIO的特点 2.      SSIO概述 3.      SSIO与SIO的区别 4.      控制模式 5.      跨平台Windows和Linux 一.SSIO的特点 轻型高性能通信框架,适用于多种应用场,轮询模…
[开源]C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 一.概述 经过一个多月晚上的时间,终于把开源物联网通讯框架ServerSuperIO成功移植到Windows10 IOT上,暂时全名:ServerSuperIO.WinIOT(以后可能还会移植到Ubuntu上).以后可以把ServerSuperIO框架应用到嵌入式设备上,移植的成功具有标志性意义,意味着软件和硬件的结合,软硬的结合才具有更强的生命力.为什么我特别愿意干这件事呢?源于我对以前工作的总结,如下图: 二.如果利…
      物联网涉及到各种设备.各种传感器.各种数据源.各种协议,并且很难统一,那么就要有一个结构性的框架解决这些问题.SSIO就是根据时代发展的阶段和现实实际情况的结合产物. 各种数据信息,如下图:           解决方案,配合SIO使用: 一.SSIO特点 轻型高性能通信框架,适用于多种应用场,轮询模式.自控模式.并发模式和单例模式. 不光是通讯框架,是设备驱动.IO通道.控制模式场景的协调机制. 支持协议驱动器,可以按规范写标准协议和自定义协议. 支持发送数据缓存器,支持命令缓存重…
更新具体细节参见:[更新设计]跨平台物联网通讯框架ServerSuperIO 2.0 ,功能.BUG.细节说明,以及升级思考过程! 声明:公司在建设工业大数据平台,SSIO正好能派上用场,所以抓紧时间进行了完善,并且升级到了2.0版本,希望对大家有帮助.仅供开源学习,商用请联系作者. 1.SSIO特点 轻型高性能通信框架,适用于多种应用场,轮询模式.自控模式.并发模式和单例模式. 不光是通讯框架,是设备驱动.IO通道.控制模式场景的协调机制. 支持协议驱动器,可以按规范写标准协议和自定义协议.…
注:ServerSuperIO 2.0 还没有提交到开源社区,在内部测试!!! 1. ServerSuperIO(SSIO)说明 SSIO是基于早期工业现场300波特率通讯传输应用场景发展.演化而来.为了适应互联网.物联网的发展趋势,以及不同应用场景的需求,SSIO也在不断的进行更新. SSIO是一个跨平台的物联网通讯框架,但是其本质不仅仅是通讯框架,而是设备驱动.串口和网络IO管理器.场景控制器三者之间的协调与调度机制. 物联网是一个发展趋势,如果各种传感器.硬件设备的协议驱动无法统一,那么使…
1.[开源]C#跨平台物联网通讯框架ServerSuperIO(SSIO) 2.应用SuperIO(SIO)和开源跨平台物联网框架ServerSuperIO(SSIO)构建系统的整体方案 3.C#工业物联网和集成系统解决方案的技术路线(数据源.数据采集.数据上传与接收.ActiveMQ.Mongodb.WebApi.手机App) 4.开源地址:https://github.com/wxzz/ServerSuperIO 1.SSIO更新内容: 增加数据分发模式(DeliveryMode),在网络通…
[连载]<C#通讯(串口和网络)框架的设计与实现>- 0.前言 目       录 第一章           通讯框架介绍... 2 1.1           通讯的本质... 2 1.2           框架简介... 3 1.3           解决现实问题... 4 1.4           应用场景... 5 1.5           框架应用特点... 6 1.6           框架设计特点... 7 1.7           插件式应用框架... 9 1.8…
如题:国内开源类似QQ的即时通讯框架(endv.cn) 出于在企业管理方面遇到的一些瓶颈问题,特别是在数据收集.统计与分析,大数据处理,时时监控跟踪,风险分析.成本控制等方面遇到的很多数据信息问题等,很多管理软件跟不上且收费高,让管理工作比较艰难的进行. 我理想的管理方式并不是小企业的标准化,也不是大企业的家族化,这两个方面是我从事工作以来最大的体会,我换过几个工作,看到不同的管理模式,国企.民企.政府.私营等单位,从事各方面的事务,曾尝试去改变,但出于力量有限,空降的往往会被地面部队端掉...…
开源的C#TCP通讯框架 原来收费的TCP通讯框架开源了,这是一款国外的开源TCP通信框架,使用了一段时间,感觉不错,介绍给大家 框架名称是networkcomms 作者开发了5年多,目前已经停止开发,对于中小型的应用场景,够用了. 框架的地址是: https://github.com/MarcFletcher/NetworkComms.Net 界面如下: 点那个Download就可以下载源码了 下载之后,解压缩之后的文件列表如下: 可以用VS打开NetworkCommsDotNet工程文件了…
原来收费的TCP通讯框架开源了,这是一款国外的开源TCP通信框架,使用了一段时间,感觉不错,介绍给大家 框架名称是networkcomms 作者开发了5年多,目前已经停止开发,对于中小型的应用场景,够用了. 框架的地址是: https://github.com/MarcFletcher/NetworkComms.Net 界面如下: 点那个Download就可以下载源码了 下载之后,解压缩之后的文件列表如下: 可以用VS打开NetworkCommsDotNet工程文件了 用 vs2010打开,可能…
做个广告先, PHP千人群(6848027) C++群 (1414577) 看雪汇编&反汇编群(15375777) 看雪汇编&反汇编2群(4915800) 转载不一定注明出处,只要推荐下群就可以哈,各位亲~ 微信开发_微信教程__微信通讯框架V1.0 <?php /** * 微信消息框架 by 牛牛 Q 184377367 */ class WeChat { public $token = null; public $msgType = null; public $event = n…
分布式通信框架-RMI讲解 什么是RPC Remote procedure call protocal RPC协议其实是一个规范.常用PRC框架:Dubbo.Thrif.RMI.Webservice.Hessain 网络协议和网络IO对于调用端和服务端来说是透明: 可以简单的理解为用户调用远程方法.不必在乎这个远程方法是怎么出现的,就跟调用本地方法一样.RPC框架做的事就是让我们像使用本地方法一样的去使用远程方法,但是其实RPC框架的底层有自己写好协议以便能远程通讯. 一个RPC框架包含的要素…
研读: 1.http://www.mycat.io <Mycat权威指南> 第 2 章 Mycat 前世今生: 浏览: 深度认识 Sharding-JDBC:做最轻量级的数据库中间层 - 编辑部的故事的个人空间 - 开源中国 https://my.oschina.net/editorial-story/blog/888650 小结: 1.MyCAT 在 Cobar 的基础上,完成了彻底的 NIO 通讯,并且合并了两个线程池 2.MyCAT 解决此问题的方式则更加人性化,首先将原先数组模式的固定…
前言:Otto事件总线 -- 组件之间通讯框架 对于之前的情况activity之间或者fragment之间等跳转传值一般都是用bundle.intent等,从activityA --- activityB用startActivity,用startActivityForResult()可以接受后者回到前者的参数并且可做一些更新UI等操作.这样一来就要判断从A中哪一个按钮跳转到了B,就要设置唯一标识定义什么FRIST=1,FFFFF=2等.Otto事件总线解决了这个问题,只要在订阅事件,接收方接受订…
现有项目是利用C#的socket与PLC进行实时通讯,PLC有两种通讯模式——常规采集&高频采集. 其中常规采集大概在10ms左右发送一次数据,高频采集大概在2ms左右发送一次数据. 现有代码框架:在与PLC进行连接时,通过建立委托并创建线程的方式,来循环读取数据 //创建委托 public delegate void PLC_HD_Receive(byte[] recv_data); public PLC_HD_Receive PLC_Recv_Delegate_HD; //给委托绑定方法 P…
首先感谢张队@geffzhang公众号转发了上一篇文章,希望广大.neter多多推广dapr,让云原生更快更好的在.net这片土地上落地生根. 目录:一.通过Dapr实现一个简单的基于.net的微服务电商系统 二.通过Dapr实现一个简单的基于.net的微服务电商系统(二)--通讯框架讲解 三.通过Dapr实现一个简单的基于.net的微服务电商系统(三)--一步一步教你如何撸Dapr 四.通过Dapr实现一个简单的基于.net的微服务电商系统(四)--一步一步教你如何撸Dapr之订阅发布附录:(…
前言 大龄程序员失业状态,前几天面试了一家与医疗设备为主的公司并录取:因该单位涉及串口通讯方面技术,自己曾做过通讯相关的一些项目,涉及Socket的较多,也使用SuperSocket做过一些项目,入职前做了一些准备工作,按照SuperSocket设计思路写了一套串口通讯的框架,最后入职后发现曾一再确定的双休问题不能实现:技术负责人对我的工作安排只是跟着几个年轻程序员熟悉及维护已有程序,入职前所说的某一个新项目也已经有人在做,而且翻看他们的代码质量也很一般,,综合考虑还是放弃了这份工作,5年前开始…
Apache MINA 2 是一个开发高性能和高可伸缩性网络应用程序的网络应用框架.它提供了一个抽象的事件驱动的异步 API,可以使用 TCP/IP.UDP/IP.串口和虚拟机内部的管道等传输方式.Apache MINA 2 可以作为开发网络应用程序的一个良好基础. Apache MINA是非常著名的基于java nio的通信框架,以前都是自己直接使用udp编程,新项目选型中考虑到网络通信可能会用到多种通信方式,因此使用了MINA. 本文结构: (1)客户端和服务器代码 :虽然是udp的,但是m…
Apache Mina Server 是一个网络通信应用框架,也就是说,它主要是对基于TCP/IP.UDP/IP协议栈的通信框架(当然,也可以提供JAVA 对象的序列化服务.虚拟机管道通信服务等),Mina 可以帮助我们快速开发高性能.高扩展性的网络通信应用,Mina 提供了事件驱动.异步(Mina 的异步IO 默认使用的是JAVA NIO 作为底层支持)操作的编程模型.Mina 主要有1.x 和2.x 两个分支,这里我们讲解最新版本2.0,如果你使用的是Mina 1.x,那么可能会有一些功能并…
1.NIO超级陷阱 之所以说NIO超级陷阱,就是因为我在本系列开头的那句话,因为使用缺陷导致客户业务系统瘫痪.当然,我对这个问题进行了很深的追踪,包括对MINA源码的深入了解,但其实之所以会出现这个问题,它的根不是MINA的原因,而是JDK底层的问题. JDK底层在实现nio时,为了能够唤醒等待在io上的线程,在windows平台使用了两个端口建立连接发消息实现.看如下代码: public class NIOTest { @Test public void test1(){ final int …
1.粘包与段包 粘包:指TCP协议中,发送方发送的若干包数据到接收方接收时粘成一包,从接收缓冲区看,后一包数据的头紧接着前一包数据的尾.造成的可能原因: 发送端需要等缓冲区满才发送出去,造成粘包 接收方不及时接收缓冲区的包,造成多个包接收 断包:也就是数据不全,比如包太大,就把包分解成多个小包,多次发送,导致每次接收数据都不全. 2.消息传输的格式 消息长度+消息头+消息体  即前N个字节用于存储消息的长度,用于判断当前消息什么时候结束. 消息头+消息体    即固定长度的消息,前几个字节为消息…
http://blog.csdn.net/column/details/nio-mina-source.html http://blog.csdn.net/chaofanwei/article/details/38848085 http://blog.csdn.net/chaofanwei/article/details/38871115 http://blog.csdn.net/chaofanwei/article/details/38920963 http://blog.csdn.net/c…
<分布式服务通讯框架XXL-RPC>    一.简介 1.1 概述 XXL-RPC 是一个分布式服务通讯框架,提供稳定高性能的RPC远程服务调用功能.现已开放源代码,开箱即用. 1.2 特性 1.快速接入:接入步骤非常简洁,两分钟即可上手: 2.服务透明:系统完整的封装了底层通信细节,开发时调用远程服务就像调用本地服务,在提供远程调用能力时不损失本地调用的语义简洁性: 3.注册中心(可选):支持使用zookeeper作为服务注册中心,服务注册并动态发现.同时,也可以不使用注册中心,直接指定服务…
https://github.com/solq360/common 主要运行在android 平台 解决自动化编/解码,等等.. 模块 解决问题/实现处理 备注 负责人 进度 录音播放 AudioRecord 和 AudioTrack 熟悉录音处理接口 solq 进行中 声音编码 第三方库 处理燥音,回音,压缩等     通信 jdk nio 实现 移动网socket编程是否稳定   进行中 ioc java 反射技术   solq 进行中 event     solq 进行中 资源管理 程序配…