这个项目最早(2008年)是用于一个网络游戏的Cache Server,以及一个电子商务的Web Session服务。后来不断增加新的功能,除了Java还支持C#,到现在已经可以用它来开发网络游戏的服务器。等过些日子我还会开源网络游戏的服务器源码。
关于性能,当时后台相应请求的效率是每秒10W次,现在我在自己的笔记本上测,只有一个客户端与服务器都在一个物理机上(CPU: i7-3610QM; RAM: 8G; OS: Win7-64),每秒相应12000个请求。
tatala-client-csharp已经上传,同样在笔记本上测试,一个c#客户端一个Java服务端都在一台机器上,每秒响应22000个请求。c#客户端除了性能测试的例子还有一个演示Server推送的聊天室例子。
Tatala最大的特点是简单,性能是第二考虑能够满足大部分应用就行。因为性能可以通过增加机器得到提升,而代码简单意味着雇更少的人更快的开发。老板省钱,程序员轻松才是最重要的。
开源地址:
https://github.com/zijan/Tatala
下面是简单介绍。
概述
Tatala是一个简单易用的RPC中间件,并且跨语言跨平台。它将调用方法转变成字节数组(包括被调用类名,目标方法名,参数序列和返回值),在socket基础上实现客户端和服务器之间的互相通信。
目前,Tatala支持Java的客户端与服务器端,和C#的客户端。
特性
* 简单易用可以快速开发和建立网络组件
* 跨语言跨平台
* 高性能和分布式
* 传输协议为短小精悍的二进制
* 支持长短两种socket 连接
* 客户端与服务器端多线程处理
* 支持异步请求
* 对于大数据支持压缩传输
* 能够用于跨语言的远程方法调用RPC,高性能的缓存服务器,分布式的消息服务,多人在线游戏服务器,等等
快速开始
下载tatala.jar 包含在你项目的classpath中。
简单是Tatala第一考虑因素,所以用它建立RPC的方式,让开发者感觉就像调用本地普通方法一样简单。不用考虑网络,线程这些东西。
现在举一个例子,假如我们有个服务器端的服务TestManager接口 和 TestManagerImpl实现类。
TestManager.java
public interface TestManager {
public String sayHello(int Id, String name);
}
TestManagerImpl.java
public class TestManagerImpl implements TestManager{
public String sayHello(int Id, String name) {
return "["+Id+"]"+"Hello "+name+" !";
}
}
我们还需要在服务端建立一个socket服务类来部署我们的业务逻辑,在这个例子中socket服务监听端口是10001。
TestServer.java
public class TestServer {
public static void main(String args[]) {
int listenPort = 10001;
int poolSize = 10;
AioSocketServer server = new AioSocketServer(listenPort, poolSize);
server.start();
}
}
然后客户端的代码类似这样:
EasyClient.java
public class EasyClient {
private static TransferObjectFactory transferObjectFactory;
private static TestManager manager;
public static void main(String[] args) {
transferObjectFactory = new TransferObjectFactory("test1", true);
transferObjectFactory.setImplClass("TestManagerImpl");
manager = (TestManager)ClientProxyFactory.create(TestManager.class, transferObjectFactory);
int Id = 18;
String name = "JimT";
String result = manager.sayHello(Id, name);
System.out.println("result: "+result);
}
}
当然我们需要把接口类(TestManager.class) 加入到客户端的classpath里。客户端还需要一个配置文件controller.xml列出要被客户端调用的服务器端程序的IP, port和连接名。 (注意连接名“test1”)
controller.xml
<connections>
<connection>
<hostIp>127.0.0.1</hostIp>
<hostPort>10001</hostPort>
<timeout>5000</timeout>
<retryTime>3</retryTime>
<name>test1</name>
</connection>
</connections>
这就是所有代码和配置对于建立一个Tatala RPC。
更多例子请看教程。
Tatala-中文教程
传输协议
在客户端把调用的方法信息设置到transfer object里, Tatala把transfer object转换成字节数组并且发送给服务器。在服务器端把接收到的字节数组再还原成包含调用信息的transfer object。包括被调用类名,目标方法名,参数信息和返回类型等。Tatala 执行器获得调用信息执行目标方法。
支持类型
Tatala支持的参数和返回类型:
bool,byte,short,chat,int,long,float,double,Date,String,
byte[],int[],long[],float[],double[],String[],Serializable,WrapperClass
其它描述
需要JDK1.7,因为使用了Java AIO。
第三方类库包括XSteam,Log4j。
License
Apache License Version 2.0
分享到:
相关推荐
付费进群源码,不和外面的一样跳转卡顿,这个跳转不卡顿,支持三级分销
"Qt平台下的差分压缩升级工具:源码解析与实现,采用LZMA、bsdiff及SHA256算法,高效固件差分升级解决方案",差分压缩升级工具qt上位机源码和下位机源码! Qt 5.14.2 MinGW 32 64 bit 已经经过长期验证。 使用lzma,bsdiff,sha256算法。 该工具使用差分算法制作差分包并自带压缩功能,差分升级是将新老固件具有差异的部分剥离出来,例如固件从V1.1.0升级到V1.1.1,两个固件相比只修改了1K的内容,将该部分剥离出来生成差分包pach.bin(v1.1.0~v1.11),通过串口将差分包升级到设备端,设备端接收完成之后,先解压差分包,再通过差分恢复算法,根据差分包中的数据标志,将新老固件进行融合,变成新的固件,从而完成升级。 直接升级使用也会压缩,减小固件大小。 减少传输数据量,节约升级时间。 ,核心关键词:差分压缩升级工具; Qt上位机源码; Qt下位机源码; 差分算法; 差分包; 固件升级; lzma算法; bsdiff算法; sha256算法; 串口传输; 融合固件。,“基于QT与LZMA+Bdiff算法的差分压缩升级工具:支持差分
2022年7月环境管理体系基础
2022年12月管理体系认证基础
本资源包包含了一系列关于B站(哔哩哔哩)UP主的粉丝数据Excel文件,主要方便大家学习如何利用FineBI平台对这些数据进行深入分析。通过本资源,用户可以学习到如何连接多源数据、加工和可视化数据,从而实现数据驱动业务决策。 数据概述: 数据覆盖了7000多个兴趣圈层的多元文化社区,聚焦于中国年轻一代高度聚集的文化社区和视频平台。 文件包括总粉丝排行、充电排行、创作人气排行、掉粉排行和涨粉排行等,帮助理解不同领域UP主的受欢迎程度及其粉丝分布情况。 分析目的: 利用FineBI的多源数据连接和自助数据加工能力,确保数据的真实、准确、完整。 通过FineBI的自助分析与简便易上手的可视化组件,制作对应仪表板,实现数据驱动业务。分析并展示B站粉丝数量最多的区域、播放量前10的UP主、男女UP主对比及UP主投稿与涨粉量之间的关系等,以了解运营策略。 适用人群: 适合希望提高自身数据分析技能的UP主、内容创作者,以及对社交媒体数据分析感兴趣的个人或团队。
《COMSOL在新能源仿真领域的应用研究:固体氧化物燃料电池与海水电渗析淡化模拟分析》 研究生探讨微纳尺度光伏与CFD仿真的三维瞬态模型构建——甲烷乙醇重整与PCB相变材料耦合水冷热管理研究》,COMSOL-SOFC(固体氧化物燃料电池);甲烷 乙醇重整;光伏 PCB相变材料耦合水冷却热管理;微纳尺度海水电渗析淡化等模拟讨论,本人交大研究生CFD仿真方向 SOFC平板单电池:25流道,包含进气管路,密封装置,外部集流体(计算资源要求较大)第一个套 SOFC单通道模型:经过与实验对比验证,三维单通道 第二个套 电子元件相变材料耦合水冷热管理三维瞬态模型(含自然对流) 第三个套 默认是第一个非全部 ,COMSOL; SOFC(固体氧化物燃料电池); 甲烷乙醇重整; 光伏; PCB相变材料; 水冷却热管理; 微纳尺度海水电渗析淡化; SOFC平板单电池; SOFC单通道模型; 电子元件相变材料耦合水冷热管理。,交大CFD仿真研究:SOFC及多元系统的热管理模拟与优化分析
2023月03月Python一级理论
《基于NRBO-Transformer-BiLSTM的Matlab回归预测代码:优化光伏功率及负荷预测》,NRBO-Transformer-BiLSTM回归 Matlab代码 基于牛顿拉夫逊优化算法优化Transformer结合双向长短期记忆神经网络(BiLSTM)的数据回归预测(可以更为分类 单、多变量时序预测 回归,前私我),Matlab代码,可直接运行,适合小白新手 程序已经调试好,无需更改代码替数据集即可运行数据格式为excel Transformer 作为一种创新的神经网络结构,深受欢迎。 采用 Transformer 编码器对光伏、负荷数据特征间的复杂关系以及时间序列中的长短期依赖关系进行挖掘,可以提高光伏功率、负荷预测的准确性。 NRBO作为24年新算法,表现出较强的性能,前可以更为其他算法,需要私信 1、运行环境要求MATLAB版本为2023b及其以上【如果没有可私信我,我】 2、评价指标包括:R2、MAE、MSE、RPD、RMSE等,图很多,符合您的需要 3、代码中文注释清晰,质量极高 4、测试数据集,可以直接运行源程序。 替你的数据即可用 适合新手小白 ,关键词:
基于高频方波电压注入的PMSM无感起动与运行技术及其仿真研究,基于高频方波电压注入的永磁同步电机无感起动运行 1.采用方波电压注入,带转子初始位置检测,可实现任意初始位置下无位置传感器起动运行; 2.支持带载起动和突加负载运行; 提供算法对应的参考文献和仿真模型,支持技术解答。 PMSM控制相关电子资料。 ,核心关键词:高频方波电压注入; 永磁同步电机; 无感起动运行; 初始位置检测; 算法; 参考文献; 仿真模型; PMSM控制相关电子资料。,高频方波电压注入的PMSM无感起动与运行技术及其应用
OpenCVSharp实战教程:基于C#与Winform的五十余个图像处理Demo解析与实现,OpencvSharp资料,采用C#加Winform编写,包含接近50个Demo,直接运行即可。 例程包含:模板匹配、边缘识别、人脸识别,灰度变化、标定等。 ,核心关键词:OpencvSharp资料;C#;Winform编写;Demo;模板匹配;边缘识别;人脸识别;灰度变化;标定。,"OpenCVSharp实践指南:C#与Winform下的50个图像处理Demo"
基于T型三电平逆变器的下垂控制技术及其仿真研究:中点电位平衡控制与电压电流双闭环控制详解,(仿真原件+报告)下垂控制-基于T型三电平逆变器的下垂控制,电压电流双闭环,采用LCL滤波,SPWM调制方式 1.提供simulink仿真源文件 2.提供下垂控制原理与下垂系数计算方法 3.中点平衡控制,电压电流双闭环控制 4.提供参考文献 提供下垂控制原理解析,基于零序电压注入法的中点电位平衡控制详解,电压电流双闭环控制方法详解,三电平调制方式 支持simulink2022以下版本,联系跟我说什么版本,我给转成你需要的版本(默认发2016b)。 ,T型三电平逆变器;下垂控制;LCL滤波;SPWM调制;simulink仿真源文件;下垂系数计算;中点平衡控制;电压电流双闭环控制;零序电压注入法中点电位平衡控制详解;三电平调制方式。,基于T型三电平逆变器的下垂控制仿真研究:电压电流双闭环与LCL滤波技术应用
Unity Shader Graph 2D 实例 - UV滚动背景动画
基于Comsol谷霍尔光子晶体VPC的太赫兹拓扑光子学模型:复现文章Terahertz Topological Photonics的能带与拓扑相位计算研究,Comsol谷霍尔光子晶体(VPC)-片上通信的太赫兹拓扑光子学 本模型复现文章:Terahertz topological photonics for on-chip communication DOI: 10.1038 s41566-020-0618-9 本模型主要是计算谷霍尔光子晶体能带和拓扑相位(磁场分布及坡印廷矢量) 同时附上美化能带的matlab程序 本模型基于二维三角晶格模型,拉伸工作平面构建三维模型展开计算 ,关键词:Comsol;谷霍尔光子晶体(VPC);太赫兹拓扑光子学;片上通信;复现文章;计算能带;拓扑相位;磁场分布;坡印廷矢量;matlab程序;二维三角晶格模型;三维模型。,基于太赫兹拓扑光子学的谷霍尔光子晶体模型研究
"Qt5.15升级版:灵活多能的工业自动化3D视觉测量与检测软件系统",qt5.15以上,工业自动化3d视觉测量与检测软件系统。 适配3d线激光轮廓仪(基恩士,smartray,海康等),可改造适配其他种类3d相机。 功能: 1、成像接口、渲染、可视化; 2、流程; 3、滤波; 4、测高、平面度等测量工具; 5、逻辑工具; 6、通信工具; 7、2d算法接口(注意无2d算子); 8、代码生成的ui界面。 特点: 1、纯底层代码,自主研发,资深博士级水平; 2、软件有架构,工具以算子形式封装,可灵活调用,奔标准软件写的; 3、功能不丰富(视频里没演示到的工具不一定有内容),但是基础功能均有,可应对基础3d检测项目,如测高、断差、平面度、共面度、轮廓等功能,若有其他测量与检测需求,自行增加算法即可; 4、软件工程,实话说有bug,但是经过工业检测项目打磨,在不同客户现场稳定运行多年。 工业3d项目落地降本与学习的不二之选。 C++源码,需要有一定基础的开发人员方能上手。 可改造成自己品牌的标准 专用软件 ,关键信息: 1. QT5.15以上 2. 工业自动化3D视觉测量与检测软件系统 3.
这是一款`在线工具箱`程序,您可以通过安装扩展增强她的功能 通过插件模板的功能,您也可以把她当做网页导航来使用~ 觉得该项目不错的可以给个`Star`~ 环境要求 `PHP` >= 7.3 `MySQL` >= 5.6 `fileinfo`扩展 使用`Redis`缓存需安装`Redis`扩展 部署 *下载源代码 *设置运行目录为`public` *设置伪静态 *安装依赖 + 配置阿里镜像源 ``` composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ ``` + 升级compose ``` composer self-update ``` + 安装依赖 composer install --no-dev ``` * 设置目录权限 + 一般是默认允许的(如有无法上传、无法打开页面或其他未知问题可以设置一下目录权限) + `Apache`的所属组为`www-dat
CaF2掺杂对热压SmCo5CaF2复合磁体磁性能和电阻率的影响.pdf
关于Comsol模型下多场耦合现象研究:水力压裂与岩石的热水力损伤机制的瞬态求解相场法及陶瓷、涂层热震损伤研究,comsol 水力压裂,热损伤,岩石水-力-热-损|||伤(|||THMD) 三场耦合,陶瓷热震损伤,涂层热震损伤相场法,瞬态求解. ,关键词:comsol水力压裂;热损伤;岩石水-力-热-损伤(THMD);三场耦合;陶瓷热震损伤;涂层热震损伤;相场法;瞬态求解。,"水力压裂与热损伤:岩石三场耦合相场法瞬态求解研究"
基于Music算法的Matlab时序信号频率估计方法及其在电力系统中谐波与突变检测的应用与对比研究,Matlab 基于Music算法的时序信号频率估计 可用于其他频率估计方法对比 可用于电力系统中谐波,突变检测 ,基于Matlab的Music算法时序信号频率估计; 多种频率估计方法对比; 电力系统谐波分析; 突变检测; 频率跟踪分析。,"Matlab中的Music算法:时序信号频率估计与多种频率分析方法对比"
"基于MATLAB的永磁同步电机匝间短路故障仿真设计:文档与Simulink源文件详解",永磁同步电机匝间短路故障MATLAB仿真设计 说明文档和simulink仿真源文件 ,核心关键词:永磁同步电机; 匝间短路故障; MATLAB仿真设计; 说明文档; Simulink仿真源文件;,《MATLAB仿真研究:永磁同步电机匝间短路故障分析》
高速PXIe PXI背板技术:全混合架构、14GB/s系统带宽与多槽位支持,兼容主流PXIe控制器,设计与应用详解(含设计文件与FPGA源码)基于PXIe架构的新特性和技术应用问题及解决方案探讨。,PXIe PXI背板 全混合8槽 4 Link架构 系统带宽14GB s 兼容主流PXIe厂商PXIe控制器 PXIe PXI背板 全混合8槽 4 Link架构 系统带宽14GB s 单槽4GB s 兼容主流PXIe厂商PXIe控制器 远程开关控制接口 设计文件 原理图&PCB FPGA源码 可直接制板 问 1.FPGA加载哪一份mcs?最新20220314么?功能是否已测试完善? 2.机箱的结构设计是否有注意事项要求文档? 3. PXIe 中断能不能正常使用? 4.背板能否在线复位(包括PC端和板卡端) ? 5.BOM中的元器件是否有停产的或者很难买到的? 6.该背板有无集成到机箱中的使用经历? 答 1、对的,加载20220314.mcs,功能都OK了。 2、没有结构要求文档,注意连接器位置就可以。 3、中断可以正常使用,项目中用过。 4、目前没办法在线复位,PXI标准没有这项功能,如果