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

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

  • 收錄時間:2015-12-16
  • 閱讀:1382次
  • 分享:
編輯評級
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  


最新收錄

湖北体彩十一选五玩法 安徽11选五历史开奖查询 广东快乐十分中奖规则图 a股股票指数基金 香港精准头数一头中特 加拿大西部快乐8开奖 香港恒生指数股票行 福彩3d试机号 安徽11选五遗漏查询 大乐透手机买彩票 股票分析软件app