当前位置: 首页 > news >正文

单机,集群和分布式概念

单机的局限性:

1.受限于硬件资源,单机所能承受的用户并发量太少;

2.一个系统有多个模块,任意模块的修改都会导致整个项目代码重新编译、部署;

3.系统中,有些模块是CPU密集型,有些模块是I/O密集型,造成各个模块对于硬件资源的需求是不一样的。

集群:

负载均衡       

集群的优点?
        性能提升了,用户的并发量提升了,因为水平扩充了硬件资源;
        部署简单。
集群的缺点?
        1、项目代码还是需要整体重新编译,而且需要进行多次部署。
        2、系统中有些模块是属于CPU密集型(计算量大的),有些模块是属于I/O密集型的(接触输入输出,网络IO),造成各模块对硬件资源的需求是不一样。

并不是说机器多,并发量就上来,性能就高。像一些使用不多的模块,不需要高并发,所以也就不需要分别部署在三台机器上,不常用的模块只需要部署在一台机器上就好

分布式:

集群:每一台服务器独立运行一个工程的所有模块。
分布式:一个工程拆分了很多模块,每一个模块独立部署运行在一个服务器主机上,所有服务器协同工作共同提供服务,每一台服务器称作分布式的一个节点,根据节点的并发要求,对一个节点可以再做节点模块集群部署。

分布式优点:

1.对于并发量大的模块我们单独处理,单独加集群;

2.假如其中一个模块出问题了,我们只需要修改一个模块就可以了;

3.把CPU密集型的模块部署在CPU资源好的机器上。把内存小的模块部署在硬盘资源少的机器上。把IIO密集型的模块部署在CPU不是很好的机器上。

4、有的模块要求并发能力高,可以进行多机器集群部署。有的模块并发能力小,部署在一台机器就可以。
5、配置着高可用,容灾,主备服务器,不用担心就—套系统挂掉了怎么办。


分布式问题:

1、大系统的软件模块该怎么划分?

  • 各模块可能实现大量重复的代码!
  • 模块和模块之间的界线不清晰(有的模块里面的函数调动另一个模块的函数代码)。
  • 处理不好,造成大量重复代码。而且你改你的,我改我的,重复的公共代码就出问题了,变成不可控制了。

2. 各个模块之间如何通信?

两个模块之间rpc通信协议,交互。

http://www.lryc.cn/news/105456.html

相关文章:

  • 小目标检测(1)——大恒(DaHeng)相机操作与控制编程
  • 异步实现邮件发送
  • 【Redis】内存数据库Redis进阶(Redis分片集群)
  • 替代LT8711龙讯替代RTD2172 CS5265中文规格书4K60HZ转接线 设计Type-C转HDMI2.0高清投屏方案
  • HCIA-datacom数通题库和录播视频资料
  • 优思学院|质量工程师应具备什么能力?
  • 数据分析 VS 数据可视化:决战时刻
  • Vue3中无法为el-tree-select设置反选问题分析
  • Redis - 缓存持久化
  • Pandas进阶修炼120题-第三期(金融数据处理,51-80题)
  • 3、HAproxy高级配置
  • tcpdump网络抓包工具的使用
  • AMEYA360旗下品牌:日本SUSUMU推出RGV系列贴片电阻器新产品
  • git-版本控制器
  • 台式机/工控机通过网线共享笔记本电脑无线网络linux系统下 usb网卡的驱动安装
  • kotlin 编写一个简单的天气预报app(五)增加forcast接口并显示
  • vs调试引发了异常:读取访问权限冲突,argv是0x7
  • 【电影推荐系统】实时推荐
  • Delphi 开发不一样的窗体标题栏:TTitleBarPanel
  • Quartz中禁止并发机制源码级解析
  • 为什么从公有云迁移到私有云的越来越多?
  • 用shell实现MySQL分库分表操作
  • php 适配器模式
  • Scratch Blocks自定义组件之「下拉图标」
  • Robot Framweork之UI自动化测试---分层设计
  • MySQL8.0/8.x更新用户密码命令
  • 【MySQL】下载安装以及SQL介绍
  • 算法题--二叉树(二叉树的最近公共祖先、重建二叉树、二叉搜索树的后序遍历序列)
  • mysql的基础面经-索引、事务
  • Windows下双网卡配置静态路由,实现内外网同时使用