当前位置:首页 > CN2资讯 > 正文内容

多服务器架构图 多个服务器

2天前CN2资讯

SuperSocket

 

多服务器实例

中文(中国)Toggle Dropdown

 

v1.6Toggle Dropdown

关键字: 多服务器实例, 多实例, 隔离, 多实例交互

SuperSocket 支持在同一进程中运行多个服务器实例

多个服务器实例可以是同一个服务器类型:

<superSocket> <servers> <server name="EchoServerA" serverTypeName="EchoService"> <listeners> <add ip="Any" port="80" /> </listeners> </server> <server name="EchoServerB" serverTypeName="EchoService" security="tls"> <certificate filePath="localhost.pfx" password="supersocket"></certificate> <listeners> <add ip="Any" port="443" /> </listeners> </server> </servers> <serverTypes> <add name="EchoService" type="SuperSocket.QuickStart.EchoService.EchoServer, SuperSocket.QuickStart.EchoService" /> </serverTypes> </superSocket>

也可以是不同的服务器类型:

<superSocket> <servers> <server name="ServerA" serverTypeName="MyAppServerA" ip="Any" port="2012"> </server> <server name="ServerB" serverTypeName="MyAppServerB" ip="Any" port="2013"> </server> </servers> <serverTypes> <add name="MyAppServerA" type="SuperSocket.QuickStart.MultipleAppServer.MyAppServerA, SuperSocket.QuickStart.MultipleAppServer" /> <add name="MyAppServerB" type="SuperSocket.QuickStart.MultipleAppServer.MyAppServerB, SuperSocket.QuickStart.MultipleAppServer" /> </serverTypes> </superSocket>

服务器实例的隔离级别

前面提到过, 在 SuperSocket 配置的根节点有这样一个属性:

<superSocket isolation="AppDomain">//None, AppDomain, Process .... </superSocket>

如果这个isolation属性的值是 'None' (默认值), 这些服务器实例将会在同一进程的同一 AppDomain 中运行. 因策他们能够直接互相访问. (我们将会在后面讨论这一点)

但是如果isolation属性的值是 'AppDomain', SuperSocket将为每个实例创建独立的AppDomai, 所有的服务器实例都会运行在各自独立的AppDomain之中。

但是如果isolation属性的值是 'Process', SuperSocket将为每个实例创建独立的进程, 所有的服务器实例都会运行在各自独立的进程之中。

下面这张图展示了隔离模型如何工作:

进程级别隔离

如果你想启用进程级别隔离,除了上面的配置, 你还需要包含可执行文件 "SuperSocket.Agent.exe" 到你的项目输出里面去, 这个可执行文件是由SuperSocket提供的。

当你启动你的 SuperSocket 之后, 你将会发现 SuperSocket 启动了多个进程:

SuperSocket.SocketService.exe SuperSocket.Agent.exe SuperSocket.Agent.exe

多服务器实例之间的交互

前面一部分提到了, 如果 isolation 设成 'None', 多服务器实例之间的交互是非常简单的事情.

举个例子, 他们能通过 SuperSocket 提供的 Bootstap 来彼此访问:

interface IDespatchServer { void DispatchMessage(string sessionKey, string message); } public class MyAppServerB : AppServer, IDespatchServer { public void DispatchMessage(string sessionKey, string message) { var session = GetAppSessionByID(sessionKey); if (session == null) return; session.Send(message); } } public class MyAppServerA : AppServer { private IDespatchServer m_DespatchServer; protected override void OnStartup() { m_DespatchServer = this.Bootstrap.GetServerByName("ServerB") as IDespatchServer; base.OnStartup(); } internal void DespatchMessage(string targetSessionKey, string message) { m_DespatchServer.DispatchMessage(targetSessionKey, message); } }

上面的示例代码演示了如何从一个服务器实例转发一条消息到另一个服务器实例一个 Session。

独立控制服务器实例

默认情况下, 所有的服务器实例会和SuperSocket程序一起启动和停止。是否有办法启动或停止一个实例而不影响其他它实例呢? 当然,答案是有,而且SuperSocket提供了多种方案:

  • SuperSocket 控制脚本
    SuperSocket 在 SuperSocket.SocketService 项目中提供了两个控制脚本:
    • supersocket.cmd - for Windows
    supersocket list supersocket start FTPServer supersocket stop FTPServer
    • supersocket.sh - for Linux/Unix
    ./supersocket list ./supersocket start FTPServer ./supersocket stop FTPServer
  • SuperSocket ServerManager
    你可以使用SuperSocket ServerManager 客户端程序以图形界面的形式来控制服务器实例。请阅读下面文档来学习如何使用SuperSocket ServerManager. SuperSocket ServerManager文档
    • Prev: 多个 Listener
    • Next: 用动态语言实现你的命令

     


    © 2018 - GetDocs.Net - Hosted by BuyVM

      你可能想看:

      扫描二维码推送至手机访问。

      版权声明:本文由皇冠云发布,如需转载请注明出处。

      本文链接:https://www.idchg.com/info/32024.html

      分享给朋友:

      “多服务器架构图 多个服务器” 的相关文章

      为小学生选择合适的VPS:安全、易用和高性价比的评测指南

      在这个数字化时代,网络安全受到越来越多人的重视。小朋友们在网络上探索新知识、与朋友沟通时,面对的不仅是丰富的学习资源,还有潜在的网络风险。此时,VPS(虚拟个人服务器)作为一个安全、稳定的网络环境,开始逐渐进入小学生的视野。家长和学校意识到,提供一个良好的网络环境,不仅能保护孩子免受不良信息的侵害,...

      狗云实名认证的重要性与服务体验

      狗云简介 提起狗云(Dogyun),首先让我想起的是它在国内主机服务商中崭露头角的那段经历。成立于2019年,这家由国人创办的云服务平台,积极响应了市场对高质量、低价格VPS服务的需求。服务范围覆盖美国、日本和中国香港等地,让不少技术爱好者和企业客户看到了更多选择的可能。由于其价格相对亲民,狗云逐渐...

      CloudCone 优惠活动详解:2023年最具性价比的云服务选择

      CloudCone 优惠概述 对于许多寻求高性价比云服务的用户来说,CloudCone 是一个值得关注的选项。公司成立于2017年,总部位于美国洛杉矶的MultaCom机房,专注于提供 VPS 主机、云服务器和独立服务器等服务。其主打产品是基于 KVM 架构的 VPS 主机,配备自研的管理面板,能为...

      HostYun:高性价比VPS服务的理想选择

      HostYun,最早被称作主机分享,成立于2008年,专注于提供性价比极高的VPS服务。在众多IDC品牌中,HostYun凭借其低价策略迅速占领了一席之地。作为一个以KVM和XEN虚拟化技术为基础的平台,HostYun不仅满足了用户对低成本服务的需求,也为学习、测试和小型项目的部署提供了理想的选择。...

      Vultr充值优惠活动:享受高性价比云服务的最佳选择

      Vultr概述 当提到云服务,Vultr总是一个热点话题。它从2014年开始运营,迅速在行业内崭露头角。Vultr的目标是为用户提供迅速而灵活的云计算解决方案。在短短几年内,它已经覆盖了全球的多个数据中心,为用户的业务发展提供了强有力的支持。 Vultr注重用户体验,致力于让每一位客户感受到便捷与可...

      Hosteons:现代用户的高效在线服务管理平台

      什么是 Hosteons Hosteons 是一个令人瞩目的平台,专为满足现代用户的需求而设计。它结合了灵活性和高效性,无论是个人用户还是企业用户,都能从中获得巨大的便利。Hosteons 提供了一种集中化的方式来管理和优化各种在线服务,真正做到了让人们的生活和工作更加高效和便捷。 在使用 Host...