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

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