分布式系统的那些事儿(一)

简介: 巨石应用在如今互联网+时代逐渐淘汰,而分布式系统,集群,微服务可谓现在的流行趋势。那么近期花点时间来讲讲分布式系统吧。什么是分布式系统,很多人一直不理解,只知道把系统分布式部署就行了,但是没有做过这样的系统,也没在里面写过代码,当然连部署都不知道,那么就更加的模糊了。

巨石应用在如今互联网+时代逐渐淘汰,而分布式系统,集群,微服务可谓现在的流行趋势。那么近期花点时间来讲讲分布式系统吧。

什么是分布式系统,很多人一直不理解,只知道把系统分布式部署就行了,但是没有做过这样的系统,也没在里面写过代码,当然连部署都不知道,那么就更加的模糊了。

笼统而言,分布式系统从软件上来讲,对于用户来说是一个不可分割的整体。从硬件上讲就是多台独立的服务器。举个栗子,我们在访问淘宝的时候,我们不会去关心淘宝后台代码是怎么实现的,是如何部署的,我们唯一想要的就是完成购物流程,买到心仪的商品,整个过程流畅,用户体验好,网页打开快速,各方面人性化即可。而从硬件上来讲呢,用户完全不需要知道,比如在某个时候真正更新维护系统,而且却不影响用户的购物流程。就像王者荣耀那样,很多时候这个游戏在更新的时候不影响游戏,那么这就是硬件分布式做的牛逼的地方了。而很多游戏在更新的时候用户是必须要下线的。

既然有分布式系统那么肯定也会有集中式系统,浅白点讲就是文中一开始讲的巨石应用,也就是说整个软件就一个war包,所有功能都在里面,十分大,对于单台计算机的运算能力性能要求十分高。如今很多的企业级后台应用都是这样的。这样的应用显然已经不符合如今的互联网时代,所以要做SOA或者微服务进行拆分这样的工作流也是十分的巨大。而在做拆分的这个过程好不夸大的讲需要半年,甚至1年,如果再加上期间人员流动,尤其新人,在不懂业务的情况下是完全不会做的。

那么有些人会问了,现在要开发一个系统,到底是搭建分布式呢还是单一web应用呢?那么我的回答是看情况,如果预计这个系统将会承载很多的用户量,大并发质量的,那么肯定要做分布式,如果对于企业来讲,仅仅只是固定用户群体,比如特定的VIP用户,对于这样的系统设计为单一也没事。

两种系统的优缺点,显而易见了,单一应用维护起来相对简单,一个包上传重启即可。而分布式环境下对运维的能力有一定的考验。此外,单点故障的问题分布式是不存在的,单一应用的服务器挂了那么整个网站就挂了,这就是所谓的高可用。

设计分布式系统有多复杂?那么大致可以分为以下几点:

  1. 分布式权限如何控制,包括单点登录

  2. 如何从单一系统拆分为多个子系统

  3. 各个系统之间如何通信?RPC还是Restful?

  4. 如何保证系统通信的安全,如何不被拦截

  5. 如何保证系统的高可用

  6. 分布式事务如何实现?数据的最终一致性如何解决?

  7. 如何监控各个子系统。

  8. 并发的时候如何考虑全局的所有子系统?(并发一直以来都是一个很大的概念)

  9. 如何防范各类网络攻击

先写到这里吧,接下来的文章都会围绕分布式来讲。

相关文章
|
11天前
|
消息中间件 存储 安全
分布式系统架构3:服务容错
分布式系统因其复杂性,故障几乎是必然的。那么如何让系统在不可避免的故障中依然保持稳定?本文详细介绍了分布式架构中7种核心的服务容错策略,包括故障转移、快速失败、安全失败等,以及它们在实际业务场景中的应用。无论是支付场景的快速失败,还是日志采集的安全失败,每种策略都有自己的适用领域和优缺点。此外,文章还为技术面试提供了解题思路,助你在关键时刻脱颖而出。掌握这些策略,不仅能提升系统健壮性,还能让你的技术栈更上一层楼!快来深入学习,走向架构师之路吧!
45 11
|
5月前
|
存储 运维 监控
如何设计高可用的分布式系统
【7月更文挑战第29天】设计高可用的分布式系统是一个复杂而细致的过程,需要从架构设计、冗余策略、故障转移与恢复、监控与告警等多个方面综合考虑。通过采用微服务架构、无状态服务、负载均衡、数据冗余、服务冗余、跨地域部署等策略,可以显著提高系统的可用性和可靠性。同时,建立完善的监控和告警体系,确保对系统的任何变化都能及时感知和处理。最终,通过不断的优化和改进,实现系统的高可用性目标。
|
7月前
|
存储 算法
服务中一个简单的分布式系统
【5月更文挑战第21天】本文介绍一个分布式算法,旨在解决高速和低速网络环境下进程间保持相同通信频率的问题。算法通过frequencyEpoch防止过时信息导致无效切换,确保只有在多数节点检测到当前频率嘈杂时才会切换。
46 0
服务中一个简单的分布式系统
|
5月前
|
运维 负载均衡 监控
如何设计一个高可用的分布式系统?
如何设计一个高可用的分布式系统?
|
7月前
|
负载均衡
分布式系统
分布式系统
43 3
|
存储 消息中间件 监控
在学习分布式系统时遇到的五个常见误解
在学习分布式系统时遇到的五个常见误解
11053 1
|
存储 缓存 监控
常见分布式系统-终版 | 学习笔记
快速学习常见分布式系统-终版
常见分布式系统-终版 | 学习笔记
|
存储 SQL Java
理解「分布式系统」曾经发生的事情
理解「分布式系统」曾经发生的事情
理解「分布式系统」曾经发生的事情
|
存储 分布式计算 负载均衡
分布式系统是什么
分布式系统是什么
260 0
|
存储 消息中间件 缓存
什么是分布式系统,如何学习分布式系统?
什么是分布式系统,如何学习分布式系统?
579 0
什么是分布式系统,如何学习分布式系统?