.net服务作为Azure程序?

时间:2014-12-26 17:52:43

标签: c# .net azure

我有一个Windows服务,可以有效地允许客户端通过TCP套接字连接到它,并向其发送/接收数据。它必须能够相当快地完成这项工作。

它自己在当前的Windows服务器上运行的服务,并为每个"房间产生一个线程。它知道。通过TCP套接字进入的每个请求都会针对它所在的房间进行解析,并且所有请求都会转发到运行该房间的线程。

服务器端部件处理请求,然后通过相同的TCP套接字发回响应。

我很好奇为了简化可扩展性和可管理性而将其迁移到Azure。但我不太清楚我应该考虑做什么服务。有人有什么建议吗?

这当前在Amazon EC2实例中运行,具有RDS数据库后端和利用S3的一些位。

由于与一些几乎无限制地获得天蓝色的人的新合作,寻求转向天蓝色,几乎没有任何成本。

1 个答案:

答案 0 :(得分:1)

通常,您可以在Azure上选择两种服务(如果您将虚拟机计算在内,则有三种服务,但与其他两种服务相比,它们更难扩展)。第一个是Azure Worker Roles,它们是云服务的一部分。它们从Azure的早期开始就存在,并且构建类似于Windows服务。更新一点Azure WebJobs,它允许您在网站服务中运行多种类型的脚本,如PowerShell或Windows CMD。此服务允许您按需,连续运行程序(这应该是您的方案中的首选)或按计划运行。

对于您的场景,我会选择辅助角色。它非常类似于Windows服务(意味着您理想情况下不需要对代码库进行大量重写)并且可以轻松扩展到许多实例。不过,您应该记住一些好的云模式,特别是在扩展服务时。云服务和工作者角色的行为方式存在一些障碍,与您的想法不同。