写点什么

微软发布 Azure SignalR Service 的预览版本

2018 年 5 月 27 日

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

最近,微软在西雅图举办的年度 Build 开发者会议上发布了Azure SignalR Service 的公开预览版本。SignalR 之前就可以作为单独的ASP.NET 库来下载,但现在它是第一次作为一个完整的托管服务来提供。

SignalR 作为一个库已经开发了五年的时间了,它能够为 Web 应用提供实时体验,比如用于实时仪表盘。为了实现该特性,它能够从服务器端实时推送内容给连接的客户端。这个功能是通过 WebSockets 来提供的,但是在不支持 WebSockets 的场景下,它有备选方案,包括服务端事件(server-side events)、Forever Frame 以及长轮询(long polling)。

如果直接部署 SignalR 组件的话,用户需要负责安全、加密、容量以及扩展性。对服务进行跨节点扩展是通过一个静态的backplane 来实现的,这个backplane 管理每个服务节点之间的连接。自行托管的SignalR 需要创建和管理backplane,以便于提供系统扩展的基础设施,还需要包括提供支撑的库,如Azure Service Bus、Redis Cache 或SQL Server。

Azure SignalR Service 移除了自行托管实例的一些复杂性,直接提供了扩展和伸缩功能,不再需要提供自己的 backplane 了。另外,安全也是通过该服务的共享访问 key 来进行管理的。

与大多数 Azure 服务类似,该服务的实例可以通过 Azure Portal 进行创建。实例名需要保证全局唯一,你还需要选择 Azure Subscription 和 Resource Group 来存储服务,并且要指定价格等级(tier)和 region 位置。

Azure SignalR Service 目前在 East US、Southeast Asia、West Europe、West US 和 West US 2 这些 region 上提供了公开预览功能,支持两种定价等级。

在选择Basic 等级时,最多可以选择10 个扩展单元,它们决定了消息的数量以及一个实例可以支持的连接数。在公开预览中,不支持自动扩展。

SignalR 只是支持实时 Web 应用开发的众多组件之一,其他组件还包括 firehose.io socket.io 。在其他流行的 JavaScript 框架中直接支持了 Firehose,比如 Backbone.js 和 Ember.js,它还使用了 RESTful 设计原则,任意能够调用 HTTP 端点的客户端都能与之交互。Socket.IO 用到了很多需要实时交互的应用程序之中,比如 Trello、Zendesk 和 Microsoft Office。

Azure SignalR Service 目前支持 ASP.NET Core,提供了对 JavaScript 和.NET 的客户端支持。该服务暴露了一个 HTTP 端点,允许其他的客户端调用该端点,实现与服务的直接交互。

David Fowler 是 Azure 的首席软件架构师,也是 SignalR 库最初的架构师之一,在版本发布声明中描述了如何将当前的 SignalR 项目转换为使用新的服务:

如果你已经有基于 SignalR 的 Web 应用,那么你可以添加一个对 Azure SignalR Service SDK 的引用,配置连接字符串,然后使用 services.AddSignalR().AddAzureSignalR() 和 app.UseAzureSignalR 来连接服务。这样的话,你的应用就能开始使用该服务了。

声明继续说到,随着服务向正式版本演进,将会提供其他语言的 SDK。

服务的 Basic 等级目前是每单元每小时 0.0335 美元,现在的定价页面为每个价格等级使用了不同的叫法,在门户中,Free 被称为Dev/Test,而Basic 被称为Standard。

查看英文原文 Microsoft Announces Preview of Azure SignalR Service

2018 年 5 月 27 日 14:13676

评论

发布
暂无评论
发现更多内容

架構師訓練營 大作業一

ilake

架構師訓練營 大作業二

ilake

探讨典型互联网系统使用的技术方案

andy

架构师训练营- 食堂就餐卡系统设计

Geek_d7f0e4

上地七街

潇潇雨歇

分析了2020年3万多条的微博热搜,我看到了什么

CoderW

Python 程序人生 爬虫 后端 微博热搜

区块链游戏开发注意事项

CECBC区块链专委会

区块链 区块链游戏

时间戳——区块链不可篡改特性的重中之重

CECBC区块链专委会

区块链

架构师训练营第十一周作业

李日盛

系统安全高可用总结

Mars

看完这篇还不懂线程与线程池你来打我

码农的荒岛求生

一次线上cpu过高问题

kcnf

在 Emit 代码中如何await一个异步方法

八苦-瞿昙

架构师大作业

_

大作业 架构师训练营第 1 期

意想不到,这个神奇的bug让我加班到深夜

码农的荒岛求生

bug修复

数据爬虫

RainGod

爬虫

第九周 作业1

Mr_No爱学习

第九周-学习总结

Mr_No爱学习

想法

BerryMew

从考研失败到最具成长力员工,这个2020就像过山车一样

Java鱼仔

程序员 面试 程序人生 考研

数字版权资源价值日益凸显

CECBC区块链专委会

版权保护

LeetCode题解:264. 丑数 II,暴力法,JavaScript,详细注释

Lee Chen

算法 LeetCode 前端进阶训练营

架构师训练营第十一周作业

丁乐洪

RocketMQ避坑指南:你部署的RocketMQ集群真的是高可用?

公众号『中间件兴趣圈』

架构 RocketMQ 故障分析 消息队列

第一周架构方法-练习-食堂就餐卡系统设计

潘涛

架构师训练营 4 期

读取文件时,程序经历了什么

码农的荒岛求生

后端 文件 操作系统 进程 线程’

架构师训练营第十一周笔记

李日盛

笔记

交报告 | 2020年读完的50本书

浪亦有道

2021你好 | 一名五道口程序员的年终总结

herongwei

程序员 职场 自媒体 年终总结 新年

Spring 源码学习 12:registerBeanPostProcessors

程序员小航

Java spring 源码

系统高可用原因分析&方案

Mars

InfoQ 极客传媒开发者生态共创计划线上发布会

InfoQ 极客传媒开发者生态共创计划线上发布会

微软发布Azure SignalR Service的预览版本-InfoQ