科技巴士

漫谈分布式系统

巴士影院

漫谈分布式系统

(图片来自于网络)

  系统为了获取更大存储、更大计算量比如Google、百度等搜索引擎、共享资源(共享打印机)、移动通信我们现在每时每刻都离不开的手机,都需要用到分布式系统。

分布式系统是一个涵盖硬件、网络、算法、分布式计算,一个宽广而且有意思领域。分布式系统是复杂系统,但设计出来给用户使用,要简单明了,易于在实际中进行使用。

分布式系统设计透明性:例如分布式文件系统HDFS,整个文件系统暴露给用户与单机系统没有差别,提供给用户接口是读、写、复制、删除,路径创建、删除、路径下文件列表,与本地文件系统没有差别,将内部复杂状态一致性、节点问题、节点不可用、数据一致性、存储位置,全部对用户透明。

分布式系统高可用:分布式系统由许多硬件构成,众多硬件必然会有不可用比如机器硬件出问题,系统设计要将硬件失效作为设计一个提前考量。MapReduce计算时,机器出问题后,能将任务重定向,继续进行计算,而不是整个程序重新进行计算。

分布式系统中一致性:分布式系统中节点数据保持一致,例如分布式缓存系统,数据有多个副本,这时存在一个缓存更新问题,当需要更新缓存时,需要将所有节点缓存更新成功。

分布式时钟同步,数据复制,数据一致性,任务执行很多都依赖于系统时钟,分布式系统,系统时钟不一致,会导致很多操作很难进行。

分布式事务,对于交易或者涉及人身以及生命财产安全系统,需要分布式相关操作是事务。比如网银转账、或者网上购物,钱花出去了,对方却没收到,这是完全无法接受的。

分布式系统存储,有分布式文件系统比如GFS,主要用于存储文件,计算主要面向离线。百度开源分布式数据库Tera是面向实时计算。以及支持实时存取数据,本身实现对内存、SSD、SATA进行相应优化,读取能保证到10ms以内,进行相应设置甚至能到1ms,技术水平还是相当之高的。

分布式计算,因数据规模达到数T甚至P级别,单机计算已经不能满足系统需求,分布式计算是分布式系统重要应用,google、百度搜索引擎对于网页排序,今日头条、电子商务系统中个性化推荐系统排序,都离不开分布式计算,离线比如MapReduce计算框架,实时比如Storm等计算框架。

分布式通信rpc,分布式系统当数据与计算不在一起时需要移动数据,当多个节点多个任务需要进行通信时,当需要知道机器状况时都需要进行通信,机器间通信少不了rpc,rpc不只是作为微服务,本身也是分布式系统重要组成部分。

分布式协调服务,比如Zookeeper,可用于主从选取、分布式事务、消息队列、配置管理等多个领域。

分布式消息队列,比如Kafka,用于消息传递,消息队列好处是多个业务系统之间解耦。并且消息队列也是IM系统核心,IM类应用可以借鉴开源消息队列并扩展以保证消息不丢失不重复,海量消息存储以及发送接收。

分布式缓存redis,JD 基于redis开发自己缓存数据库jimdb,线上很多服务直接将所有数据存储在缓存中,奢侈但性能确实刚,c语言开发,大部分情况下核心是时间复杂度为O(1)Hash结构,get操作基本是1ms,并且redis能同时支持超大量写以及读qps,为线上服务性能保驾护航。

AI时代,深度学习计算一是计算量大一是处理数据量大,本身都离不开分布式系统,分布式系统是工业界基石,是搜索引擎、推荐系统、广告系统、人工智能、AI背后英雄。是一个值得花时间去探索领域,是一个价值极大领域,对分布式系统感兴趣同学可以去研究,越深入价值越大。

(0)

本文由来源 杉枫,由 老司机 整理编辑!

关键词:
巴士影院

热评文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注