分布式最通俗的解释

分布式概念:
     1.几亿条数据,一个数据库不够用了,分库
    2.双十一这种设置多个服务器分摊请求,分服务器
    3.业务扩大得分业务,比如注册登录,物流,卖东西等不同系统相互协调(登录系统-买东西系统-发货系统)

分布式技术:

    1.设置多个数据库要进行分库:(cobar,tddl,mysql-proxy等技术)
        1.Cobar的分布式主要是通过将表放入不同的库来实现:
            1. Cobar支持将一张表水平拆分成多份分别放入不同的库来实现表的水平拆分
            2. Cobar也支持将不同的表放入不同的库
            3. 多数情况下,用户会将以上两种方式混合使用
            这里需要强调的是,Cobar不支持将一张表,例如test表拆分成test_1, test_2, test_3.....放在同一个库中,必须将拆分后的表分别放入不同的库来实现分布式
        
        2.其次,我们也需要注意Cobar的功能约束:
            1) 不支持跨库情况下的join、分页、排序、子查询操作。
            2) SET语句执行会被忽略,事务和字符集设置除外。
            3) 分库情况下,insert语句必须包含拆分字段列名。
            4) 分库情况下,update语句不能更新拆分字段的值。
            5) 不支持SAVEPOINT操作。
            6) 暂时只支持MySQL数据节点。
            7) 使用JDBC时,不支持rewriteBatchedStatements=true参数设置(默认为false)。
            8) 使用JDBC时,不支持useServerPrepStmts=true参数设置(默认为false)。
            9) 使用JDBC时,BLOB, BINARY, VARBINARY字段不能使用setBlob()或setBinaryStream()方法设置参数。


    2.既然设置了多个服务器,肯定需要用什么东西来分发请求:(nginx,apache 等技术)
        1.nginx是一款开源的,高性能的HTTP服务器,本身可托管网站(类似Tomcat),进行Http请求处理,

 

        由 反向代理服务器 分发到若干个小服务器

 

       这里写图片描述


    

 

    3.你公司有很多系统,想很好的联系在一起,光用接口不满足了,得用一些JMS(java消息服务,客户端进行异步消息发送) ,像activemq,ons 之类的来协调吧

 

 

   
    4.为了解决io问题,得加缓存吧,那么缓存对应上面的,也得分布式吧,就涉及memcache,redies 等等(redis集群可以分布式缓存)
        Redis以内存作为数据存储介质,所以读写数据的效率极高,远远超过数据库。以设置和获取一个256字节字符串为例,它的读取速度可高达110000次/s,写速度高达81000次/s。
        Redis跟memcache不同的是,储存在Redis中的数据是持久化的,断电或重启后,数据也不会丢失。因为Redis的存储分为内存存储、磁盘存储和log文件三部分,重启后,Redis可以从磁盘重新将数据加载到内存中,这些可以通过配置文件对其进行配置,正因为这样,Redis才能实现持久化。
        Redis支持主从模式,可以配置集群,这样更利于支撑起大型的项目,这也是Redis的一大亮点

你可能感兴趣的:(分布式最通俗的解释)