一、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)

大家都在看

  • jQuery 遍历

    下图展示了一个家族树。通过 jQuery 遍历,您能够从被选(当前的)元素开始,轻松地在家族树中向上移动(祖先),向下移动(子孙),水平移动(同胞)。这种移动被称为对 DOM 进行…

    Linux 2023年6月13日
    088
  • X86 assembly guide

    This guide describes the basics of 32-bit x86 assembly language programming, covering a sm…

    Linux 2023年6月7日
    0142
  • Docker搭建Redis Cluster集群及扩容和收容

    上一篇文章讲解了Redis集群原理及搭建,由于工作中使用docker较多,本文主要讲解使用docker搭建集群及对集群的扩展收容。环境:Centos7.6Docker:20.10….

    Linux 2023年6月13日
    080
  • 网络安全常见术语

    黑客帽子之分 白帽 白帽:亦称白帽黑客、白帽子黑客,是指那些专门研究或者从事网络、计算机技术防御的人,他们通常受雇于各大公司,是维护世界网络、计算机安全的主要力量。很多白帽还受雇于…

    Linux 2023年6月14日
    090
  • [ Shell ] 用 while + case 实现 GetOptions 效果

    https://www.cnblogs.com/yeungchie/ 可以用 getopt,但我还是喜欢自己写这个过程,便于我控制更多细节。 下面要实现的效果是,从命令行参数中分析…

    Linux 2023年6月7日
    0108
  • Laxcus远程终端

    Laxcus集群操作系统的远程终端越来越象Linux的VIM了,除了界面风格之外,在用户使用的命令上也在向VIM靠近,原因嘛也不难理解,毕竟Laxcus是一个分布式的操作系统,处理…

    Linux 2023年6月6日
    0120
  • 【深度学习】PyTorch Dataset类的使用与实例分析

    Dataset类 介绍 当我们得到一个数据集时,Dataset类可以帮我们提取我们需要的数据,我们用子类继承Dataset类,我们先给每个数据一个编号(idx),在后面的神经网络中…

    Linux 2023年6月13日
    097
  • docker的基本使用

    一、 实验前置知识 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器是…

    Linux 2023年6月13日
    082
  • redis启动失败 提示Unregistered Authentication Agent for unix-process:6176

    使用宝塔软件安装的redis 一直没启动起来。 使用 journalctl -xe 命令查看原因,发现redis.pid已经存在。 进入该目录,删除redis.pid。 再使用sy…

    Linux 2023年5月28日
    0338
  • 音视频技术入门课- 05 使用FFmpeg与OBS进行直播推流

    做直播推流的前提是要有直播服务器接收直播流,所以需要我们自己建设一个流媒体服务器。 流媒体服务器SRS SRS是一个简单高效的实时视频服务器,支持RTMP/WebRTC/HLS/H…

    Linux 2023年6月7日
    0113
  • 虚拟机网络地址配置你不知道的事儿-服务器的种类

    想必大家在初学Linux过程中,应该都是跟我一样白嫖一台虚拟机进行使用把,但是在大家白嫖的同时知不知道我们公司内是使用的什么样的服务器呢?公司肯定不会跟我们一样在自己电脑进行安装虚…

    Linux 2023年5月27日
    094
  • 消息中间件MQ的学习境界和路线

    在《深入理解Java类加载机制,再也不用死记硬背了》里我提到了对于一门语言的”会”的三个层次。本篇将以知识地图的形式展现学习消息中间件MQ各个层次要掌握的内…

    Linux 2023年6月14日
    0112
  • mycat数据库集群系列之mysql主从同步设置

    最近在梳理数据库集群的相关操作,现在花点时间整理一下关于mysql数据库集群的操作总结,恰好你又在看这一块,供一份参考。本次系列终结大概包括以下内容:多数据库安装、mycat部署安…

    Linux 2023年6月14日
    0100
  • pyQt中的信号

    1. 说明 在调用 exec_()方法时,应用会进入主循环,而主循环会监听、处理事件 import sys from PyQt5.QtCore import Qt from PyQ…

    Linux 2023年6月7日
    091
  • 利用prometheus 客户端采集磁盘容量脚本

    点击查看代码 #!/bin/bash #date: 20220621 #author:bin >/tmp/node_dmz.txt >/tmp/node_err.txt…

    Linux 2023年6月14日
    098
  • cobbler部署

    cobbler cobbler 一、cobbler简介 二、cobbler对应关系 三、cobbler工作原理 cobbler部署 进行测试 web界面自动安装 一、cobbler…

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