本博文出自51CTO博客李云兴博主,有任何问题请进入博主页面互动讨论! |
如今,负载均衡已经不是一个新鲜的词,也不是什么新技术,主要用于解决单机负载能力的局限性,但问题是你的应用真的到了单机的负载上限了吗,未必,很多不知道如何推断瓶颈,如何解决问题的人就开始盲目的增加机器,似乎只要能加机器,性能就都不是问题,负载均衡技术成了这类人心中的白马,一台机器能搞定的事你用了10台,这显然是成本问题。
其实很多问题都可以很简单的解决,看以下场景
1、一个数据库服务器上跑两个数据库,并且在生产环境中,这两个数据库所带来的负载是差不多的,并且通过工具监测发现是硬盘的IO遇到了瓶颈,怎么办?相信很多人马上想到,加一台服务器,配读写分离,或者同步复制,把两个数据库分别用单独的服务器跑 等等方案。其实这个问题很简单,既然瓶颈在IO,那么我们就解决IO问题,加一块硬盘,两个数据库的数据分别放在不同的硬盘上不就解决了吗,在有些场景下增加内存可也以降低磁盘IO,也能很简单的解决问题
2、对数据库熟悉的人都清楚,索引在查询中的重要性。然而在我遇见的很多开发者中真正能用好索引的人很少,很多时候有索引和没索引(或者索引不当)造成的性能差别是相当大的,如果这也要通过增加机器来解决不知要多少机器够你用的
3、文件下载服务器,这种服务器的瓶颈通常都会出现在单机的网络吞吐能力上,而单机网络吞吐能力取决于网卡的吞吐能力,难道说就因为网卡的问题又要加机器吗,其实很多人忽略了一个问题,就是一个机器是可以加多个网卡的
其实可以例举的场景很多,不过通过以上三个场景,相信很多人已经发现问题了,只是我们太关注负载均衡,集群这样的技术,而忽略了其实有些问题可以很简单且低成本的解决的
总结:不要盲目的应用各种技术,要学会思考,发现问题的本质才是更好的解决问题的关键