扩容指的是重新编程或修改数据结构,以便扩大服务支撑能力。扩容针对的是服务,通常情况下随着业务的发展,用户数量的增加,原本的服务,受限于硬件基础有限,无法满足增加的用户请求,或者受限与软件能力,因此需要扩容。 一、扩容的难点 扩容的难点在于扩容的便捷性与服务能否宕机与宕机时间,能否做到很方便的从服务支撑100用户扩容到服务支持1000用户甚至1万用户,扩容的成本,扩容操作所耗费的整体时间,以及扩容时是否可以保证服务的可用性。 二、常见的服务扩容方法 1.nginx服务分发 nginx是一个高性能的HTTP web服务器,同时也是一个反向代理服务器,通过配置nginx可以实现将API请求按照指定规则分发到多态服务器上,我们可以通过nginx的配置文件来很简单的实现单机项目多服务器部署。 2.微服务化 另外,目前比较火热的开发方式,微服务,天然的支持服务多部署,通过服务注册中心注册服务,可以简单的实现将服务分发到指定的服务上,这方面的资料可以检索SpringCloud,重点关注其中的服务发现Eureka,Zookeeper,通过注册同一个服务,可以实现服务分发。 3.上云服务 换句话说,将扩容的任务交付出去,购买弹性云计算服务器,弹性数据库服务等等。例如数据库成为瓶颈了就扩容云数据库,当然这是针对不差钱的企业来说的,对技术人员也没什么要求。但是我相信这会是未来的普遍趋势。 分库分表 针对数据库扩容来说,如果是个人服务,而又收到资金等等限制,当数据库达到瓶颈时,需要考虑做分库分表来拆分数据库压力。
TG:@cdncloud13 微信:cdncloud43 QQ:3312937957
|