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