我有一个基于Xamarin.net2.1标准的Android应用程序和一个后端(使用.net6和MySQL的REST API)。从架构的Angular 来看,我不知道什么是最好的选择,所以我请求你的帮助。
此时,从移动的应用程序每次用户刷新Dasboard页面,后端做休息调用https到外部端点检索json,然后做一些计算数据并发送回移动,所以用户可以看到数据更新(它的binance API调用,以获得btc ptice在usdt和eur).
因为这是一个非常糟糕的想法,当投入生产,我在想如何解决它。我的主要想法,正在创建一个控制台应用程序,它每5秒主动进行一次呼叫,并将其保存在某个地方(可能保存到文件会导致大量的磁盘访问哈哈哈)。最后,收集的数据必须以某种有效的方式共享,以便移动的可以获取这些数据...你认为什么可能是最好的方法?我知道我可以使用Websockets从Binance流这些值,但是我不清楚什么是最好的选择,以及如何连接到移动的。谢谢大家!
1条答案
按热度按时间owfi6suc1#
首先,如果你是一个金融项目的工作,你应该知道,每一秒是重要的,所以每5秒获取数据的想法是不是一个好主意,所以让我们去解释一个更好的方法:
正如你所说,在这种情况下,最好的方法是从WebSocket获取数据,因为它是实时的,非常可靠,而且你总是在更新。
但是有一个问题,那就是有很多数据发送给你,所以你应该能够处理它。要处理这么大的数据,最好的办法是使用JAVA和它的框架,如Spring。
这是问题的一部分,现在我们来看看第二部分。
您应该如何处理这些数据??您应该在何处持久保存它们??
正如您之前可能注意到的,您的数据是基于时间的数据。
对于基于时间的数据,最佳选择是:Postgres时间刻度数据库。
安装Postgres并创建一个数据库,然后在数据库上应用时标DB插件。
现在一切准备就绪,在时间刻度数据库中创建一个基于时间的表。
现在坚持每秒钟的价格。
每次前端刷新页面时,只需从表中进行选择((基于时间的选择在Postgres timescale DB中得到了高度优化,即使在大量记录中也是如此)),并将最后的价格返回给它。除此之外,您还可以获得每个时刻的价格。
甚至你也可以将数据流传输到你的前端。
你想知道什么问题尽管问。