博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
分布式系统概述
阅读量:5238 次
发布时间:2019-06-14

本文共 910 字,大约阅读时间需要 3 分钟。

  • 分布式系统简介  

    任何东西都是由浅到深的过程,分布式系统也由单机系统(比如一台电脑)演变而来。

    当数据太多的时候,单台机经受的数据运算压力比较大。解决办法就用多台机器来运算。将所有的运算的机器看作是一个整体,那么这个整体就是一个分布式系统把。

    下面看看传统的单机系统:

        

    说句题外话,其实很多硬件的构架思想,在软件上依旧适用,比如在OSI的数据链路层,一般节点(路由等)之间的通信,在数据转发的时候,会比较mac地址。

    不是自己的数据包就丢掉。聊天的软件大多也是这种思路,服务器广播消息,所有客户端收到消息一看不是自己的就丢掉。再如面向服务器,将Cpu抽象为一个Server,

    存储设备抽象为数据库,输出设备抽象为响应,这样一个简单的c/s结构就形成了。

    分布式系统只是单机系统的扩展,扩展cpu由多台机器来承当,储存设备可扩展为分布式文件系统。输入输出一般不进行扩展:

    

  • 分布式系统要解决的问题

    1)分布式主要是为了提高运算与存储数据的能力。

    2)分布式系统一是要解决Session问题,单节点(每台服务器就是一个节点)独立性,异地容灾等,这些在写服务器的时候要特别考虑。

      这里提一下关于session的问题,网上资料很多,我认为比较合理的做法是:

      首先你得做个过滤器,对每个访问,进行session数据转移存储,

      然后在在用户访问你的铭感信息的时候,你就用session去验证用户。(一般对铭感信息再做一个过虑器)

      

  • 基于分布式系统编程

    如果说单机到分布式系统是一个扩展的过程,那么分布式编程则是一个拆分的过程,拆分的目的就是尽量独立,以后好对某个方面修改,而不影响其他。

    1,数据库拆分(按表格拆分,或拆分表格,读写分离);

    2,webapp拆分(一般按业务拆分);

    具体不多说,看图

    

                  

转载于:https://www.cnblogs.com/enjoyall/p/6601886.html

你可能感兴趣的文章
Java线程面试题
查看>>
Paper Reading: Relation Networks for Object Detection
查看>>
Java IO流学习总结
查看>>
day22 01 初识面向对象----简单的人狗大战小游戏
查看>>
mybatis源代码分析:深入了解mybatis延迟加载机制
查看>>
Flask三剑客
查看>>
Hibernate-缓存
查看>>
【BZOJ4516】生成魔咒(后缀自动机)
查看>>
【BZOJ3052】【UOJ#58】【WC2013】糖果公园(树上莫队)
查看>>
提高PHP性能的10条建议
查看>>
svn“Previous operation has not finished; run 'cleanup' if it was interrupted“报错的解决方法...
查看>>
【转】总结前端面试过程中最容易出现的问题
查看>>
熟用TableView
查看>>
Java大数——a^b + b^a
查看>>
poj 3164 最小树形图(朱刘算法)
查看>>
百度贴吧图片抓取工具
查看>>
服务器内存泄露 , 重启后恢复问题解决方案
查看>>
ajax post 传参
查看>>
2.1命令行和JSON的配置「深入浅出ASP.NET Core系列」
查看>>
android一些细节问题
查看>>