高性能分布式Asp.net通信框架Harries

高性能分布式Asp.net通信框架Harries

  • 收录时间:2015-12-16
  • 阅读:1314次
  • 分享:
编辑评级
5

详细介绍

一、Harries简介:

Harries Communication Framework 是一款基于CSharp语言开发,支持跨平台具有高并发、高性能、高可靠性、异步Socket通信,运 行于Windows/SentOS/Ubuntu操作系统之上,以支持ASP.NET为核心功能的中间层服务框架。

Harries V1.0有如下功能特点:

01、异步Socket通信,无论是稳定性、易用性还是并发承载能力、并行处理速度,Harries框架的测试数据都是非常优秀的;
02、自主开发序列化模块,在性能、数据包长度是.NET自带序列化的2倍还多;
03、Harries 可以用于任何需要分布式通信的软件系统中;
04、跨语言是Harries的重要目标之一,Harries通过提供多语言的客户端引擎来实现这一点,目前支持Java与.NET,其它语言正在开发中;
05、具有基础而实用的入侵检测功能,能自动终止已被识别的非法请求;
06、Harries 虽然功能强大丰富,但是使用非常简单,因为其采用了优秀的架构设计和实现,将复杂性都屏蔽在了框架的内部,暴露给使用者的都是简单易用、清晰明确的API;
07、支持telnet查看服务器状态;


二、使用前的准备工作:

1、Windows系统需要安装microsoft framework 4.0框架。
2、Linux系统中需要安装Mono,Web网站还需要安装Jexus,查看如何使用!


三、下载并解压Harries动态库包:
1、下载地址:http://www.harries.cn

2、解压文件:
文件介绍
Harry.Server.exe:服务器端控制台程序,如需要改为其他宿主可以丢弃它;
Harry.Frame.dll:是框架Socket通信模块;
Harry.Sereial.dll:是序列化模块;
Harry.config:配置文件;
Harry.InterfaceTest.dll 为测试工程文件,可以按照这个逻辑写业务层;

四、调用方法

服务器端
1、文件组成:
 1) Harry.Server.exe 控制台启动程序,可改为windows服务或win窗口;
 2) Harry.Frame.dll 类库;
 3) Harry.Serials.dll 序列化类库;
2、启动
 Harry.Server.exe [port] port参数为端口号,不添写默认为8888
 服务器显示:
 server 0.0.0:8888 startting!
 代表启动成功!
3、添加业务功能
  只需要将自己写好的接口、类、实现放在服务器的根目录,重新启动就OK了,无需要重新编译服务器端!
4、代码实现
    新建控制台程序,在Main函数中添加以下代码:
       static void Main(string[] args)
        {           
           string token = "userkey";
            string ip = "0.0.0.0";
            int port=args.Length==1?Convert.ToInt32(args[0]):8888;
            Harry.Frame.Server.HarrySocket server = new Harry.Frame.Server.HarrySocket();
            server.Start(ip, port, token);
           while (true) { System.Threading.Thread.Sleep(1000 * 60); };      
        }
可支持多种模式宿主,例如:win窗口、windows服务、控制台程序,本demo用的是控制台,方法在linux上调用。windows推荐使用服务模式。
客户端调用
 1、 引用Harry.Frame.dll、Harry.Serials.dll二个文件到项目中;
 2、 将harry.config放在项目根目录;
 3、代码Demo
            Harry.TestInterface.ITest test = Harry.Frame.Client.ProxyrFactory.Create<Harry.TestInterface.ITest>();
            object obj = test.Insert(new Harry.TestInterface.MHarry());
            List<Harry.TestInterface.MHarry> list = test.Getlist("");
            Console.WriteLine(list.Count.ToString());
            obj = test.SelectIDS("");
            Console.WriteLine(obj.ToString());

客户端配置文件-Harry.config配置文件详解

<?xml version="1.0" encoding="utf-8" ?>
<root>
  <server  clientkey="clientkey">
    <group name="default" connections="2" timeout="3">
      <key ip="127.0.0.1" port="5555" effect="false" />
      <key ip="127.0.0.1" port="6666" effect="false" />
      <key ip="127.0.0.1" port="8888" effect="true" />     
    </group>
    <group name="umc" connections="2" timeout="3">
      <key ip="127.0.0.1" port="8888"  effect="true" />
    </group>
  </server>
</root>
root:跟结点;
server:服务器的IP列表;
group:将服务器分多组调用,可用于业务重直划分的分布式结构,name为组名,在客户端调用时会用到;
timeout:超时时间秒数;
connections:初始化连接数,建议2-5之间;
effect:是否启用服务器地址;
key:服务器IP,端口;
注意:每次改变参数时需要重新启动客户端系统。

查看业务逻辑代码Demo,这才是实际的功能实现。

六、Telnet查看服务器状态

stats | ll [1-9] 查看当前链接数,并发数等信息,1-9为几秒循环一次,可选项
monitor||cat:[1-9]监控超时信息调用命令;
method|mm:[1-9]监控方法调用次数
client:[1-9]监控客户端调用次数
clear:初始化统计数据;
exit:退出telnet;

七、技术支持
网址:http://www.harries.cn QQ群:384207605 、53870461  


最新收录

热门工具排行榜