这次咱们从根源聊:16招搞定高并发架构设计(12)
有一点不能不提,有的时候整个系统虽然已经是一个大集群但是由于不合理的全局分布式锁还是串行在处理任务,这个时候横向扩展不能解决问题。
3、分区处理
又叫做Sharding、Partition,指的是把数据、任务进行分区,分发到不同的节点同时处理,提高并行度。
这点和拆分有一些相近,但是更多指的是想同的数据和任务需要批量循环处理的时候去做下分区,然后并行执行,应用这个思想的几个例子:
数据表的分表分库,然后由类似Proxy的中间件进行数据路由和汇总处理比如Java 8 parallelStream的思想把数据分成多份在不同的线程同时处理比如ConcurrentHashMap锁分段的思想,把全局的锁改为分段锁减少冲突分区不但能提高并行度使用更多的资源来处理数据而且还可以减少冲突,但是分区处理后最终还是需要Reduce的,这个过程的处理方式以及处理的损耗需要进行考虑。
而且每一个分区的处理速度不一定均衡,所以不能完全假设分成N份系统的执行速度就提高了N倍。
推荐阅读
- lpl|海外热议:尽管LPL获胜了,但这次的S赛是韩国选手最多的一次
- 手机游戏|梦幻西游手游:听说你想要豪宅?这次满足了!新版本上线前庭后院
- 电子竞技|LOL、王者、吃鸡在列!杭州亚运会电竞项目公布:这次计入奖牌
- 张大仙|XYG晋级S组卡位赛,命运逆袭堪比电竞爽文,张大仙这次放心了
- 穿越火线|CF:传说大炮即将上线,这次的“传说BUFF”不可小觑
- 赛博朋克2077|《赛博朋克2077》又又又一次延期 这次是免费DLC
- pc端卡牌类|哈利波特:官方再出隐藏成就,这次不是靠运气,而是靠“计谋”
- 旭旭宝宝|DNF:2+2=0?旭旭宝宝再次对“玉玺”发出挑战,这次又亏了10w
- 魔兽世界|魔兽世界:赛季服开放时间已经确定,不知道这次人气到底如何?
- 小游戏|三国杀:新小游戏“抽签乐”登场,这次线下也能玩!