一、Java分布式(第一章)

一、Java分布式(第一章)

单机架构:将一个项目所有的业务部署在一个服务器上,整个项目的所有服务都由这台服务器提供。单机架构的劣势已经体现出来了,当访问量越来越大,单机架构肯定撑不住。例如双十一的活动,单机架构是撑不过庞大的访问量的。所以出现了集群。

集群:将一个项目部署在多个服务器上(不同的服务器运行同样的代码,干同一件事)。在单机架构遇到瓶颈的时候,在单机架构的基础上再添加多台服务器,干同样的事情,集群中的每个服务器都是集群中的一个”节点”,这些”节点”构成了集群。

那么问题来了,用户该去访问那个”节点”呢?软件制作者肯定希望用户访问负载压力小的服务器。这时候引入了一个”调度者”,他负责接受用户发送的请求,并去指引用户访问哪台服务器。

​举个简单的例子:在阳光明媚的一天,小明穿着格子衫去电影院看电影,小明拿着票来到电影院的检票口,将票(请求地址)给检票员(调度者),检票员(调度者)拿到票(请求地址)指引小明具体去哪个影厅(服务器)。这个过程中,小明只知道有票(请求地址),但是并不知道影厅(服务器)在哪。需要检票员(调度员)去指引小明具体哪个影厅(服务器)。

​ 这个”调度者”有个高大上的名字:负载均衡服务器。集群的好处就是,系统的扩展性变得很容易,当你的服务器撑不住时,多增加服务器即可。

分布式将一个业务拆分多个模块,部署在不同的服务器。按照业务需求拆分为一个个独立的子系统,在分布式结构中,这些子系统称为”服务”。这些子系统在web服务器中,他们之间通过 RPC方式通信。

再举个例子:小饭店原来只有一个厨师,切菜洗菜备料炒菜全干 单机

后来客人多了,厨房一个厨师忙不过来,又请了个厨师,两个厨师都能炒一样的菜,这两个厨师的关系是 集群

为了让厨师专心炒菜,把菜做到极致,又请了个配菜师负责切菜,备菜,备料,厨师和配菜师的关系是 分布式,一个配菜师也忙不过来了,又请了个配菜师,两个配菜师关系是集群。

2、为什么要使用分布式:

从上面的架构发展历程或许已经看出来一点单机、集群、分布式之间的优劣势。

单机架构的劣势已经显而易见,大量的数据访问量时,单机架构肯定撑不住。所以在做一些电商项目时,单机架构肯定是不可行的。

当集群中的节点,增加到一定量时,发现集群的性能并没有太多提升,产品的更新升级也会很困难,服务器的增加也是需要成本的,当服务器增加到一定程度,成本也是很高的。

当数据访问量达到一定程度,例如大型的电商网站,庞大的数据访问量,引入分布式将整个项目打碎,拆分,各个模块负责不同的业务,分头做事,他们之间相互协调,最后把结果返回呈现给用户。

一、Java分布式(第一章)

3、分布式特点:

  1. 分布式将一个业务拆分多个模块,各个模块负责不同的功能,大大降低了程序之间耦合性
  2. 增加功能时,只需要在增加一个子项目,不需要修改原有的代码,提高了程序的可扩展性。
  3. 不同的业务可以布置在不同的服务器上,可以灵活部署

Original: https://www.cnblogs.com/zdh052286/p/11962256.html
Author: 清酒一杯
Title: 一、Java分布式(第一章)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/581613/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • redis用法分析

    redis也是一个内存非关系型数据库,它拥有memcache在数据存储上的全部优点,而且在memcache的基础上增加了数据持久性功能,redis用rdb和aof两种方式实现数据持…

    Linux 2023年5月28日
    074
  • ELK收集日志之logstash使用

    一、logstash使用 1.logstah收集文件日志 不难理解,我们的日志通常都是在日志文件中存储的,所以,当我们在使用INPUT插件时,收集日志,需要使用file模块,从文件…

    Linux 2023年5月27日
    084
  • Java实现动态数组【数据结构与算法】

    1、数组 类型固定、长度固定 连续的内存空间 顺序存储、随机读取 查询快、新增删除慢。 最好初始化的时候就指定数组大小。这样就可以避免一定的数组扩容出现的内存消耗。 import …

    Linux 2023年6月14日
    088
  • Git的使用以及常用命令(详解)

    一、 版本控制工具 什么是版本控制系统? 版本控制系统(Version Control System):是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。版本控…

    Linux 2023年6月6日
    099
  • 设计模式——创建型设计模式

    创建型设计模式 争对 对象/类创建时的优化 工厂方法模式(了解) 通过定义顶层抽象工厂类,通过继承的方式,针对于每…

    Linux 2023年6月7日
    086
  • Linux搭建SVN服务器详细教程

    前言 本文讲解Linux系统下如何搭建SVN服务器,详细说明各配置项的功能,最终实现可管控多个项目的复杂配置。 SVN是subversion的缩写,是一个开放源代码的版本控制系统,…

    Linux 2023年6月7日
    090
  • 【PHP代码审计】TP3.2某传销系统getshell

    博客园 :当前访问的博文已被密码保护 请输入阅读密码: Original: https://www.cnblogs.com/sevck/p/16547738.htmlAuthor:…

    Linux 2023年5月28日
    087
  • 位图实现

    位图就是用每个字节中的bit位代表一组资源的映射。 例如:一个字节有8位,在操作系统中可以用一个bit位代表一个4K的页,那一个字节就可以代表8页32K内存。 可以利用位图进行资源…

    Linux 2023年6月7日
    071
  • Spring 4 集成 redis 实现缓存 二

    项目开发过程中经常用到mybatis,为了提升查询效率,mybatis支持一级和二级缓存,一级缓存基于SqlSession级别,默认开启,二级缓存基于Mapper级别;一级和二级缓…

    Linux 2023年6月14日
    089
  • Docker安装教程

    这里介绍两种安装方法:centsOS安装和Ubuntu安装 CentOS安装 linux内核版本建议3.8以上,作者本人使用的是3.10;查看内核版本命令:uname -r 一般C…

    Linux 2023年5月27日
    097
  • ELK-企业级日志分析系统

    ELK 企业级日志分析系统 1.常见日志处理方式 rsyslog: Ryslog是一个强大而安全的日志处理系统。Rsylog通过多个物理或虚拟服务器在网络上接收日志,并监视不同服务…

    Linux 2023年6月13日
    079
  • 数据库简单查询

    简单查询 语法句式如下: SELECT filed1,filed2 … filedn FROM tablename [WHERE CONDITION11] [GROUP BY …

    Linux 2023年6月7日
    0116
  • 重磅!微信官方恢复了个人红包封面的制作入口,限时开放!!.md

    前两天微信开放了个人红包封面,引起了大家欢呼雀跃~ 可惜……没几个小时,因为一个不可描述的原因,官方小程序下架了…… 但是, 现在好…

    Linux 2023年6月15日
    0148
  • C语言之初认识

    1.低级语言可以简明说:非常接近底层语言 2.可移值性:可以嵌入各大系统中 3.简单性:语法简单,语法规则没有太大限制,c语言的代码要求比较随意,一行可以写入多行语句,每条语句写完…

    Linux 2023年6月8日
    081
  • 设计模式——结构性设计模式

    结构性设计模式 针对类与对象的组织结构。(白话:类与对象之间的交互的多种模式 类/对象适配器模式 当需要传入一个A类型参数,但只有B类型类时,就需要一个A类型的适配器装入B类的数据…

    Linux 2023年6月7日
    0115
  • [Linux]LVS(Linux Virtual Server)

    LVS(Linux Virtual Server) LVS(Linux Virtual Server) 什么是LVS? 为什么要用LVS? LVS的组成及作用 LVS相关术语 LV…

    Linux 2023年6月13日
    077
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球