博客
关于我
JAVA分布式系统
阅读量:790 次
发布时间:2023-01-28

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

什么是分布式系统?

分布式系统并非某一门具体技术,也不是某个特定的框架。它是指将计算能力和数据存储能力分散在不同的服务器上,通过网络连接形成一个整体服务。这些服务器可以是物理机也可以是虚拟机。简单地说,分布式就是一种解决方案。

传统的单体服务架构存在诸多问题:代码量庞大、协作开发与维护困难、单处改动可能导致整体服务瘫痪等。为了应对这些挑战,分布式系统将一个大型服务拆分为几十个甚至上百个微小服务。这些服务分散在不同的项目中,开发者可以更方便地分工并行合作,大大降低了代码冲突和测试不到位带来的风险。

分布式系统的优点主要体现在以下几个方面:

  • 系统可用性提升

    传统集中式系统单点故障易引发服务中断,而分布式系统通过部署多个节点,确保单台机器故障不会影响整体服务。

  • 系统并发能力提升

    通过负载均衡技术,如Nginx,请求可以被分发到多个服务器上。无论是数据库还是服务,都可以根据需求水平扩展,确保系统能够应对最大的负载。

  • 系统容错能力提升

    分布式系统可以在多个节点部署相同服务。例如,若一个区域的机房出现故障,流量会自动转发到其他区域继续维护服务可用性。

  • 低延迟

    服务节点根据用户地理位置智能分配,用户请求可以自动转发到最近的机房,降低访问延迟。

  • 然而,分布式系统也存在以下缺点:

  • 依赖网络

    服务器间通信依赖网络连接,网络中可能出现延迟、丢包或中断等问题,进而影响服务调用完整性。

  • 维护成本高

    单体服务只需维护一台服务器即可,而分布式系统需要管理多个节点,增加了运维复杂度和成本。

  • 一致性、可用性与分区容错无法同时满足

    根据CAP定理,分布式系统无法同时满足三者,需要根据实际需求权衡牺牲其中一个。

  • 分布式系统与微服务的关系密不可分。采用微服务架构的系统必然是分布式系统的一个例子。微服务和分布式都是解决复杂系统问题的概念,微服务只是分布式系统的一种落地方案,二者的优缺点在系统实践中都会体现。选择微服务架构时,开发者需要深入理解其背后的分布式原理,并在实际应用中权衡系统的可靠性与扩展性。

    转载地址:http://gcryk.baihongyu.com/

    你可能感兴趣的文章
    (反射+内省机制的运用)简单模拟spring IoC容器的操作
    查看>>
    (转)tomcat7.0 manager app和host manager web管理
    查看>>
    .Net(C#)实现异步编程
    查看>>
    .Net中webBrowser控件JS交互
    查看>>
    02-Docker镜像分类及操作秘籍,轻松掌握导出、导入、删除
    查看>>
    04-docker-commit构建自定义镜像
    查看>>
    04-docker系列-commit构建自定义镜像
    查看>>
    05-docker系列-使用dockerfile构建镜像
    查看>>
    05-如何通过Dockerfile实现高效的应用容器化?
    查看>>
    09-docker系列-docker网络你了解多少(下)
    查看>>
    1 解决XP重装后原文件夹拒绝访问
    查看>>
    10-docker系列-docker文件共享和特权模式
    查看>>
    #C2#S2.2~S2.3# 加入 factory/objection/virtual interface 机制
    查看>>
    #C8# UVM中的factory机制 #S8.1.1# OOP 语言三大特性 systemverilog的支持
    查看>>
    #C8# UVM中的factory机制 #S8.1.4# 约束的重载
    查看>>
    #C8# UVM中的factory机制 #S8.2.3# 重载sequence哪些情形
    查看>>
    #C8# UVM中的factory机制 #S8.4.1# factory机制的实现
    查看>>
    900行c语言贪吃蛇,原生js实现的贪吃蛇网页版游戏完整实例
    查看>>
    ado读取多条oracle数据,Oracle ADO数据存取
    查看>>
    anaconda新建python2环境安装不了jupyterlab_anaconda3安装及jupyter环境配置教程(全)...
    查看>>