分布式系统

五分钟学后端技术:如何学习分布式系统和相关技术

倾然丶 夕夏残阳落幕 提交于 2020-04-06 05:21:46
转载自 https://www.cnblogs.com/wetest/p/6806506.html 和 https://www.cnblogs.com/dudu0614/p/8821811.html 什么是分布式系统 分布式这一概念,一直都是后端工程师绕不过去的一个坎,今天,我们就一起来看看到底什么是分布式系统,又有哪些分布式技术世我们需要学习的。 根据百度百科的介绍,分布式系统(distributed system)是建立在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性。因此,网络和分布式系统之间的区别更多的在于高层软件(特别是操作系统),而不是硬件。 从分布式系统的诞生说起 我们常常会听说,某个互联网应用的服务器端系统多么牛逼,比如QQ、微信、淘宝。那么,一个互联网应用的服务器端系统,到底牛逼在什么地方?为什么海量的用户访问,会让一个服务器端系统变得更复杂?本文就是想从最基本的地方开始,探寻服务器端系统技术的基础概念。 承载量是分布式系统存在的原因 当一个互联网业务获得大众欢迎的时候,最显著碰到的技术问题,就是服务器非常繁忙。当每天有1000万个用户访问你的网站时,无论你使用什么样的服务器硬件,都不可能只用一台机器就承载的了。因此,在互联网程序员解决服务器端问题的时候,必须要考虑如何使用多台服务器,为同一种互联网应用提供服务,这就是所谓

分布式系统

放肆的年华 提交于 2020-01-17 05:40:26
什么是分布式架构 分布式系统(distributed system)是建立在网络之上的软件系统。 分布式系统(distributed system)是建立在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性。因此,网络和分布式系统之间的区别更多的在于高层软件(特别是操作系统),而不是硬件。 内聚性是指每一个数据库分布节点高度自治,有本地的数据库管理系统。 透明性是指每一个数据库分布节点对用户的应用来说都是透明的,看不出是本地还是远程。 在分布式数据库系统中,用户感觉不到数据是分布的,即用户不须知道关系是否分割、有无副本、数据存于哪个站点以及事务在哪个站点上执行等。 简单来讲:在一个分布式系统中,一组独立的计算机展现给用户的是一个统一的整体,就好像是一个系统似的。 1-3-01-jpg 分布式系统作为一个整体对用户提供服务,而整个系统的内部的协作用户来说是透明的,用户就像是在使用一个MySQL一样。 如分布式MySQL中间件-Mycat,来处理大并发大数据量的构架。 分布式架构的应用 有 分布式文件系统,分布式缓存系统,分布式数据库,分布式WebService,分布式计算 我们来举例说明: 分布式文件系统: 出名的有 Hadoop 的HDFS ,还有 google的 GFS , 淘宝的 TFS 等 分布式缓存系统:memcache , hbase ,

Elasticell-缘起

给你一囗甜甜゛ 提交于 2020-01-07 05:05:06
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 故事 小白是一个创业公司的技术负责人,创业初期,用户量很少,小白非常愉快的使用Redis来做缓存,系统上线,运行良好,系统响应快速。 过了两天潇洒日子,小白在睡梦中被一震手机短信提示音吵醒。小白看了下短信内容:“卧槽,系统响应时间增大,Redis机器挂掉了,什么情况?”,爬起来恢复了Redis机器,系统恢复正常。 第二天,到公司,小白不想半夜被吵醒,于是做出了架构变更,把Redis从单机修改为Master-Slave结构,并且修改业务代码。改完之后,好长一段时间,小白再没有被Redis的问题给骚扰到,全身心的投入到业务开发中。 业务越做越复杂,用户量越来越多,系统的问题也越来越多,小白的好日子又到头了,老板找到小白:“最近总有客户说系统响应慢,你去查一下,尽快修复”。小白立即一头扎进问题,各种分析,最后一看Redis,CPU一直处于100%。小白心想,单个Redis是支撑不了目前的业务了,小白心里大概估算了了下业务的发展规模,把架构修改为了4套Redis,每套都是Master-Slave结构,然后快速修改了业务代码,根据key的hash来选择Redis,“OK,完工!”,顺利完成了老板交代的任务,继续全身心的投入到业务开发中。 又过了一段时间,业务发展迅猛,用户量又有了很大的提升,之前的问题又出现了