单机,集群和分布式概念

单机的局限性:

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

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

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

集群:

负载均衡

集群的优点?

性能提升了,用户的并发量提升了,因为水平扩充了硬件资源;

部署简单。
集群的缺点?

1、项目代码还是需要整体重新编译,而且需要进行多次部署。

2、系统中有些模块是属于CPU密集型(计算量大的),有些模块是属于I/O密集型的(接触输入输出,网络IO),造成各模块对硬件资源的需求是不一样。

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

分布式:

集群:每一台服务器独立运行一个工程的所有模块。

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

分布式优点:

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

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

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

4、有的模块要求并发能力高,可以进行多机器集群部署。有的模块并发能力小,部署在一台机器就可以。

5、配置着高可用,容灾,主备服务器,不用担心就---套系统挂掉了怎么办。

分布式问题:

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

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

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

相关推荐
巧克力味的桃子3 小时前
Spark 课程核心知识点复习汇总
大数据·分布式·spark
Java 码农4 小时前
RabbitMQ集群部署方案及配置指南05
分布式·rabbitmq
小马爱打代码5 小时前
ZooKeeper:五种经典应用场景
分布式·zookeeper·云原生
上海锟联科技8 小时前
DAS一体化光模块
分布式·分布式光纤传感·ofdr·光频域反射·das
Java 码农8 小时前
RabbitMQ集群部署方案及配置指南04
分布式·rabbitmq
独自破碎E9 小时前
在RabbitMQ中,怎么确保消息不会丢失?
分布式·rabbitmq
Java 码农9 小时前
RabbitMQ集群部署方案及配置指南02
分布式·rabbitmq
虫小宝9 小时前
京东返利app分布式追踪系统:基于SkyWalking的全链路问题定位
分布式·skywalking
星图易码9 小时前
星图云开发者平台功能详解 | IoT物联网平台:工业设备全链路智能管控中枢
分布式·物联网·低代码·低代码平台
王五周八9 小时前
基于 Redis+Redisson 实现分布式高可用编码生成器
数据库·redis·分布式