我正在观看关于Akka.net的这个video,并且发言者说在权利之后读取不会产生一致的结果,因为事件的顺序在网络级别是不可预测的。主持人在本视频中讲述的架构如下:
我很困惑为什么单个数据库无法实现一致的结果?如果在写入数据之前放置锁定会不会带来一致的结果?
答案 0 :(得分:2)
所以我猜你是在谈论Aaron描述大约10分钟的视频。这是场景:
问题在于:记录点击的每个请求都可以转到不同的网络服务器,我们在发送更多记录点击请求之前,不会等待前一个点击服务器。因此,在编写第二个或第三个等之前,我们无法保证写入第一个事件的请求已完成。
例如,由于网络故障,第一个请求可能会延迟(甚至失败!),因此第二个请求可能首先到达我们的SQL Server!这样,当它读取发生的事件流时,它无法意识到已发送请求(但尚未完成)以记录第一个事件发生。
我认为他试图做的是,面对多个客户端(在本例中,Web服务器)同时写入数据库,你无法依靠,"我先发送了它,所以它将被记录下来#34;无论您是使用DataStax Enterprise,Cassandra,SQL Server,Oracle还是其他什么,都是如此。希望有所帮助!