分布式系统优化的思路

方向一: 尽可能减少跨机间的网络传输量,尽量优化传输耗时.
原因是1G带宽下传输1M耗时20微妙, 而锁操作一次25ns,两者有1000倍的差距,在分布式环境下,网络传输会成为性能瓶颈. 在处理分布式事务时更明显.

优化方法有:
方法一:通过同步复制, 将跨机操作转为本机操作,即将跨机的数据拷贝到 机器本地去处理.
把跨机器的join操作,通过将小表复制到大表所在机器,将跨机器的join操作转换为本机join.
这里的复制是增量进行的,会有延迟,如果业务可以接受,这是一个不错的方案. 这样,下一次如果再需要join,则可以直接在大表机器上完成本地join.

方法二:将跨机的计算下沉到各子节点本地,节点之间只传输各自处理结果,主节点合并结果.
与这种方式对应的是 主节点从各子节点收集需要处理的数据,在主节点完成数据处理和合并, 问题就是 主节点和子节点间的数据传输量太大.

方法三:将跨机的事务拆分为多个本机事务,通过消息中间件串联.
想办法把一部分跨机操作转成本地操作,然后通过其它方式串联.

方法四:万兆网卡,纯粹的加速传输速度.

方向二:查询优化 (不考虑cache)

方法一:建议都带sharding key来查询
方法二:建冗余表, 方便查询

posted @ 2018-06-22 14:35  JinleiZhang  阅读(2159)  评论(0编辑  收藏  举报