介绍
作为 Tailwind Traders 的工程师,你了解到贵公司正计划推出一个新网站,向客户提供股票价格信息。 最近,实习生为新应用程序创建了网站原型,首席架构师要求你介入并改进解决方案。 目标是更新应用以实现股票价格信息的自动更新,但确保客户端和服务器之间的通信仅在服务器上的数据更改时才发生。
原型体系结构
服务器原型有两个功能:
函数名称 | 触发器类型 | DESCRIPTION |
---|---|---|
getStocks | Azure Cosmos DB(Azure 宇宙数据库) | 服务器负责从数据库中的股票表读取所有数据,并在客户端请求该数据时在 HTTP 响应中返回该数据。 |
setPrice | 定时器 | 用于更改数据库中数据的函数在计时器触发器上运行。 此函数模拟从后端系统接收更改。 |
作为原型,实习生使用计时器函数模拟股票数据更新,该函数每分钟更新一次。 客户端网站每隔 5 秒从 /api/getStocks
API 终结点请求所有股票,以尝试显示准实时数据。 此客户端请求效率不高。 与其从服务器拉取数据,不如让服务器更高效地推送任何新的股票信息。
要完成的任务
通过学习本模块,你将能够:
- 运行原型:查看客户端应用程序,该应用程序定期轮询服务器的所有股票。
- 改进应用程序:实现一个无服务器的 Azure Functions 应用程序,利用 SignalR 服务将更改广播到连接的客户端,从而提供近乎实时的更新。
- 更新客户端 JavaScript Web 应用程序以连接到 SignalR 以获取和显示消息。