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

大家都在看

  • ubuntu安装Kubernetes1.20.0

    注入产生的原理: 数据库设置为GBK编码: 宽字节注入源于程序员设置MySQL连接时错误配置为:set character_set_client=gbk,这样配置会引发编码转换从而…

    Linux 2022年8月26日
    0209
  • 记一次小团队Git实践(上)

    注入产生的原理: 数据库设置为GBK编码: 宽字节注入源于程序员设置MySQL连接时错误配置为:set character_set_client=gbk,这样配置会引发编码转换从而…

    Linux 2022年8月30日
    0264
  • Linux 配置Maven(避免踩坑篇)

    注入产生的原理: 数据库设置为GBK编码: 宽字节注入源于程序员设置MySQL连接时错误配置为:set character_set_client=gbk,这样配置会引发编码转换从而…

    Linux 2022年9月10日
    0264
  • 上班摸鱼与网络安全

    上班不摸鱼,那这班上的没有灵魂啊。但是不久前爆出的国美网络监控事件,也提示我们网络有风险,摸鱼需谨慎。 https://baijiahao.baidu.com/s?id=17167…

    Linux 2023年6月13日
    085
  • STM32CubeIDE学习记录(按键点灯工程)

    注入产生的原理: 数据库设置为GBK编码: 宽字节注入源于程序员设置MySQL连接时错误配置为:set character_set_client=gbk,这样配置会引发编码转换从而…

    Linux 2022年11月7日
    0196
  • 更改网卡名称

    CentOS7使用了”一致性网络命名方法” 更改配置文件内容 关闭”一致性网络设备命名法” 更新GRUB、内核配置 grub2-mk…

    Linux 2023年6月6日
    069
  • LeetCode 726: 原子的数量-栈和Map的结合以及字符串处理 | Number of Atoms-Combination of stack, map and string processing

    Problem Description Give a chemical formula, return the count of each atom. The count afte…

    Linux 2023年6月13日
    077
  • 网心云在PVE下三种磁盘IO模式(No cache,Write through,Write back)选择与优化指南

    注入产生的原理: 数据库设置为GBK编码: 宽字节注入源于程序员设置MySQL连接时错误配置为:set character_set_client=gbk,这样配置会引发编码转换从而…

    Linux 2022年9月10日
    0479
  • bash shell相关知识

    shell与bash 什么是shell ——以上图片摘自《鸟哥的Linux私房菜》 系统核心不能随意地被操作,所以就设计出了壳程序shell,一方面保护了系统核心,另一方面提供了人…

    Linux 2023年6月7日
    093
  • Linux登录shell和非登录(交互式shell)环境变量配置

    注入产生的原理: 数据库设置为GBK编码: 宽字节注入源于程序员设置MySQL连接时错误配置为:set character_set_client=gbk,这样配置会引发编码转换从而…

    Linux 2022年8月24日
    0223
  • linux-AWK

    注入产生的原理: 数据库设置为GBK编码: 宽字节注入源于程序员设置MySQL连接时错误配置为:set character_set_client=gbk,这样配置会引发编码转换从而…

    Linux 2022年8月13日
    0196
  • 搭建dashboard 出现浏览器无法访问

    搭建dashboard 出现浏览器无法访问 解决办法参考:https://www.gl.sh.cn/2020/11/05/jie_jue_k8s_dashboard_qi_ta_l…

    Linux 2023年6月14日
    0116
  • LeetCode-443. 压缩字符串

    题目来源 题目详情 给你一个字符数组 chars ,请使用下述算法压缩: 从一个空字符串 s 开始。对于 chars 中的每组 连续重复字符 : 如果这一组长度为 1 ,则将字符追…

    Linux 2023年6月7日
    085
  • 没那么简单的单例模式

    注入产生的原理: 数据库设置为GBK编码: 宽字节注入源于程序员设置MySQL连接时错误配置为:set character_set_client=gbk,这样配置会引发编码转换从而…

    Linux 2022年10月15日
    0189
  • 从前端走向后端

    注入产生的原理: 数据库设置为GBK编码: 宽字节注入源于程序员设置MySQL连接时错误配置为:set character_set_client=gbk,这样配置会引发编码转换从而…

    Linux 2022年10月15日
    0246
  • NoteOfMySQL-09-存储过程与函数

    常用的SQL语句在执行时需要先编译,然后执行;而存储过程(Store Procedure)是经编译后存储在数据库中的SQL语句集,在数据库中创建和保存。 一、存储过程与函数的区别 …

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