翻译|李锐审稿人|梁策孙淑娟什么是观众参与?一个简单的观众在线参与的例子是:一个带主持人的直播和一个观众实时互动的聊天系统。其他观众参与解决方案包括电影派对、投票、测验和排行榜等活动,具有实时聊天或问答等功能,供参与者在分享经验的同时进行交流。1.设备和用户在场了解观众参与度的一个方面是了解谁在参与虚拟活动或用户“在场”的能力。与存在密切相关的是用户的存在,它与启用基本功能有关,例如有人在聊天窗口中键入消息时的指示,或设备的实时位置。2.聊天发送聊天消息是观众与在线活动(例如直播)的主持人进行互动并向主持人发送即时反馈的常用方式。一个早期的例子是Twitch,它很受游戏玩家欢迎,允许游戏玩家通过网络摄像头直播游戏或观看和评论游戏。3.调查投票和问答投票和问答是观众参与的其他方面。例如,主持人可能会问现场观众,“你最喜欢什么口味的冰淇淋?”并为参与者提供一个网页,他们可以在该网页上对各种口味选项进行在线投票,而观众的答案可以实时可视化以供思考。条形图、饼图甚至词云都可以在直播中显示,以保持观众的参与度。当参与者提交投票时,这些类型的调查可能会导致响应激增。问答方式恰恰相反。在线活动的主持人将分享一个链接,参与者可以关注该链接并输入问题和评论以了解更多信息或实时提供反馈。4.测验功能和游戏化另一种吸引观众的方式是多人测验,参与者参与现场测验、回答问题并在排行榜上查看他们的分数。比赛可以在独立平台上进行,也可以集成到直播中,这在教育领域尤其受欢迎。Mentimeter、Wooclap、Kahoot、Slido和HQTrivia都是受欢迎的产品。参赛者使用邀请链接登录特定比赛,在他们的设备上实时回答问题,然后他们的分数显示在排行榜上以增加游戏化元素。公平地说,参与者的回答有时间限制。需要同时向所有玩家发送问题(扇出),并在倒计时前完成挑战时相应激增响应(扇入)。实时更新巩固了观众的参与度。为使上面列出的特征具有吸引力,它们需要以“实时”或接近实时的方式呈现,即低于人类感知的100毫秒阈值。建立在实时系统上的技术使用事件序列(例如异步对话)而不是典型同步通信的请求和响应范例。事件驱动架构服务的用例需要立即处理数据以提供令人满意的用户体验。它消除了阻塞或连续轮询的需要,并在感兴趣的事件发生时通知应用程序代码。发布和订阅(pub/sub)模式在事件驱动系统中很典型。事件生产者(发布者)在状态改变时发送事件消息,事件订阅者消费它们。通常,发布者和订阅者之间会有一个专门的代理,使事件生产者能够将责任卸载给代理,代理可以跨设备和平台向消费者发送批量通知。代理还将从生产者接收到的事件记录为消息。事件历史记录会保留一段时间,以便订阅者可以从任何特定时间点读取事件历史记录。构建实时架构的技术挑战实时、事件驱动的架构是一个分布式系统,具有相关的可靠性、延迟和带宽问题,网络的不可预测性是一个重大挑战。1.消息完整性在事件驱动系统中,丢失、重复或无序的消息会产生重大后果。例如,聊天消息依赖于定义明确的消息序列。如果它们以乱序到达或丢失,可能会给用户体验带来缺陷。丢失消息用户的连接可以断开并重新连接:例如,他们遇到电源故障或网络系统问题,他们正在移动,或者他们关闭聊天应用程序并稍后重新启动它。从用户的角度来看,由于连接不稳定而丢失消息是不可接受的。因此,当用户重新连接时,应用程序需要从用户断开连接之前的点重新启动,以尽量减少损坏。任何错过的消息都需要在不复制已处理消息的情况下传递,并且整个体验需要完全无缝。大多数事件驱动系统使用至少一次交付。当代理向事件消费者发送消息时,它需要确认收到消息。如果代理没有收到确认,它会再次发送消息以确保它在第一次发送时没有丢失(并将继续发送消息直到收到确认)。但是,如果收到一条消息并确认丢失了怎么办?任何最近的消息现在都是原始消息的副本。消息重复和排序如果事件驱动系统使用幂等消息,消息重复是可以接受的,第一次后可以处理多次而无需更改系统。例如,对供暖恒温器进行编程。如果您在回家前输入了房间需要的确切温度,那么多次发送该命令都没有关系。恒温器将设置为所需温度,可以重复设置,但仍为所需温度。但是,如果多次发送调高空调温度的请求,热得让人受不了。聊天应用程序中的重复消息与丢失或乱序的消息一样让用户烦恼。如果无法按任何顺序成功处理消息,一种常见的方法是使用唯一ID对消息进行排序。除了幂等消息类型之外,许多事件驱动系统还使用一次处理保证来协调与重复消息相关的问题。应用重复数据删除过程,以便检测并丢弃以前处理过的消息。2.性能网络延迟是数据到达目的地所需的时间,是成功到达受众的关键因素。在大规模分布式系统中,延迟在节点之间传播的越远,其性能就越差。高延迟会完全破坏实时音频通信和视频质量,考虑到全球观众或互联网基础设施较差地区的主机用户,性能变得越来越重要。低网络延迟是由于地理位置接近。应通过托管数据中心和边缘加速点将数据移动到尽可能靠近用户的位置。然而,最小化延迟是不够的。用户体验需要最小化延迟差异以确保可预测性。服务器性能(处理速度、使用的硬件、可用内存)和延迟之间也有很强的相关性。为防止网络拥塞和服务器过载,必须能够动态增加服务器层的容量并重新分配负载。3.可用性观众参与的一个特殊方面是无法预测会有多少参与者。对于许多活动,观众人数要到活动开始前几小时或几分钟才能知道。这样做的技术挑战是,很难在支持此事件的任何系统中规划和提供足够的容量。在处理大量负载时实现可用性和弹性以满足严格的正常运行时间要求不仅仅与故障转移等传统机制有关,还与管理容量有关。面临的挑战是在没有预配置的情况下横向扩展并快速接收数百万个连接。为了确保网络能够适应这种情况,需要监控以下指标:工作负载的百分比负载的弹性和分布最大连接数和吞吐量一些在超过特定阈值时自动和动态配置额外容量的方法,这很有用确保超长的正常运行时间至关重要。优化应包括最小化传输的数据量,例如,减小消息大小、仅发送对数据的更改(增量)而不是整个有效负载。4.可靠性可靠性至关重要,因为如果活动无法运行或因故障而中断,主办方可能会感到尴尬。观众参与的实时平台需要具有容错能力,这样即使组件出现故障,它们也能继续运行。为了实现容错,需要有多个组件能够在某些组件丢失时维护系统。即使在多个基础设施出现故障的情况下,区域和全球级别的冗余也能确保服务的连续性。应该没有单点拥塞,没有单点故障。当一个或多个组件发生故障时,其余组件需要自行支持服务。了解您可以容忍多少区域故障(例如,每秒实例故障数)至关重要。如果一个区域由于故障转移到另一个区域而离线,则需要有足够的容量来吸收额外的流量,即使在峰值负载下也是如此。可靠性的四大支柱构建一个为实时观众参与奠定基础的系统需要一个低延迟、可扩展和有弹性的容错基础设施,以及一个确保消息传递完整性的架构。为满足特定业务需求而构建自定义解决方案的组织最终可能会面临高昂的基础设施所有权成本、技术债务和持续的工程投资。对于许多企业而言,将规模、延迟、数据完整性和可靠性的责任转移给像Ably这样具有性能、完整性、可靠性和可用性四大要素的第三方提供商会更经济。可靠性支柱。在构建实时解决方案以支持大规模受众时,这些平台可以消除后顾之忧。因此,企业可以专注于他们的核心产品,优先考虑受众参与计划,并开发更多功能以保持竞争力。原标题:观众参与的实时挑战,作者:JoStichbury
