分布式的来源

         分布式怎么来的。传统的电信、银行业,当业务量大了之后,普通服务器CPU/IO/网络到了100%,请求太慢怎么办?最直接的做法,升级硬件,反正也不缺钱,IBM小型机,大型机,采购了堆硬件。
但是互联网不能这么干,互联网没有那么财大气粗,还有很多初创,能不能赚钱还不知道。所以就有了软件方面的解决方案:分布式系统,简单说,就是一台服务器不行,我用两台、10台、100台...这就要软件系统需要支持。

那么软件设计者就需要考虑了,那么多台机器,我如何让他们协同工作,这就需要一个调度中心(或注册中心);肯定涉及到机器间通信,那么需要一个高效的RPC框架;一个请求过来了,如何分发,需要一个请求分发系统(负载均衡);然后还要考虑每个角色都不能成为性能瓶颈;还有要能方便的进行横向扩展,还有考虑单节点故障。

这些事你在设计分布式系统需要考虑的问题。笔者现在在互联网行业,说的都是互联网业的方案。比如现在负载均衡用nginx/HA,前者更轻量,后者负载均衡算法更丰富;RPC框架用dubbo(可用当当的dubbox);用zookeeper中注册中心,所有服务注册在这里。

需要分布式系统,并发量肯定不低,那么有了上面的还是不够的,还需要考虑cache、mq、job、db等方面的问题。cache,现在第三方缓存也比较成熟,redis/memcache等;mq,rabbitmq,kafka等等也不错;job,现在第三方任务框架有elasticjob和tbschedule,或者你用quartz也支持分布式环境下的任务,不过quartz就没有运维工具了。DB,数据库最好在项目前期就考虑好业务拆分,系统拆分后DB对应的垂直拆分,后期可做读写分离,一主多从,甚至多主多从,业界也有了相应的解决方案。

总结一下,楼主要自己了解分布式原理,然后对应着每个功能区找业界内成熟的产品来实时。互联网行业,基本都有开源的产品供你选择。
posted @ 2018-06-01 11:53  looyee  阅读(209)  评论(0编辑  收藏  举报