分区分服和全区全服的对比

为什么要做架构的区分?

1.游戏类型的不同,导致需要在DB层做区分:全区全服就只有一个DB,但是分区分服的每个服都有独立的DB。
2.游戏类型的不同,导致数据互通性不同;逻辑服务器页游必要作区分,比如各个平台需要独立运营,独立结算,开服活动只能针对特定服等等;
3.单服承载的玩家数量级不同,导致架构上调整:全区全服所有玩家在一个服,分区分服玩家分摊在各个不同服,单服玩家数量不在一个级别,导致架构上的考量不同。

架构做了区分,在实际开发中需要注意什么?

架构上区分,导致后台面临的压力不同:
1.DB层:分区分服DB承载单服压力,一般游戏单服PCU是千级,甚至百级,DB读写压力小,采用MySQL基本满足要求;全区全服DB承载所有玩家,PCU达到百万级别,读写压力大,单一的MySQL不能满足读写压力,需要因为读写并发高的DB组件,比如互娱的Tcaplus,TEG的CMem等等。
2.平滑扩容:全区全服的扩容是因为整个游戏后台,在外网不停机扩容中,需要考虑扩容对整个后台的影响,而分区分服因为面临扩容机会少,有开服情况,也是独立的新建整个服,对其他服基本无影响;
3.容灾方面:全区全服在某个服务器进程出现问题时,该模块的压力可能会偏向同等功能的其他进程,需要处理雪崩情况,避免影响全服。而分区分服因为天然的服与服之间的隔离性,在这一块压力小很多;

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spark中的区是将数据划为更小的部,以便并行处理。Spark支持两种类型的区:区间和区内。 1. 区间:区间操作是在不同的区之间进行的。例如,将数据集按照某个键进行组或者排序。这些操作需要在不同的区之间进行数据交换和重组。在这种情况下,Spark需要将数据从一个区移动到另一个区,这可能会导致性能开销。因此,在进行区间操作时,应该尽量减少数据的移动和交换。 2. 区内:区内操作是在同一个区内进行的。例如,在一个区内对数据进行过滤、转换或聚合操作。这种操作只涉及到单个区的数据,不需要跨区进行数据交换。因此,区内操作通常比区间操作更高效。 为了优化Spark应用程序的性能,可以采取以下几种策略: - 合理选择区键:根据具体的应用场景选择合适的区键,以便在区间操作时减少数据移动和交换。 - 避免频繁的区间操作:尽量在区内完成多个操作,避免在不同的区之间频繁地进行数据交换。 - 使用合适的并行度:根据集群的资源情况和任务的复杂度,调整并行度的设置,以充利用集群资源并减少数据移动。 - 考虑数据倾斜:当某些键的数据布不均匀时,可能会导致数据倾斜问题。可以采用一些技术,如数据重区或者使用Spark提供的解决方案(如Spark SQL的自动数据倾斜处理)来解决数据倾斜问题。 总之,合理使用区间和区内操作,结合合适的调优策略,可以提高Spark应用程序的性能和效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值