分布式系统涉及到的理论知识及技术点比较多,以致于很多童鞋都说,分布式系统的学习是入门容易、深入难,通过网络搜索到的知识点较为零散,难以系统化学习、融会贯通。本篇Mike将从以下几个方面分享,带着大家先窥探分布式的全貌,希望为大家厘清分布式学习之路的方向与具体路径。
本篇主题分布式系统的概念分布式系统的作用分布式系统的特性分布式系统主流技术分布式系统专题合集及知识图谱分布式系统的概念分布式系统是由一组通过网络进行通信、为了完成共同的任务而协调工作的计算机节点组成的系统。有一种说法:分布式系统是若干独立计算机的组合共同对用户提供服务,但对于用户来说,这些计算机就像是单个相关系统。
分布式系统的作用分布式系统的出现是为了用廉价的、普通的机器完成单个计算机无法完成的计算、存储任务。其目的是利用更多的机器,处理更多的数据。
分布式系统的特性分布式系统特性主要有透明性、可扩展性、可用性、可靠性、高性能、一致性等。这几个特性是分布式系统的主要衡量指标,开始分布式系统的学习,从了解分布式系统的特性开始。1、透明性
分布式的特征之一是向用户隐藏系统的内部组织结构,各种计算机之间的差别、通信方式的差别都被隐藏了。使用分布式系统的用户不关心系统如何实现,以及看到的数据来自哪里,用户在任何时候都能以同一种方式与分布式系统进行交互。
2、可扩展性
可扩展性是指当增加或减少任务时,分布式系统的处理能力要能够很方便地随之增加或减少。即:能够高效便捷地通过增加或减少机器的数量,来应对数据量的增长或减少。
3、可用性
可用性分布式系统的基本问题,可用性是指系统在各种情况下都能稳定地对外提供服务的能力,即高度可用的系统在任何时候都能正常地工作。
4、可靠性
可靠性是指系统可以无故障地持续运行,计算结果正确、存储的数据不丢失。与可用性的差别在于,可靠性是依据时间间隔来定义,而不是任何时刻来进行定义的。
5、高性能
高性能是应用系统所需要具备的基本条件,不管是单机还是分布式系统,大家都非常关注性能。高性能是指应用系统对于客户端请求的处理速度快,响应时间短,对于用户来说就是该应用的操作流畅,拥有良好的用户体验。不同系统、不同业务类型对性能的衡量指标是不同的,譬如:淘宝交易系统可以是秒级别的响应,而网络游戏则要保证在毫秒级别的响应。
6、一致性
通常情况下,我们所说的分布式一致性问题是指数据一致性问题。分布式架构的核心在于一致性的实现和妥协。一致性越强,对用户越友好,但会制约系统的可用性;一致性越低,用户端可能需要兼容数据不一致的情况,但系统可用性会高出很多,具体实施时要考虑实际业务场景的需要去做取舍,不同场景下选择合适的设计模式。
以上就是分布式系统的几个主要特征(基础理论知识点)。接下来我们来了解下分布式系统在实现过程中可能用到的主流技术。
分布式系统主流技术关于分布式系统的实现,主要会使用到哪些技术呢?下面简单罗列了一些供大家参考。
? 负载均衡:Nginx、LVS等
? webserver:Tomcat、Apache、Jboss等
? service:SOA、微服务、Spring boot,SpringCloud等
? 容器:Docker,kubernetes等
? cache:Memcache、Redis等
? 协调中心:Zookeeper、Etcd等
? RPC框架:Grpc、Dubbo、Brpc等
? 消息队列:Kafka、RabbitMQ、RocketMQ、QSP等
? 实时数据平台:Storm、Akka等
? 离线数据平台:Hadoop、Spark等
? dbproxy:Cobar等
? db:Oracle、Mysql、MongoDB、HBase等
? 搜索:Elasticsearch、Solr等
? 日志:Rsyslog、Elk、Flume等
分布式系统专题合集及知识图谱Mike曾经输出过一系列分布式系统相关的技术干货,主要包括:Kafka、Docker、Dubbo、Redis、负载均衡等专题,涉及到多种技术、理论知识以及协议。如果你期待对分布式系统有一个更全面的认识,想要了解各个技术在分布式系统中如何应用、分别解决哪些问题、有怎样优秀的实现,最终将分布式系统中的相关技术与理论串联起来,不妨了解下Mike免费分享的几十期分布式系统专题合集及知识图谱(长期持续更新)。
觉得不错请点赞支持下,送你上述图谱+合集,关注并私信回复【6】即可获取~Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有