網路通訊控制器分組,提高互動的Server Load Balancer能力執行個體教程

來源:互聯網
上載者:User

20.1 概述

ServerSuperIO原來在網路通訊模式下,只有一個網路控制卡,在自控模式、併發模式和單例模式下時都是非同步處理返回的資料,並不會出現效能問題。但是在輪詢模式下,一個網路控制卡要按順序逐一操作裝置驅動的發送和接收,這樣就會出現輪詢周期過長,達不到讀取資料頻率的情況。

為瞭解決上述問題,現在對裝置驅動的參數增加了網路控制卡分組功能,網路控制卡會根據裝置參數設定的分組名稱控制裝置驅動。例如輪詢模式下,有1000個裝置驅動,可以每10個裝置驅動設定相同的分組名稱,這10個裝置驅動受控於同一個網路控制卡,如果每間隔1s讀取一次資料,那麼每個裝置驅動的輪詢周期是10s鐘,其他網路控制卡類似。

20.2 網路控制卡

根據設定裝置驅動網路參數的ControllerGroup,可以把裝置驅動分配到不同的網路控制中運行,並且適用於輪詢、自控、並發和單例控制模式。

20.3 串口控制器

順便提一下串口控制器,通過設定裝置驅動的串口號決定被分配到不同的串口控制器,該控制器只能適用於輪詢控制模式。

20.4 裝置驅動網路控制卡分組範例程式碼

        static void Main(string[] args)        {            string deviceID = "2";            DeviceDriver dev3 = new DeviceDriver();            dev3.DeviceParameter.DeviceName = "裝置2";            dev3.DeviceParameter.DeviceAddr = 0;            dev3.DeviceParameter.DeviceID = deviceID;            dev3.DeviceParameter.DeviceCode = deviceID;            dev3.DeviceDynamic.DeviceID = deviceID;            dev3.DeviceParameter.NET.RemoteIP = "127.0.0.1";            dev3.DeviceParameter.NET.RemotePort = 9600;            dev3.DeviceParameter.NET.ControllerGroup = "G2";            dev3.CommunicateType = CommunicateType.NET;            dev3.DeviceParameter.NET.WorkMode = WorkMode.TcpServer;            dev3.Initialize(deviceID);             deviceID = "3";            DeviceDriver dev4 = new DeviceDriver();            dev4.DeviceParameter.DeviceName = "裝置3";            dev4.DeviceParameter.DeviceAddr = 0;            dev4.DeviceParameter.DeviceID = deviceID;            dev4.DeviceParameter.DeviceCode = deviceID;            dev4.DeviceDynamic.DeviceID = deviceID;            dev4.DeviceParameter.NET.RemoteIP = "127.0.0.1";            dev4.DeviceParameter.NET.RemotePort = 9600;            dev4.DeviceParameter.NET.ControllerGroup = "G3";            dev4.CommunicateType = CommunicateType.NET;            dev4.Initialize(deviceID);            IServer server = new ServerManager().CreateServer(new ServerConfig()            {                ServerName = "服務1",                ComReadTimeout = 1000,                ComWriteTimeout = 1000,                NetReceiveTimeout = 1000,                NetSendTimeout = 1000,                ControlMode = ControlMode.Loop,                SocketMode = SocketMode.Tcp,                StartReceiveDataFliter = false,                ClearSocketSession = true,                StartCheckPackageLength = false,                CheckSameSocketSession = false,            });            server.AddDeviceCompleted += server_AddDeviceCompleted;            server.DeleteDeviceCompleted += server_DeleteDeviceCompleted;            server.SocketConnected+=server_SocketConnected;            server.SocketClosed+=server_SocketClosed;            server.Start();             server.AddDevice(dev3);            server.AddDevice(dev4);             while ("exit"==Console.ReadLine())            {                 server.Stop();            }        }
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.