当前位置: 首页 > 后端技术 > Java

十年耕耘,匠心打造中国人自己的网络编程框架t-io

时间:2023-04-01 13:30:05 Java

中国人拥有完全自主的高性能网络编程框架t-io。经过十几年对底层技术的潜心研究,国人终于打磨出了自己完全自主的开源网络编程软件t-io。1.什么是物联网?它是一个基于java开发的开源网络编程框架。大家都知道手机或者电脑上安装了很多APP。这些应用程序在手机或电脑上并不是孤立的。使用,但可以访问其他本地数据或与其他节点实时聊天,所以每个APP都必须有一个对外通信的模块。从编程的角度来看,这些内容可以通过网络编程框架来实现,t-io是完成这个内容最好的编程软件。软件开发人员想要开发新的应用程序。如果tio用于软件中的通信模块,他们不需要开发新的通信模块。这样可以节省开发时间,可以专注于打磨软件中的其他内容。即使他们开发出类似对外通信的网络架构,也未必能达到使用t-io的通信效果。我们知道一个好的流行的APP可能会有很多人同时访问,几十万,几百万,甚至几千万人同时访问,这对网络架构的设计是非常关键的.如果设计不好,可能无法满足这么多用户同时访问APP。如果出现这么大的访问量,可能会造成死机、通讯中断、通讯速度过慢。t-io经过创始人谭先生的精心打磨,性能超强,达到了运营水平。用t-io写的程序每秒可以处理1000万+条消息,1.9G内存可以支持30万个TCP长连接。每秒处理1051万条消息:1.9G内存支持30万个TCP长连接:测试站点1:https://www.wanetech.com/41测试站点2:https://www.wanetech.com/61基于tio的探超开发的即时通讯软件是目前业界功能最强大的全开源销售即时通讯软件。https://www.wanetech.com/2/pr...2.网络中APP中的数据传输了解网络中的数据传输,可以更好的理解t-io在软件中的作用,在APP应用数据必须在网络中传输,必须严格遵守OSI或TCP/IP协议并按照封装要求进行分片和打包后才能在IP网络中传输,所以首先了解OSI和TCP/IP封装和解封装过程的相关数据包。OSI和TCP/IP分层协议栈的对应关系OSI和TCP/IP协议栈每一层对应协议和应用Socket位于TCP/IP协议栈中Socket是应用层和TCP/IP通信的中间软件IP协议族抽象层,它是一组接口。在设计模式上,Socket实际上是一种门面模式,将复杂的TCP/IP协议族隐藏在Socket接口的背后。对于用户来说,一套简单的接口就是全部,Socket组织数据以满足指定的协议。从上图我们可以知道,tio完成的功能属于传输层和应用层之间的封装,以及链路的建立。下面介绍tio在软件中的具体使用过程:APP要完成设计的功能,首先要在客户端和服务端之间建立一个有连接或无连接的交互通信链路,然后在这个链路上传输数据,t-io就可以完成这个链接的建立。APP应用交互节点部署APP通信具体实现逻辑图的物理层,指的是电信号的传输方式和比特流的透传。链路层在两个相邻节点之间的线路上无差错地按帧传输数据。网络层负责为分组交换网络上的不同主机提供通信,传输数据的单位是数据包或数据包。传输层负责宿主机中两个进程之间的通信,传输数据的单位是段。网络层负责点对点(point-to-point)传输(这里的“点”是指主机或路由器),传输层负责端到端(end-to-end)传输(这里的“end”是指源主机和目的主机)。数据传输给对方首先要按照TCP/IP协议进行封装,封装成标准的链路层包,然后通过物理层传输给对方,然后对方解封装取出应用层数据。从上面讲解的APP通信流程来看,如果在开发过程中各种应用调用t-io,就不需要开发相关的网络通信模块,更多的时间和精力投入到具体应用功能的开发中。节省时间和精力,并加快应用程序的上市时间。3、t-io的核心模块t-io包括框架实现的核心模块tio-core,以及tio-websocket-server、tio-http-server、tio-udp-server、tio-webpack-core、tio-flash-policy-server等,都是基于tio-core开发的应用层组件。tio-core:基于javaaio开发的网络编程框架。用法示例:tio-study。tio-websocket-server:基于tio-core开发的websocket服务器。用法示例:tio-websocket-showcase。tio-http-server:基于tio-core开发的http服务器。使用示例:tio-http-server-showcase。tio-udp-server:基于tio-core开发的udp服务器。用法示例:tio-udp-showcase。tio-websocket-client:基于tio-core开发的websocket客户端。tio-webpack-core:基于tio-core开发的js/css/html编译压缩工具。4.t-io功能简介TCPServer&Client:1)Codec处理:源文件为AioHandler.java2)启动:源文件为TioServer.java/TioClient.java3)各种事件处理:源文件为AioListener.java4)TCP连接Context:源文件为ChannelContext.java5)实用方法:源文件为Tio.java6)全局配置:源文件为TioConfig.javaHTTPServer:完全实现了HTTP1.1,也使用了tio-http和POMt-io内部广泛引入WebsocketServer:完整实现了Websocket协议,tio-websocket在t-io内部也被广泛使用。POM引入UDPServer&Client:UDP是一种无连接协议。在传输数据之前,源端和终端不建立连接。当它需要发送时,只需从应用程序中获取数据并尽快将其发送到网络上。在发送端,UDP传输数据的速度只受应用程序产生数据的速度、计算机的能力和传输带宽的限制;读取消息段。tio-udp是tio-core中包含的功能子集。具体实现请学习:将项目以maven的形式导入eclipse中,运行org.tio.showcase.udp.server.ShowcaseUdpServerStarter启动udp服务器。启动成功后,日志如下:运行org.tio.showcase.udp.client.UdpClientStarter在服务器端观察控制台,会看到如下日志流量监控统计:目前只有网络内置完整流量监控统计的框架同步消息:指A向B发送消息,A收到消息后,在原线程等待B的相应响应消息。使用其他网络框架实现这样的功能需要开发者精通多线程协作,容易出现死锁,而t-io内置了发送同步消息的能力,使用起来也非常简单。心跳检测:t-io内置检测心跳超时的任务。当发现某个连接在指定时间内没有发送或接收数据时,会断开连接。心跳发送:t-io内置了发送心跳消息判断连接状态的任务。集群功能:企业版t-io(集群版)内置集群能力。用户只需在启动时添加几行配置代码,即可轻松拥有集群能力。此时可以同时支持1亿+长连接。集群服务器路由:在集群架构中,每台服务器都有完整的路由信息??,完成服务器之间的业务交互。集群架构中的消息路由:集群业务中有各种路由来引导业务消息发送到的业务节点。协议适配:t-io内置了协议适配能力,让一套业务代码可以同时支持多种协议,可以避免重复开发、重复测试、重复BUG。并发数据结构:t-io创建了大量的数据结构来降低并发编程的难度,主要包括:ObjWithLock、ListWithLock、CollectionWithLock、SetWithLock、MapCollectionWithLock、MapListWithLock、MapSetWithLock、MapWithLock半包粘包:框架层已经完成了半包和粘包的工作,业务层在传输时不需要考虑数据包的结构,只需要根据业务协议进行解码即可。自动重连:当t-io作为TCP客户端时,内置了自动重连功能,用户只需要在启动时配置ReconnConf对象即可。如果业务自己实现自动重连,至少要浪费高级工程师5-10个小时。工作日完成功能。SSL功能:SSL(SecureSocketsLayer)协议位于TCP/IP协议和各种应用层协议之间,为数据通信提供安全支持,t-io内置了对SSL的支持,只需一行代码需要:serverTioConfig.useSsl("/cert/xxx.jks","/cert/xxx.jks","password");IP黑名单:当屏蔽一个IP时,t-io会自动屏蔽该IP下的所有连接Disconnect并且不再接受来自该IP的连接,直到服务将该IP从黑名单中删除。结合t-io的监控数据,可以轻松实现自动屏蔽的能力。锁工具:为了更方便的使用读写锁,t-io提供了一个被用户称为“极品”的锁工具类,将锁使用的错误率降到最低。如果锁使用不当,对项目来说将是一场灾难。t-io提供的锁工具如果在业务项目中广泛使用,效率高,不易出错。缓存工具:t-io在第三方专业缓存的基础上封装了一个二级缓存,并提供了一个缓存工具类,可以通过一套编程接口在各种缓存之间自由切换,在国内被广泛使用通过t-io使用这些缓存工具,性能可以最大化。组管理:将多个TCP连接关联到一个或多个组(多对多),方便实现上层业务的组管理功能,一对一或一对多组业务可以实现。用户管理:将TCP连接与用户关联(一对多)Token管理:将TCP连接与Token关联(一对多)业务ID管理:将TCP连接与业务ID关联(一对多)-一)IP管理:一个TCP连接对应一个客户端IP(一对多)ID管理:一个TCP连接自动生成唯一ID(一对一)10000+,还在增加,下面仅展示部分使用过t-io或购买t-io授权的公司。更多案例请参考:https://www.wanetech.com/2/ca...