分布式浅析

    当一个系统由上百人使用到百万级别的访问时,单机系统就满足不了用户的要求了,这时业界的普遍做法是使用分布式来构建系统,做到高吞吐、高并发、低延迟和负载均衡,从而满足用户的需求。

解决方案一:分层模型(路由、代理)

       1.做法:随机分发请求给不同服务器,缺点:session共享、数据库需要独立运行;

       2.做法:三层模型:接入、逻辑、数据层;缺点:数据库的压力大,需要大量的proxy、router进行转发;

       3.做法:引入消息队列;

解决方案二:多线程和异步

      1.多线程,可以提高系统的并发度,但是共享变量的互斥访问,需要上锁,会出现死锁、线程切换开销过多;

      2.异步,但是需要自己处理并发的处理;

解决方案三:缓存技术

     1.将热点数据放到缓存中,降低延迟;

        问题:缓存数据的一致性,容错性,缓存集群,读写分离、2级缓存、一致性哈希;

解决方案四:存储技术

     1.NoSQL,包括MongoDB、Redis等,可以将数据从复杂的关系型数据库中解脱出来;

解决方案五:

     1.对异常的机器动态的下线和探测,动态的扩容和缩容

     2.日志的收集和处理

解决方案五:zookeeper

    1.Zookeeper是一个分布式管理系统,通过对目录的管理,来实现分布式

解决方案六:

    1.消息队列:解耦、削峰填谷,用于2个服务之间的通信,保证信息传输的可靠性;

事务系统:

   1.涉及到多台机器上的数据的一致性,

参考博客:https://wetest.qq.com/lab/view/203.html

猜你喜欢

转载自blog.csdn.net/JoshuaXin/article/details/83506632
今日推荐