默语识君 默语识君
有些话,不必说出口。
关注数: 64 粉丝数: 116 发帖数: 20,758 关注贴吧数: 59
抛砖引玉,理性思考了一下,发现一些有趣的东西 业余爱好,在自学一些 Java EE 的东西。 关于这次的数据不互通,开始是持怀疑态度的,不过现在冷静下来思考了一下,还是觉得,可能是有些其他因素在里面的。我说的倒也不一定对,不过作为一个分析的思路还是应该可以接受的。 当然,不针对运营的睿智操作,毕竟经历过BGO的那些事件后,对运营还抱有希望是不可能的,天下的乌鸦一般黑。 先说结论吧: 1. 可能是不舍得在硬件上花钱 2. 在数据的隔离性上,目前他们还没找到合适的方法 接下来说下我的思路: 在值班的时候,我没想太多,以为数据互通就是数据库移植这么简单,但是数据库移植那是继承,而不是互通了= + 互通是要求A服务器跟B服务器随便哪个服务器上数据有变动,都应该具体体现出来。 比如A服务器上买了武将X,那么B服务器上会出现武将X;同理,B服务器上买了武将Y,那么,A服务器上就会出现武将Y。 一般服务上存储这些东西会用数据库,为了加速,会利用缓存技术预先进行数据的读取。 下面这个图(随手做的,不要吐槽难看)服务器A跟服务器B就是单个区服的简单模型,箭头方向表示数据走向。 那么,要使服务器A跟服务器B实现数据互通,就要再加一级缓存(二级缓存)来进行实现。 这个二级缓存独立在服务器A跟服务器B外面,为服务器A,服务器B提供数据交互服务。 不过既然开了二级缓存,那么一般直接会在二级缓存中进行读取操作。 也就是说,原先由服务器单独提供的数据,现在要由第三个服务器来提供数据。 这样就存在了额外的硬件需求,而且,由于多个服务器数据互通,相当于这么多的数据都要存在这个二级缓存服务器中,对于读取速度还有不低的要求,那也就限定了这个二级缓存服务器的配置必定不能太低。 那么第一点证明完成。 第二点,隔离性。隔离性相当重要,不少bug就是出在这个隔离性上。 业务逻辑越复杂,隔离性就越重要。如果隔离性做不好,那么确实不好就这么慌慌张张的上线。 这个涉及到数据库跟缓存技术比较多,我也就懂个大概,就不再细说了。 简单的讲就是数据库、一级缓存、二级缓存在某个时刻时,同一个目标对应的数据是不同的,可以读到不同值。 大概就是这么个意思,这是大忌。这个还是希望有更懂的人能说一下 反正这么一想,运营就是想怎么省事/省钱怎么来。。。 毕竟单服务器是不是更简单,你们说呢?
1 下一页